mirror of
https://github.com/ApfelTeeSaft/RebrewU.git
synced 2026-08-27 03:43:28 +00:00
37568 lines
1.9 MiB
Plaintext
37568 lines
1.9 MiB
Plaintext
// Generated by RebrewU -- do not edit
|
|
#include <rebrewu_runtime.h>
|
|
#include <stdint.h>
|
|
#include <math.h>
|
|
|
|
#include "Gambit.h"
|
|
|
|
// fn_028AC294 @ 0x28ac294
|
|
void Gambit_fn_028AC294(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028AC294: ; // 0x28ac294
|
|
/* 028AC294 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AC294 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC294 */ cpu->r[1] = _t0;
|
|
/* 028AC298 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC298 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AC29C */ cpu->r[31] = cpu->r[3];
|
|
/* 028AC2A0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC2A0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028AC2A4 */ Gambit_fn_028AC25C(cpu);
|
|
/* 028AC2A8 */ _t3 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028AC2A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028AC2AC */ _t4 = cpu->r[12] + 0x00000024u;
|
|
/* 028AC2AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AC2B0 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC2B4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AC2B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC2BC */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC2BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AC2C0 */ cpu->lr = cpu->r[0];
|
|
/* 028AC2C4 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC2C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AC2C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AC2CC */ return;
|
|
}
|
|
|
|
// fn_028AC2D0 @ 0x28ac2d0
|
|
void Gambit_fn_028AC2D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028AC2D0: ; // 0x28ac2d0
|
|
/* 028AC2D0 */ cpu->r[0] = cpu->lr;
|
|
/* 028AC2D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AC2D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC2D4 */ cpu->r[1] = _t0;
|
|
/* 028AC2D8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC2D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC2DC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC2DC */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AC2E0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC2E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AC2E4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC2E4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AC2E8 */ cpu->r[29] = cpu->r[4];
|
|
/* 028AC2EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028AC2F0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AC2F4 */ cpu->r[30] = cpu->r[5];
|
|
/* 028AC2F8 */ Gambit_fn_028A6B4C(cpu);
|
|
/* 028AC2FC */ _t5 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028AC2FC */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AC300 */ _t6 = cpu->r[11] + 0x00000048u;
|
|
/* 028AC300 */ cpu->r[0] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028AC304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AC308 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC308 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AC308 */ if (_t8) goto L_028AC30C; else goto L_028AC32C;
|
|
L_028AC30C: ; // 0x28ac30c
|
|
/* 028AC30C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC30C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AC310 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC310 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028AC314 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC314 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AC318 */ cpu->lr = cpu->r[0];
|
|
/* 028AC31C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC31C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AC320 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AC324 */ cpu->r[3] = 0x00000000u;
|
|
/* 028AC328 */ return;
|
|
L_028AC32C: ; // 0x28ac32c
|
|
/* 028AC32C */ _t13 = cpu->r[31] + 0x00000020u;
|
|
/* 028AC32C */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028AC330 */ cpu->r[4] = cpu->r[29];
|
|
/* 028AC334 */ _t14 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028AC334 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AC338 */ cpu->r[5] = cpu->r[30];
|
|
/* 028AC33C */ Gambit_fn_028AE274(cpu);
|
|
/* 028AC340 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC340 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AC344 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AC348 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC348 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AC34C */ cpu->lr = cpu->r[0];
|
|
/* 028AC350 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC350 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AC354 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AC358 */ return;
|
|
}
|
|
|
|
// fn_028AC2D4 @ 0x28ac2d4
|
|
void Gambit_fn_028AC2D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028AC2D4: ; // 0x28ac2d4
|
|
/* 028AC2D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AC2D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC2D4 */ cpu->r[1] = _t0;
|
|
/* 028AC2D8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC2D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC2DC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC2DC */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AC2E0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC2E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AC2E4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC2E4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AC2E8 */ cpu->r[29] = cpu->r[4];
|
|
/* 028AC2EC */ cpu->r[31] = cpu->r[3];
|
|
/* 028AC2F0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AC2F4 */ cpu->r[30] = cpu->r[5];
|
|
/* 028AC2F8 */ Gambit_fn_028A6B4C(cpu);
|
|
/* 028AC2FC */ _t5 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028AC2FC */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AC300 */ _t6 = cpu->r[11] + 0x00000048u;
|
|
/* 028AC300 */ cpu->r[0] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028AC304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AC308 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC308 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AC308 */ if (_t8) goto L_028AC30C; else goto L_028AC32C;
|
|
L_028AC30C: ; // 0x28ac30c
|
|
/* 028AC30C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC30C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AC310 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC310 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028AC314 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC314 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AC318 */ cpu->lr = cpu->r[0];
|
|
/* 028AC31C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC31C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AC320 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AC324 */ cpu->r[3] = 0x00000000u;
|
|
/* 028AC328 */ return;
|
|
L_028AC32C: ; // 0x28ac32c
|
|
/* 028AC32C */ _t13 = cpu->r[31] + 0x00000020u;
|
|
/* 028AC32C */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028AC330 */ cpu->r[4] = cpu->r[29];
|
|
/* 028AC334 */ _t14 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028AC334 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AC338 */ cpu->r[5] = cpu->r[30];
|
|
/* 028AC33C */ Gambit_fn_028AE274(cpu);
|
|
/* 028AC340 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC340 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AC344 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AC348 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC348 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AC34C */ cpu->lr = cpu->r[0];
|
|
/* 028AC350 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC350 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AC354 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AC358 */ return;
|
|
}
|
|
|
|
// fn_028AC35C @ 0x28ac35c
|
|
void Gambit_fn_028AC35C(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;
|
|
|
|
L_028AA73C: ; // 0x28aa73c
|
|
/* 028AA73C */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 028AA73C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AA73C */ cpu->r[1] = _t0;
|
|
/* 028AA740 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028AA740 */ rbrew_write32(cpu->mem, _t1, cpu->r[9]);
|
|
/* 028AA744 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AA744 */ rbrew_write32(cpu->mem, _t2, cpu->r[4]);
|
|
/* 028AA748 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028AA748 */ rbrew_write32(cpu->mem, _t3, cpu->r[5]);
|
|
/* 028AA74C */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028AA74C */ rbrew_write32(cpu->mem, _t4, cpu->r[10]);
|
|
/* 028AA750 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AA750 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 028AA754 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028AA754 */ rbrew_write32(cpu->mem, _t6, cpu->r[3]);
|
|
/* 028AA758 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028AA758 */ rbrew_write32(cpu->mem, _t7, cpu->r[6]);
|
|
/* 028AA75C */ _t8 = cpu->r[1] + 0x00000078u;
|
|
/* 028AA75C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AA760 */ _t9 = cpu->r[1] + 0x00000018u;
|
|
/* 028AA760 */ rbrew_write32(cpu->mem, _t9, cpu->r[7]);
|
|
/* 028AA764 */ _t10 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AA764 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AA764 */ if (_t11) goto L_028AA768; else goto L_028AA788;
|
|
L_028AA768: ; // 0x28aa768
|
|
/* 028AA768 */ _t12 = cpu->r[1] + 0x00000038u;
|
|
/* 028AA768 */ rbrew_write_f64(cpu->mem, _t12, cpu->f[3]);
|
|
/* 028AA76C */ _t13 = cpu->r[1] + 0x00000058u;
|
|
/* 028AA76C */ rbrew_write_f64(cpu->mem, _t13, cpu->f[7]);
|
|
/* 028AA770 */ _t14 = cpu->r[1] + 0x00000050u;
|
|
/* 028AA770 */ rbrew_write_f64(cpu->mem, _t14, cpu->f[6]);
|
|
/* 028AA774 */ _t15 = cpu->r[1] + 0x00000030u;
|
|
/* 028AA774 */ rbrew_write_f64(cpu->mem, _t15, cpu->f[2]);
|
|
/* 028AA778 */ _t16 = cpu->r[1] + 0x00000040u;
|
|
/* 028AA778 */ rbrew_write_f64(cpu->mem, _t16, cpu->f[4]);
|
|
/* 028AA77C */ _t17 = cpu->r[1] + 0x00000060u;
|
|
/* 028AA77C */ rbrew_write_f64(cpu->mem, _t17, cpu->f[8]);
|
|
/* 028AA780 */ _t18 = cpu->r[1] + 0x00000048u;
|
|
/* 028AA780 */ rbrew_write_f64(cpu->mem, _t18, cpu->f[5]);
|
|
/* 028AA784 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 028AA784 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[1]);
|
|
L_028AA788: ; // 0x28aa788
|
|
/* 028AA788 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028AA78C */ return;
|
|
L_028AB3E8: ; // 0x28ab3e8
|
|
/* 028AB3E8 */ cpu->r[12] = cpu->r[3];
|
|
/* 028AB3EC */ _t20 = cpu->r[12] + 0x00000014u;
|
|
/* 028AB3EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AB3F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AB3F4 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AB3F4 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028AB3F4 */ if (_t22) goto L_028AB3F8; else goto L_028AB41C;
|
|
L_028AB3F8: ; // 0x28ab3f8
|
|
/* 028AB3F8 */ _t23 = cpu->r[12] + 0x00000004u;
|
|
/* 028AB3F8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AB3FC */ cpu->r[6] = 0x10130000u;
|
|
/* 028AB400 */ _t24 = cpu->r[12] + 0x00000000u;
|
|
/* 028AB400 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AB404 */ cpu->r[6] = cpu->r[6] + 0x00007EDCu;
|
|
/* 028AB408 */ _t25 = cpu->r[12] + 0x00000018u;
|
|
/* 028AB408 */ cpu->r[7] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AB40C */ _t26 = cpu->r[11] + 0x00000020u;
|
|
/* 028AB40C */ cpu->r[5] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AB410 */ cpu->r[4] = 0x00000014u;
|
|
/* 028AB414 */ _t27 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AB414 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028AB414 */ if (_t28) goto L_028AB418; // else: addr-0 trap, fall-through
|
|
L_028AB418: ; // 0x28ab418
|
|
/* 028AB418 */ goto L_028AA73C;
|
|
L_028AB41C: ; // 0x28ab41c
|
|
/* 028AB41C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AB420 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AB420 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028AB420 */ if (_t30) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AB420 */ goto L_028AB424;
|
|
L_028AB424: ; // 0x28ab424
|
|
/* 028AB424 */ _t31 = cpu->r[12] + 0x00000018u;
|
|
/* 028AB424 */ cpu->r[9] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AB428 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[9]);
|
|
/* 028AB42C */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AB42C */ _t33 = _t32 & 0x00000001u;
|
|
/* 028AB42C */ _t34 = _t33 ^ 0x00000001u;
|
|
/* 028AB42C */ if (_t34) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AB42C */ goto L_028AB430;
|
|
L_028AB430: ; // 0x28ab430
|
|
/* 028AB430 */ cpu->r[10] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028AB434 */ _t35 = cpu->r[10] + cpu->r[0];
|
|
/* 028AB434 */ cpu->r[3] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028AB438 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AB43C */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AB43C */ _t37 = _t36 & 0x00000001u;
|
|
/* 028AB43C */ if (_t37) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AB43C */ goto L_028AB440;
|
|
L_028AB440: ; // 0x28ab440
|
|
/* 028AB440 */ goto L_028B6E0C;
|
|
L_028AC35C: ; // 0x28ac35c
|
|
/* 028AC35C */ _t38 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028AC35C */ cpu->r[12] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028AC360 */ _t39 = cpu->r[12] + 0x00000048u;
|
|
/* 028AC360 */ cpu->r[0] = rbrew_read8(cpu->mem, _t39);
|
|
/* 028AC364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AC368 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC368 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028AC368 */ if (_t41) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AC368 */ goto L_028AC36C;
|
|
L_028AC36C: ; // 0x28ac36c
|
|
/* 028AC36C */ _t42 = cpu->r[3] + 0x00000054u;
|
|
/* 028AC36C */ cpu->r[3] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028AC370 */ goto L_028AB3E8;
|
|
L_028B6E0C: ; // 0x28b6e0c
|
|
/* 028B6E0C */ cpu->r[0] = cpu->lr;
|
|
/* 028B6E10 */ _t43 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B6E10 */ rbrew_write32(cpu->mem, _t43, cpu->r[1]);
|
|
/* 028B6E10 */ cpu->r[1] = _t43;
|
|
/* 028B6E14 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6E14 */ rbrew_write32(cpu->mem, _t44, cpu->r[29]);
|
|
/* 028B6E18 */ _t45 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6E18 */ rbrew_write32(cpu->mem, _t45, cpu->r[30]);
|
|
/* 028B6E1C */ _t46 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6E1C */ rbrew_write32(cpu->mem, _t46, cpu->r[31]);
|
|
/* 028B6E20 */ _t47 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6E20 */ rbrew_write32(cpu->mem, _t47, cpu->r[0]);
|
|
/* 028B6E24 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B6E28 */ cpu->r[0] = cpu->r[4];
|
|
/* 028B6E2C */ _t48 = cpu->r[29] + 0x00000008u;
|
|
/* 028B6E2C */ cpu->r[4] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028B6E30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B6E34 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B6E38 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6E38 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028B6E38 */ if (_t50) goto L_028B6EA0; else goto L_028B6E3C;
|
|
L_028B6E3C: ; // 0x28b6e3c
|
|
/* 028B6E3C */ _t51 = cpu->r[29] + 0x00000000u;
|
|
/* 028B6E3C */ cpu->r[11] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028B6E40 */ _t52 = cpu->r[11] + 0x00000020u;
|
|
/* 028B6E40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028B6E44 */ _t53 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B6E44 */ cpu->r[31] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028B6E48 */ cpu->r[6] = 0x00000000u;
|
|
/* 028B6E4C */ cpu->r[5] = cpu->r[0];
|
|
/* 028B6E50 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6E54 */ Gambit_fn_028AE2B4(cpu);
|
|
/* 028B6E58 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B6E58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B6E5C */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6E5C */ _t55 = _t54 & 0x00000001u;
|
|
/* 028B6E5C */ if (_t55) goto L_028B6E60; else goto L_028B6E84;
|
|
L_028B6E60: ; // 0x28b6e60
|
|
/* 028B6E60 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6E64 */ Gambit_fn_028B6AAC(cpu);
|
|
/* 028B6E68 */ _t56 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6E68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028B6E6C */ _t57 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6E6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028B6E70 */ _t58 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6E70 */ cpu->r[30] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028B6E74 */ cpu->lr = cpu->r[0];
|
|
/* 028B6E78 */ _t59 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6E78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028B6E7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6E80 */ return;
|
|
L_028B6E84: ; // 0x28b6e84
|
|
/* 028B6E84 */ _t60 = cpu->r[29] + 0x00000014u;
|
|
/* 028B6E84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028B6E88 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[4]);
|
|
/* 028B6E8C */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6E8C */ _t62 = _t61 & 0x00000001u;
|
|
/* 028B6E8C */ if (_t62) goto L_028B6EA0; else goto L_028B6E90;
|
|
L_028B6E90: ; // 0x28b6e90
|
|
/* 028B6E90 */ cpu->r[6] = cpu->r[31];
|
|
/* 028B6E94 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B6E98 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6E9C */ Gambit_fn_028B6B7C(cpu);
|
|
L_028B6EA0: ; // 0x28b6ea0
|
|
/* 028B6EA0 */ _t63 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6EA0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028B6EA4 */ _t64 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6EA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028B6EA8 */ _t65 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6EA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028B6EAC */ cpu->lr = cpu->r[0];
|
|
/* 028B6EB0 */ _t66 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6EB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028B6EB4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6EB8 */ return;
|
|
}
|
|
|
|
// fn_028AC374 @ 0x28ac374
|
|
void Gambit_fn_028AC374(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028AB444: ; // 0x28ab444
|
|
/* 028AB444 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AB448 */ _t0 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AB448 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028AB448 */ if (_t1) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AB448 */ goto L_028AB44C;
|
|
L_028AB44C: ; // 0x28ab44c
|
|
/* 028AB44C */ _t2 = cpu->r[3] + 0x00000018u;
|
|
/* 028AB44C */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028AB450 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[0]);
|
|
/* 028AB454 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AB454 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AB454 */ _t5 = _t4 ^ 0x00000001u;
|
|
/* 028AB454 */ if (_t5) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AB454 */ goto L_028AB458;
|
|
L_028AB458: ; // 0x28ab458
|
|
/* 028AB458 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 028AB458 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AB45C */ cpu->r[12] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028AB460 */ _t7 = cpu->r[12] + cpu->r[10];
|
|
/* 028AB460 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AB464 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AB468 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AB468 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028AB468 */ if (_t9) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AB468 */ goto L_028AB46C;
|
|
L_028AB46C: ; // 0x28ab46c
|
|
/* 028AB46C */ _t10 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028AB46C */ rbrew_write32(cpu->mem, _t10, cpu->r[4]);
|
|
/* 028AB470 */ return;
|
|
L_028AC374: ; // 0x28ac374
|
|
/* 028AC374 */ _t11 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028AC374 */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AC378 */ _t12 = cpu->r[12] + 0x00000048u;
|
|
/* 028AC378 */ cpu->r[0] = rbrew_read8(cpu->mem, _t12);
|
|
/* 028AC37C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AC380 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC380 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AC380 */ if (_t14) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AC380 */ goto L_028AC384;
|
|
L_028AC384: ; // 0x28ac384
|
|
/* 028AC384 */ _t15 = cpu->r[3] + 0x00000054u;
|
|
/* 028AC384 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AC388 */ goto L_028AB444;
|
|
}
|
|
|
|
// fn_028AC38C @ 0x28ac38c
|
|
void Gambit_fn_028AC38C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028AC38C: ; // 0x28ac38c
|
|
/* 028AC38C */ cpu->r[0] = cpu->lr;
|
|
/* 028AC390 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AC390 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC390 */ cpu->r[1] = _t0;
|
|
/* 028AC394 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC394 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC398 */ cpu->r[30] = cpu->r[5];
|
|
/* 028AC39C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC39C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AC3A0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC3A0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028AC3A4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AC3A8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC3A8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AC3AC */ _t5 = cpu->r[31] + 0x00000020u;
|
|
/* 028AC3AC */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AC3B0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028AC3B4 */ Gambit_fn_028AB8D8(cpu);
|
|
/* 028AC3B8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028AC3BC */ cpu->r[4] = cpu->r[29];
|
|
/* 028AC3C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AC3C4 */ Gambit_fn_028ABE0C(cpu);
|
|
/* 028AC3C8 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC3C8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AC3CC */ _t7 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC3CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AC3D0 */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC3D0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AC3D4 */ cpu->lr = cpu->r[0];
|
|
/* 028AC3D8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC3D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AC3DC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AC3E0 */ return;
|
|
}
|
|
|
|
// fn_028AC390 @ 0x28ac390
|
|
void Gambit_fn_028AC390(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028AC390: ; // 0x28ac390
|
|
/* 028AC390 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AC390 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC390 */ cpu->r[1] = _t0;
|
|
/* 028AC394 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC394 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC398 */ cpu->r[30] = cpu->r[5];
|
|
/* 028AC39C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC39C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AC3A0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC3A0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028AC3A4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AC3A8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC3A8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AC3AC */ _t5 = cpu->r[31] + 0x00000020u;
|
|
/* 028AC3AC */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AC3B0 */ cpu->r[29] = cpu->r[4];
|
|
/* 028AC3B4 */ Gambit_fn_028AB8D8(cpu);
|
|
/* 028AC3B8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028AC3BC */ cpu->r[4] = cpu->r[29];
|
|
/* 028AC3C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AC3C4 */ Gambit_fn_028ABE0C(cpu);
|
|
/* 028AC3C8 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC3C8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AC3CC */ _t7 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC3CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AC3D0 */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC3D0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AC3D4 */ cpu->lr = cpu->r[0];
|
|
/* 028AC3D8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC3D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AC3DC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AC3E0 */ return;
|
|
}
|
|
|
|
// fn_028AC3E4 @ 0x28ac3e4
|
|
void Gambit_fn_028AC3E4(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_028AA73C: ; // 0x28aa73c
|
|
/* 028AA73C */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 028AA73C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AA73C */ cpu->r[1] = _t0;
|
|
/* 028AA740 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028AA740 */ rbrew_write32(cpu->mem, _t1, cpu->r[9]);
|
|
/* 028AA744 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AA744 */ rbrew_write32(cpu->mem, _t2, cpu->r[4]);
|
|
/* 028AA748 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028AA748 */ rbrew_write32(cpu->mem, _t3, cpu->r[5]);
|
|
/* 028AA74C */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028AA74C */ rbrew_write32(cpu->mem, _t4, cpu->r[10]);
|
|
/* 028AA750 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AA750 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 028AA754 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028AA754 */ rbrew_write32(cpu->mem, _t6, cpu->r[3]);
|
|
/* 028AA758 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028AA758 */ rbrew_write32(cpu->mem, _t7, cpu->r[6]);
|
|
/* 028AA75C */ _t8 = cpu->r[1] + 0x00000078u;
|
|
/* 028AA75C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AA760 */ _t9 = cpu->r[1] + 0x00000018u;
|
|
/* 028AA760 */ rbrew_write32(cpu->mem, _t9, cpu->r[7]);
|
|
/* 028AA764 */ _t10 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AA764 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AA764 */ if (_t11) goto L_028AA768; else goto L_028AA788;
|
|
L_028AA768: ; // 0x28aa768
|
|
/* 028AA768 */ _t12 = cpu->r[1] + 0x00000038u;
|
|
/* 028AA768 */ rbrew_write_f64(cpu->mem, _t12, cpu->f[3]);
|
|
/* 028AA76C */ _t13 = cpu->r[1] + 0x00000058u;
|
|
/* 028AA76C */ rbrew_write_f64(cpu->mem, _t13, cpu->f[7]);
|
|
/* 028AA770 */ _t14 = cpu->r[1] + 0x00000050u;
|
|
/* 028AA770 */ rbrew_write_f64(cpu->mem, _t14, cpu->f[6]);
|
|
/* 028AA774 */ _t15 = cpu->r[1] + 0x00000030u;
|
|
/* 028AA774 */ rbrew_write_f64(cpu->mem, _t15, cpu->f[2]);
|
|
/* 028AA778 */ _t16 = cpu->r[1] + 0x00000040u;
|
|
/* 028AA778 */ rbrew_write_f64(cpu->mem, _t16, cpu->f[4]);
|
|
/* 028AA77C */ _t17 = cpu->r[1] + 0x00000060u;
|
|
/* 028AA77C */ rbrew_write_f64(cpu->mem, _t17, cpu->f[8]);
|
|
/* 028AA780 */ _t18 = cpu->r[1] + 0x00000048u;
|
|
/* 028AA780 */ rbrew_write_f64(cpu->mem, _t18, cpu->f[5]);
|
|
/* 028AA784 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 028AA784 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[1]);
|
|
L_028AA788: ; // 0x28aa788
|
|
/* 028AA788 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028AA78C */ return;
|
|
L_028AC3E4: ; // 0x28ac3e4
|
|
/* 028AC3E4 */ cpu->r[11] = cpu->r[3];
|
|
/* 028AC3E8 */ _t20 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028AC3E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AC3EC */ _t21 = cpu->r[3] + 0x00000048u;
|
|
/* 028AC3EC */ cpu->r[0] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028AC3F0 */ cpu->r[7] = cpu->r[4];
|
|
/* 028AC3F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AC3F8 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC3F8 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AC3F8 */ if (_t23) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AC3F8 */ goto L_028AC3FC;
|
|
L_028AC3FC: ; // 0x28ac3fc
|
|
/* 028AC3FC */ _t24 = cpu->r[11] + 0x00000050u;
|
|
/* 028AC3FC */ cpu->r[6] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AC400 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AC404 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC404 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028AC404 */ if (_t26) goto L_028AC408; else goto L_028AC420;
|
|
L_028AC408: ; // 0x28ac408
|
|
/* 028AC408 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC40C */ cpu->r[4] = 0x0000001Fu;
|
|
/* 028AC410 */ _t27 = cpu->r[11] + 0x00000020u;
|
|
/* 028AC410 */ cpu->r[5] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AC414 */ cpu->r[6] = cpu->r[6] + 0xFFFF8054u;
|
|
/* 028AC418 */ _t28 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC418 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028AC418 */ if (_t29) goto L_028AC41C; // else: addr-0 trap, fall-through
|
|
L_028AC41C: ; // 0x28ac41c
|
|
/* 028AC41C */ goto L_028AA73C;
|
|
L_028AC420: ; // 0x28ac420
|
|
/* 028AC420 */ _t30 = cpu->r[11] + 0x0000004Cu;
|
|
/* 028AC420 */ cpu->r[8] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AC424 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[8]);
|
|
/* 028AC428 */ _t31 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AC428 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028AC428 */ if (_t32) goto L_028AC444; else goto L_028AC42C;
|
|
L_028AC42C: ; // 0x28ac42c
|
|
/* 028AC42C */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC430 */ cpu->r[4] = 0x0000001Fu;
|
|
/* 028AC434 */ _t33 = cpu->r[11] + 0x00000020u;
|
|
/* 028AC434 */ cpu->r[5] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028AC438 */ cpu->r[6] = cpu->r[6] + 0xFFFF807Cu;
|
|
/* 028AC43C */ _t34 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC43C */ _t35 = _t34 & 0x00000001u;
|
|
/* 028AC43C */ if (_t35) goto L_028AC440; // else: addr-0 trap, fall-through
|
|
L_028AC440: ; // 0x28ac440
|
|
/* 028AC440 */ goto L_028AA73C;
|
|
L_028AC444: ; // 0x28ac444
|
|
/* 028AC444 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x0000000Cu);
|
|
/* 028AC448 */ _t36 = cpu->r[6] + cpu->r[8];
|
|
/* 028AC448 */ cpu->r[12] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028AC44C */ _t37 = cpu->r[12] + 0x0000004Cu;
|
|
/* 028AC44C */ cpu->r[10] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AC450 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000002u);
|
|
/* 028AC454 */ cpu->r[9] = cpu->r[6] + cpu->r[8];
|
|
/* 028AC458 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC458 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028AC458 */ if (_t39) goto L_028AC45C; else goto L_028AC474;
|
|
L_028AC45C: ; // 0x28ac45c
|
|
/* 028AC45C */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC460 */ cpu->r[4] = 0x00000020u;
|
|
/* 028AC464 */ _t40 = cpu->r[11] + 0x00000020u;
|
|
/* 028AC464 */ cpu->r[5] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028AC468 */ cpu->r[6] = cpu->r[6] + 0xFFFF8034u;
|
|
/* 028AC46C */ _t41 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC46C */ _t42 = _t41 & 0x00000001u;
|
|
/* 028AC46C */ if (_t42) goto L_028AC470; // else: addr-0 trap, fall-through
|
|
L_028AC470: ; // 0x28ac470
|
|
/* 028AC470 */ goto L_028AA73C;
|
|
L_028AC474: ; // 0x28ac474
|
|
/* 028AC474 */ _t43 = cpu->r[9] + 0x00000004u;
|
|
/* 028AC474 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028AC478 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[5]);
|
|
/* 028AC47C */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC47C */ _t45 = _t44 & 0x00000001u;
|
|
/* 028AC47C */ if (_t45) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AC47C */ goto L_028AC480;
|
|
L_028AC480: ; // 0x28ac480
|
|
/* 028AC480 */ _t46 = cpu->r[9] + 0x00000004u;
|
|
/* 028AC480 */ rbrew_write32(cpu->mem, _t46, cpu->r[5]);
|
|
/* 028AC484 */ _t47 = cpu->r[11] + 0x00000050u;
|
|
/* 028AC484 */ cpu->r[10] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028AC488 */ cpu->r[12] = 0x00000001u;
|
|
/* 028AC48C */ cpu->r[9] = cpu->r[10] + cpu->r[8];
|
|
/* 028AC490 */ _t48 = cpu->r[9] + 0x00000008u;
|
|
/* 028AC490 */ rbrew_write8(cpu->mem, _t48, (uint8_t)cpu->r[12]);
|
|
/* 028AC494 */ return;
|
|
}
|
|
|
|
// fn_028AC498 @ 0x28ac498
|
|
void Gambit_fn_028AC498(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_028AA73C: ; // 0x28aa73c
|
|
/* 028AA73C */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 028AA73C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AA73C */ cpu->r[1] = _t0;
|
|
/* 028AA740 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028AA740 */ rbrew_write32(cpu->mem, _t1, cpu->r[9]);
|
|
/* 028AA744 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AA744 */ rbrew_write32(cpu->mem, _t2, cpu->r[4]);
|
|
/* 028AA748 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028AA748 */ rbrew_write32(cpu->mem, _t3, cpu->r[5]);
|
|
/* 028AA74C */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028AA74C */ rbrew_write32(cpu->mem, _t4, cpu->r[10]);
|
|
/* 028AA750 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AA750 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 028AA754 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028AA754 */ rbrew_write32(cpu->mem, _t6, cpu->r[3]);
|
|
/* 028AA758 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028AA758 */ rbrew_write32(cpu->mem, _t7, cpu->r[6]);
|
|
/* 028AA75C */ _t8 = cpu->r[1] + 0x00000078u;
|
|
/* 028AA75C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AA760 */ _t9 = cpu->r[1] + 0x00000018u;
|
|
/* 028AA760 */ rbrew_write32(cpu->mem, _t9, cpu->r[7]);
|
|
/* 028AA764 */ _t10 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AA764 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AA764 */ if (_t11) goto L_028AA768; else goto L_028AA788;
|
|
L_028AA768: ; // 0x28aa768
|
|
/* 028AA768 */ _t12 = cpu->r[1] + 0x00000038u;
|
|
/* 028AA768 */ rbrew_write_f64(cpu->mem, _t12, cpu->f[3]);
|
|
/* 028AA76C */ _t13 = cpu->r[1] + 0x00000058u;
|
|
/* 028AA76C */ rbrew_write_f64(cpu->mem, _t13, cpu->f[7]);
|
|
/* 028AA770 */ _t14 = cpu->r[1] + 0x00000050u;
|
|
/* 028AA770 */ rbrew_write_f64(cpu->mem, _t14, cpu->f[6]);
|
|
/* 028AA774 */ _t15 = cpu->r[1] + 0x00000030u;
|
|
/* 028AA774 */ rbrew_write_f64(cpu->mem, _t15, cpu->f[2]);
|
|
/* 028AA778 */ _t16 = cpu->r[1] + 0x00000040u;
|
|
/* 028AA778 */ rbrew_write_f64(cpu->mem, _t16, cpu->f[4]);
|
|
/* 028AA77C */ _t17 = cpu->r[1] + 0x00000060u;
|
|
/* 028AA77C */ rbrew_write_f64(cpu->mem, _t17, cpu->f[8]);
|
|
/* 028AA780 */ _t18 = cpu->r[1] + 0x00000048u;
|
|
/* 028AA780 */ rbrew_write_f64(cpu->mem, _t18, cpu->f[5]);
|
|
/* 028AA784 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 028AA784 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[1]);
|
|
L_028AA788: ; // 0x28aa788
|
|
/* 028AA788 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028AA78C */ return;
|
|
L_028AC498: ; // 0x28ac498
|
|
/* 028AC498 */ cpu->r[11] = cpu->r[3];
|
|
/* 028AC49C */ _t20 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028AC49C */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AC4A0 */ _t21 = cpu->r[3] + 0x00000048u;
|
|
/* 028AC4A0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028AC4A4 */ cpu->r[7] = cpu->r[4];
|
|
/* 028AC4A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AC4AC */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC4AC */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AC4AC */ if (_t23) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AC4AC */ goto L_028AC4B0;
|
|
L_028AC4B0: ; // 0x28ac4b0
|
|
/* 028AC4B0 */ _t24 = cpu->r[11] + 0x00000050u;
|
|
/* 028AC4B0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AC4B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AC4B8 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC4B8 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028AC4B8 */ if (_t26) goto L_028AC4BC; else goto L_028AC4D4;
|
|
L_028AC4BC: ; // 0x28ac4bc
|
|
/* 028AC4BC */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC4C0 */ cpu->r[4] = 0x0000001Fu;
|
|
/* 028AC4C4 */ _t27 = cpu->r[11] + 0x00000020u;
|
|
/* 028AC4C4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AC4C8 */ cpu->r[6] = cpu->r[6] + 0xFFFF80CCu;
|
|
/* 028AC4CC */ _t28 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC4CC */ _t29 = _t28 & 0x00000001u;
|
|
/* 028AC4CC */ if (_t29) goto L_028AC4D0; // else: addr-0 trap, fall-through
|
|
L_028AC4D0: ; // 0x28ac4d0
|
|
/* 028AC4D0 */ goto L_028AA73C;
|
|
L_028AC4D4: ; // 0x28ac4d4
|
|
/* 028AC4D4 */ _t30 = cpu->r[11] + 0x0000004Cu;
|
|
/* 028AC4D4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AC4D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[8]);
|
|
/* 028AC4DC */ _t31 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AC4DC */ _t32 = _t31 & 0x00000001u;
|
|
/* 028AC4DC */ if (_t32) goto L_028AC4F8; else goto L_028AC4E0;
|
|
L_028AC4E0: ; // 0x28ac4e0
|
|
/* 028AC4E0 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC4E4 */ cpu->r[4] = 0x0000001Fu;
|
|
/* 028AC4E8 */ _t33 = cpu->r[11] + 0x00000020u;
|
|
/* 028AC4E8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028AC4EC */ cpu->r[6] = cpu->r[6] + 0xFFFF80F4u;
|
|
/* 028AC4F0 */ _t34 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC4F0 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028AC4F0 */ if (_t35) goto L_028AC4F4; // else: addr-0 trap, fall-through
|
|
L_028AC4F4: ; // 0x28ac4f4
|
|
/* 028AC4F4 */ goto L_028AA73C;
|
|
L_028AC4F8: ; // 0x28ac4f8
|
|
/* 028AC4F8 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x0000000Cu);
|
|
/* 028AC4FC */ _t36 = cpu->r[12] + cpu->r[9];
|
|
/* 028AC4FC */ cpu->r[10] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028AC500 */ _t37 = cpu->r[10] + 0x0000004Cu;
|
|
/* 028AC500 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AC504 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000002u);
|
|
/* 028AC508 */ cpu->r[8] = cpu->r[12] + cpu->r[9];
|
|
/* 028AC50C */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC50C */ _t39 = _t38 & 0x00000001u;
|
|
/* 028AC50C */ if (_t39) goto L_028AC528; else goto L_028AC510;
|
|
L_028AC510: ; // 0x28ac510
|
|
/* 028AC510 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC514 */ cpu->r[4] = 0x00000020u;
|
|
/* 028AC518 */ _t40 = cpu->r[11] + 0x00000020u;
|
|
/* 028AC518 */ cpu->r[5] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028AC51C */ cpu->r[6] = cpu->r[6] + 0xFFFF80A8u;
|
|
/* 028AC520 */ _t41 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC520 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028AC520 */ if (_t42) goto L_028AC524; // else: addr-0 trap, fall-through
|
|
L_028AC524: ; // 0x28ac524
|
|
/* 028AC524 */ goto L_028AA73C;
|
|
L_028AC528: ; // 0x28ac528
|
|
/* 028AC528 */ _t43 = cpu->r[8] + 0x00000004u;
|
|
/* 028AC528 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028AC52C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[1]);
|
|
/* 028AC530 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC530 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028AC530 */ if (_t45) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AC530 */ goto L_028AC534;
|
|
L_028AC534: ; // 0x28ac534
|
|
/* 028AC534 */ _t46 = cpu->r[8] + 0x00000004u;
|
|
/* 028AC534 */ rbrew_write_f32(cpu->mem, _t46, cpu->f[1]);
|
|
/* 028AC538 */ _t47 = cpu->r[11] + 0x00000050u;
|
|
/* 028AC538 */ cpu->r[10] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028AC53C */ cpu->r[12] = 0x00000001u;
|
|
/* 028AC540 */ cpu->r[9] = cpu->r[10] + cpu->r[9];
|
|
/* 028AC544 */ _t48 = cpu->r[9] + 0x00000008u;
|
|
/* 028AC544 */ rbrew_write8(cpu->mem, _t48, (uint8_t)cpu->r[12]);
|
|
/* 028AC548 */ return;
|
|
}
|
|
|
|
// fn_028AC54C @ 0x28ac54c
|
|
void Gambit_fn_028AC54C(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028AC54C: ; // 0x28ac54c
|
|
/* 028AC54C */ _t0 = cpu->r[3] + 0x00000020u;
|
|
/* 028AC54C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AC550 */ _t1 = cpu->r[12] + 0x00000008u;
|
|
/* 028AC550 */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028AC554 */ return;
|
|
}
|
|
|
|
// fn_028AC558 @ 0x28ac558
|
|
void Gambit_fn_028AC558(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028AC558: ; // 0x28ac558
|
|
/* 028AC558 */ cpu->r[0] = cpu->lr;
|
|
/* 028AC55C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AC55C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC55C */ cpu->r[1] = _t0;
|
|
/* 028AC560 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC560 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC564 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC564 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AC568 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AC56C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC56C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AC570 */ _t4 = cpu->r[30] + 0x00000044u;
|
|
/* 028AC570 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AC574 */ _t5 = cpu->r[31] + 0x00000004u;
|
|
/* 028AC574 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AC578 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028AC57C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC57C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AC57C */ if (_t7) goto L_028AC5B8; else goto L_028AC580;
|
|
L_028AC580: ; // 0x28ac580
|
|
/* 028AC580 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028AC580 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AC584 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AC588 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028AC58C */ _t9 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028AC58C */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AC590 */ Gambit_fn_02826B90(cpu);
|
|
/* 028AC594 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AC594 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028AC598 */ _t11 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028AC598 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AC59C */ cpu->ctr = cpu->r[0];
|
|
/* 028AC5A0 */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 028AC5A0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AC5A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC5A8 */ cpu->r[12] = 0x00000000u;
|
|
/* 028AC5AC */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 028AC5AC */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
/* 028AC5B0 */ _t14 = cpu->r[31] + 0x00000000u;
|
|
/* 028AC5B0 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028AC5B4 */ _t15 = cpu->r[30] + 0x00000044u;
|
|
/* 028AC5B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
L_028AC5B8: ; // 0x28ac5b8
|
|
/* 028AC5B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AC5BC */ Gambit_fn_02801BB0(cpu);
|
|
/* 028AC5C0 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC5C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AC5C4 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC5C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AC5C8 */ cpu->lr = cpu->r[0];
|
|
/* 028AC5CC */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC5CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AC5D0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AC5D4 */ return;
|
|
}
|
|
|
|
// fn_028AC55C @ 0x28ac55c
|
|
void Gambit_fn_028AC55C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028AC55C: ; // 0x28ac55c
|
|
/* 028AC55C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AC55C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC55C */ cpu->r[1] = _t0;
|
|
/* 028AC560 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC560 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC564 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC564 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AC568 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AC56C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC56C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AC570 */ _t4 = cpu->r[30] + 0x00000044u;
|
|
/* 028AC570 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AC574 */ _t5 = cpu->r[31] + 0x00000004u;
|
|
/* 028AC574 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AC578 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028AC57C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC57C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AC57C */ if (_t7) goto L_028AC5B8; else goto L_028AC580;
|
|
L_028AC580: ; // 0x28ac580
|
|
/* 028AC580 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028AC580 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AC584 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AC588 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028AC58C */ _t9 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 028AC58C */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AC590 */ Gambit_fn_02826B90(cpu);
|
|
/* 028AC594 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AC594 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028AC598 */ _t11 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028AC598 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AC59C */ cpu->ctr = cpu->r[0];
|
|
/* 028AC5A0 */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 028AC5A0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AC5A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC5A8 */ cpu->r[12] = 0x00000000u;
|
|
/* 028AC5AC */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 028AC5AC */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
/* 028AC5B0 */ _t14 = cpu->r[31] + 0x00000000u;
|
|
/* 028AC5B0 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028AC5B4 */ _t15 = cpu->r[30] + 0x00000044u;
|
|
/* 028AC5B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
L_028AC5B8: ; // 0x28ac5b8
|
|
/* 028AC5B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AC5BC */ Gambit_fn_02801BB0(cpu);
|
|
/* 028AC5C0 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC5C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AC5C4 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC5C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AC5C8 */ cpu->lr = cpu->r[0];
|
|
/* 028AC5CC */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC5CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AC5D0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AC5D4 */ return;
|
|
}
|
|
|
|
// fn_028AC5D8 @ 0x28ac5d8
|
|
void Gambit_fn_028AC5D8(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_028AC5D8: ; // 0x28ac5d8
|
|
/* 028AC5D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028AC5DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AC5DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC5DC */ cpu->r[1] = _t0;
|
|
/* 028AC5E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC5E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC5E4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC5E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AC5E8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC5E8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AC5EC */ _t4 = cpu->r[3] + 0x0000005Cu;
|
|
/* 028AC5EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AC5F0 */ _t5 = cpu->r[12] + 0x00000034u;
|
|
/* 028AC5F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AC5F4 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC5F8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AC5FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC600 */ _t6 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028AC600 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AC604 */ _t7 = cpu->r[12] + 0x00000054u;
|
|
/* 028AC604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AC608 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC60C */ cpu->r[3] = cpu->r[30];
|
|
/* 028AC610 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC614 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AC618 */ Gambit_fn_028AC558(cpu);
|
|
/* 028AC61C */ _t8 = cpu->r[30] + 0x00000054u;
|
|
/* 028AC61C */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AC620 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AC624 */ cpu->r[31] = 0x00000000u;
|
|
/* 028AC628 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC628 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028AC628 */ if (_t10) goto L_028AC63C; else goto L_028AC62C;
|
|
L_028AC62C: ; // 0x28ac62c
|
|
/* 028AC62C */ Gambit_fn_028AABC0(cpu);
|
|
/* 028AC630 */ _t11 = cpu->r[30] + 0x00000054u;
|
|
/* 028AC630 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AC634 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028AC638 */ _t12 = cpu->r[30] + 0x00000054u;
|
|
/* 028AC638 */ rbrew_write32(cpu->mem, _t12, cpu->r[31]);
|
|
L_028AC63C: ; // 0x28ac63c
|
|
/* 028AC63C */ _t13 = cpu->r[30] + 0x00000050u;
|
|
/* 028AC63C */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028AC640 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AC644 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC644 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028AC644 */ if (_t15) goto L_028AC664; else goto L_028AC648;
|
|
L_028AC648: ; // 0x28ac648
|
|
/* 028AC648 */ cpu->r[6] = 0x00000000u;
|
|
/* 028AC64C */ cpu->r[7] = 0x00000001u;
|
|
/* 028AC650 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028AC654 */ cpu->r[8] = cpu->r[6];
|
|
/* 028AC658 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028AC65C */ Gambit_fn_02C82F38(cpu);
|
|
/* 028AC660 */ _t16 = cpu->r[30] + 0x00000050u;
|
|
/* 028AC660 */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
L_028AC664: ; // 0x28ac664
|
|
/* 028AC664 */ _t17 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AC664 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AC668 */ _t18 = cpu->r[30] + 0x00000048u;
|
|
/* 028AC668 */ rbrew_write32(cpu->mem, _t18, cpu->r[31]);
|
|
/* 028AC66C */ _t19 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028AC66C */ rbrew_write32(cpu->mem, _t19, cpu->r[31]);
|
|
/* 028AC670 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028AC670 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AC674 */ _t21 = cpu->r[12] + 0x00000014u;
|
|
/* 028AC674 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AC678 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC67C */ cpu->r[4] = cpu->r[30];
|
|
/* 028AC680 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC684 */ cpu->r[0] = 0xDEAD0000u;
|
|
/* 028AC688 */ _t22 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028AC688 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AC68C */ cpu->r[0] = cpu->r[0] | 0x0000BEEFu;
|
|
/* 028AC690 */ _t23 = cpu->r[30] + 0x00000050u;
|
|
/* 028AC690 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028AC694 */ _t24 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028AC694 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028AC698 */ _t25 = cpu->r[30] + 0x00000048u;
|
|
/* 028AC698 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 028AC69C */ _t26 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028AC69C */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AC6A0 */ cpu->ctr = cpu->r[11];
|
|
/* 028AC6A4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AC6A8 */ cpu->r[4] = 0x00000003u;
|
|
/* 028AC6AC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC6B0 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC6B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AC6B4 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC6B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AC6B8 */ cpu->lr = cpu->r[0];
|
|
/* 028AC6BC */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC6BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AC6C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AC6C4 */ return;
|
|
}
|
|
|
|
// fn_028AC5DC @ 0x28ac5dc
|
|
void Gambit_fn_028AC5DC(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_028AC5DC: ; // 0x28ac5dc
|
|
/* 028AC5DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AC5DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC5DC */ cpu->r[1] = _t0;
|
|
/* 028AC5E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC5E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC5E4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC5E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AC5E8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC5E8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AC5EC */ _t4 = cpu->r[3] + 0x0000005Cu;
|
|
/* 028AC5EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AC5F0 */ _t5 = cpu->r[12] + 0x00000034u;
|
|
/* 028AC5F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AC5F4 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC5F8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AC5FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC600 */ _t6 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028AC600 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AC604 */ _t7 = cpu->r[12] + 0x00000054u;
|
|
/* 028AC604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AC608 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC60C */ cpu->r[3] = cpu->r[30];
|
|
/* 028AC610 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC614 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AC618 */ Gambit_fn_028AC558(cpu);
|
|
/* 028AC61C */ _t8 = cpu->r[30] + 0x00000054u;
|
|
/* 028AC61C */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AC620 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AC624 */ cpu->r[31] = 0x00000000u;
|
|
/* 028AC628 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC628 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028AC628 */ if (_t10) goto L_028AC63C; else goto L_028AC62C;
|
|
L_028AC62C: ; // 0x28ac62c
|
|
/* 028AC62C */ Gambit_fn_028AABC0(cpu);
|
|
/* 028AC630 */ _t11 = cpu->r[30] + 0x00000054u;
|
|
/* 028AC630 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AC634 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028AC638 */ _t12 = cpu->r[30] + 0x00000054u;
|
|
/* 028AC638 */ rbrew_write32(cpu->mem, _t12, cpu->r[31]);
|
|
L_028AC63C: ; // 0x28ac63c
|
|
/* 028AC63C */ _t13 = cpu->r[30] + 0x00000050u;
|
|
/* 028AC63C */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028AC640 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AC644 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC644 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028AC644 */ if (_t15) goto L_028AC664; else goto L_028AC648;
|
|
L_028AC648: ; // 0x28ac648
|
|
/* 028AC648 */ cpu->r[6] = 0x00000000u;
|
|
/* 028AC64C */ cpu->r[7] = 0x00000001u;
|
|
/* 028AC650 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028AC654 */ cpu->r[8] = cpu->r[6];
|
|
/* 028AC658 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028AC65C */ Gambit_fn_02C82F38(cpu);
|
|
/* 028AC660 */ _t16 = cpu->r[30] + 0x00000050u;
|
|
/* 028AC660 */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
L_028AC664: ; // 0x28ac664
|
|
/* 028AC664 */ _t17 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AC664 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AC668 */ _t18 = cpu->r[30] + 0x00000048u;
|
|
/* 028AC668 */ rbrew_write32(cpu->mem, _t18, cpu->r[31]);
|
|
/* 028AC66C */ _t19 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028AC66C */ rbrew_write32(cpu->mem, _t19, cpu->r[31]);
|
|
/* 028AC670 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028AC670 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AC674 */ _t21 = cpu->r[12] + 0x00000014u;
|
|
/* 028AC674 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AC678 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC67C */ cpu->r[4] = cpu->r[30];
|
|
/* 028AC680 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC684 */ cpu->r[0] = 0xDEAD0000u;
|
|
/* 028AC688 */ _t22 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028AC688 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AC68C */ cpu->r[0] = cpu->r[0] | 0x0000BEEFu;
|
|
/* 028AC690 */ _t23 = cpu->r[30] + 0x00000050u;
|
|
/* 028AC690 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028AC694 */ _t24 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028AC694 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028AC698 */ _t25 = cpu->r[30] + 0x00000048u;
|
|
/* 028AC698 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 028AC69C */ _t26 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028AC69C */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AC6A0 */ cpu->ctr = cpu->r[11];
|
|
/* 028AC6A4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AC6A8 */ cpu->r[4] = 0x00000003u;
|
|
/* 028AC6AC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC6B0 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028AC6B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AC6B4 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC6B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AC6B8 */ cpu->lr = cpu->r[0];
|
|
/* 028AC6BC */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC6BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AC6C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AC6C4 */ return;
|
|
}
|
|
|
|
// fn_028AC6C8 @ 0x28ac6c8
|
|
void Gambit_fn_028AC6C8(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_028AC6C8: ; // 0x28ac6c8
|
|
/* 028AC6C8 */ cpu->r[0] = cpu->lr;
|
|
/* 028AC6CC */ _t0 = cpu->r[1] + 0xFFFFFE70u;
|
|
/* 028AC6CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC6CC */ cpu->r[1] = _t0;
|
|
/* 028AC6D0 */ _t1 = cpu->r[1] + 0x00000188u;
|
|
/* 028AC6D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC6D4 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC6D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[4]);
|
|
/* 028AC6D8 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AC6D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[8]);
|
|
/* 028AC6DC */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC6DC */ rbrew_write32(cpu->mem, _t4, cpu->r[6]);
|
|
/* 028AC6E0 */ _t5 = cpu->r[1] + 0x00000020u;
|
|
/* 028AC6E0 */ rbrew_write32(cpu->mem, _t5, cpu->r[5]);
|
|
/* 028AC6E4 */ _t6 = cpu->r[1] + 0x00000194u;
|
|
/* 028AC6E4 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028AC6E8 */ _t7 = cpu->r[1] + 0x0000018Cu;
|
|
/* 028AC6E8 */ rbrew_write32(cpu->mem, _t7, cpu->r[31]);
|
|
/* 028AC6EC */ _t8 = cpu->r[1] + 0x00000018u;
|
|
/* 028AC6EC */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 028AC6F0 */ _t9 = cpu->r[1] + 0x00000028u;
|
|
/* 028AC6F0 */ rbrew_write32(cpu->mem, _t9, cpu->r[7]);
|
|
/* 028AC6F4 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 028AC6F4 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 028AC6F8 */ _t11 = cpu->r[1] + 0x00000034u;
|
|
/* 028AC6F8 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028AC6FC */ _t12 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC6FC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AC6FC */ if (_t13) goto L_028AC700; else goto L_028AC720;
|
|
L_028AC700: ; // 0x28ac700
|
|
/* 028AC700 */ _t14 = cpu->r[1] + 0x00000048u;
|
|
/* 028AC700 */ rbrew_write_f64(cpu->mem, _t14, cpu->f[3]);
|
|
/* 028AC704 */ _t15 = cpu->r[1] + 0x00000068u;
|
|
/* 028AC704 */ rbrew_write_f64(cpu->mem, _t15, cpu->f[7]);
|
|
/* 028AC708 */ _t16 = cpu->r[1] + 0x00000060u;
|
|
/* 028AC708 */ rbrew_write_f64(cpu->mem, _t16, cpu->f[6]);
|
|
/* 028AC70C */ _t17 = cpu->r[1] + 0x00000040u;
|
|
/* 028AC70C */ rbrew_write_f64(cpu->mem, _t17, cpu->f[2]);
|
|
/* 028AC710 */ _t18 = cpu->r[1] + 0x00000050u;
|
|
/* 028AC710 */ rbrew_write_f64(cpu->mem, _t18, cpu->f[4]);
|
|
/* 028AC714 */ _t19 = cpu->r[1] + 0x00000070u;
|
|
/* 028AC714 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[8]);
|
|
/* 028AC718 */ _t20 = cpu->r[1] + 0x00000058u;
|
|
/* 028AC718 */ rbrew_write_f64(cpu->mem, _t20, cpu->f[5]);
|
|
/* 028AC71C */ _t21 = cpu->r[1] + 0x00000038u;
|
|
/* 028AC71C */ rbrew_write_f64(cpu->mem, _t21, cpu->f[1]);
|
|
L_028AC720: ; // 0x28ac720
|
|
/* 028AC720 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AC724 */ _t22 = cpu->r[30] + 0x00000018u;
|
|
/* 028AC724 */ cpu->r[8] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028AC728 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AC72C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC72C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028AC72C */ if (_t24) goto L_028AC74C; else goto L_028AC730;
|
|
L_028AC730: ; // 0x28ac730
|
|
/* 028AC730 */ _t25 = cpu->r[1] + 0x00000194u;
|
|
/* 028AC730 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AC734 */ _t26 = cpu->r[1] + 0x00000188u;
|
|
/* 028AC734 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AC738 */ cpu->lr = cpu->r[0];
|
|
/* 028AC73C */ _t27 = cpu->r[1] + 0x0000018Cu;
|
|
/* 028AC73C */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AC740 */ cpu->r[1] = cpu->r[1] + 0x00000190u;
|
|
/* 028AC744 */ cpu->r[3] = 0x00000001u;
|
|
/* 028AC748 */ return;
|
|
L_028AC74C: ; // 0x28ac74c
|
|
/* 028AC74C */ cpu->r[12] = 0x10110000u;
|
|
/* 028AC750 */ cpu->r[8] = cpu->r[1] + 0x00000018u;
|
|
/* 028AC754 */ _t28 = cpu->r[12] + 0x00007399u;
|
|
/* 028AC754 */ cpu->r[12] = rbrew_read8(cpu->mem, _t28);
|
|
/* 028AC758 */ cpu->r[0] = 0x00000002u;
|
|
/* 028AC75C */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC75C */ rbrew_write32(cpu->mem, _t29, cpu->r[8]);
|
|
/* 028AC760 */ cpu->r[9] = cpu->r[1] + 0x00000084u;
|
|
/* 028AC764 */ _t30 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC764 */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[0]);
|
|
/* 028AC768 */ cpu->r[0] = 0x00000100u;
|
|
/* 028AC76C */ _t31 = cpu->r[1] + 0x00000078u;
|
|
/* 028AC76C */ rbrew_write32(cpu->mem, _t31, cpu->r[9]);
|
|
/* 028AC770 */ cpu->r[11] = 0x10140000u;
|
|
/* 028AC774 */ _t32 = cpu->r[1] + 0x00000183u;
|
|
/* 028AC774 */ rbrew_write8(cpu->mem, _t32, (uint8_t)cpu->r[12]);
|
|
/* 028AC778 */ cpu->r[11] = cpu->r[11] + 0xFFFF801Cu;
|
|
/* 028AC77C */ cpu->r[10] = cpu->r[1] + 0x00000198u;
|
|
/* 028AC780 */ _t33 = cpu->r[1] + 0x00000080u;
|
|
/* 028AC780 */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 028AC784 */ cpu->r[31] = 0x00000000u;
|
|
/* 028AC788 */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC788 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
/* 028AC78C */ _t35 = cpu->r[1] + 0x00000084u;
|
|
/* 028AC78C */ rbrew_write8(cpu->mem, _t35, (uint8_t)cpu->r[12]);
|
|
/* 028AC790 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028AC794 */ _t36 = cpu->r[1] + 0x00000009u;
|
|
/* 028AC794 */ rbrew_write8(cpu->mem, _t36, (uint8_t)cpu->r[31]);
|
|
/* 028AC798 */ cpu->r[3] = cpu->r[1] + 0x00000078u;
|
|
/* 028AC79C */ _t37 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028AC79C */ rbrew_write32(cpu->mem, _t37, cpu->r[11]);
|
|
/* 028AC7A0 */ Gambit_fn_0282A5DC(cpu);
|
|
/* 028AC7A4 */ _t38 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028AC7A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028AC7A8 */ _t39 = cpu->r[7] + 0x00000014u;
|
|
/* 028AC7A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AC7AC */ cpu->ctr = cpu->r[0];
|
|
/* 028AC7B0 */ cpu->r[3] = cpu->r[1] + 0x00000078u;
|
|
/* 028AC7B4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC7B8 */ _t40 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AC7B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028AC7BC */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC7C0 */ _t41 = cpu->r[1] + 0x00000078u;
|
|
/* 028AC7C0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028AC7C4 */ cpu->r[6] = cpu->r[6] + 0xFFFF8120u;
|
|
/* 028AC7C8 */ _t42 = cpu->r[30] + 0x00000020u;
|
|
/* 028AC7C8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028AC7CC */ cpu->r[4] = 0x0000001Bu;
|
|
/* 028AC7D0 */ _t43 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC7D0 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028AC7D0 */ if (_t44) goto L_028AC7D4; // else: addr-0 trap, fall-through
|
|
L_028AC7D4: ; // 0x28ac7d4
|
|
/* 028AC7D4 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028AC7D8 */ _t45 = cpu->r[1] + 0x00000194u;
|
|
/* 028AC7D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028AC7DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028AC7E0 */ _t46 = cpu->r[1] + 0x00000188u;
|
|
/* 028AC7E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028AC7E4 */ cpu->lr = cpu->r[0];
|
|
/* 028AC7E8 */ _t47 = cpu->r[1] + 0x0000018Cu;
|
|
/* 028AC7E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028AC7EC */ cpu->r[1] = cpu->r[1] + 0x00000190u;
|
|
/* 028AC7F0 */ return;
|
|
}
|
|
|
|
// fn_028AC6CC @ 0x28ac6cc
|
|
void Gambit_fn_028AC6CC(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_028AC6CC: ; // 0x28ac6cc
|
|
/* 028AC6CC */ _t0 = cpu->r[1] + 0xFFFFFE70u;
|
|
/* 028AC6CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC6CC */ cpu->r[1] = _t0;
|
|
/* 028AC6D0 */ _t1 = cpu->r[1] + 0x00000188u;
|
|
/* 028AC6D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC6D4 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC6D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[4]);
|
|
/* 028AC6D8 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AC6D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[8]);
|
|
/* 028AC6DC */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC6DC */ rbrew_write32(cpu->mem, _t4, cpu->r[6]);
|
|
/* 028AC6E0 */ _t5 = cpu->r[1] + 0x00000020u;
|
|
/* 028AC6E0 */ rbrew_write32(cpu->mem, _t5, cpu->r[5]);
|
|
/* 028AC6E4 */ _t6 = cpu->r[1] + 0x00000194u;
|
|
/* 028AC6E4 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028AC6E8 */ _t7 = cpu->r[1] + 0x0000018Cu;
|
|
/* 028AC6E8 */ rbrew_write32(cpu->mem, _t7, cpu->r[31]);
|
|
/* 028AC6EC */ _t8 = cpu->r[1] + 0x00000018u;
|
|
/* 028AC6EC */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 028AC6F0 */ _t9 = cpu->r[1] + 0x00000028u;
|
|
/* 028AC6F0 */ rbrew_write32(cpu->mem, _t9, cpu->r[7]);
|
|
/* 028AC6F4 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 028AC6F4 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 028AC6F8 */ _t11 = cpu->r[1] + 0x00000034u;
|
|
/* 028AC6F8 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028AC6FC */ _t12 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC6FC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AC6FC */ if (_t13) goto L_028AC700; else goto L_028AC720;
|
|
L_028AC700: ; // 0x28ac700
|
|
/* 028AC700 */ _t14 = cpu->r[1] + 0x00000048u;
|
|
/* 028AC700 */ rbrew_write_f64(cpu->mem, _t14, cpu->f[3]);
|
|
/* 028AC704 */ _t15 = cpu->r[1] + 0x00000068u;
|
|
/* 028AC704 */ rbrew_write_f64(cpu->mem, _t15, cpu->f[7]);
|
|
/* 028AC708 */ _t16 = cpu->r[1] + 0x00000060u;
|
|
/* 028AC708 */ rbrew_write_f64(cpu->mem, _t16, cpu->f[6]);
|
|
/* 028AC70C */ _t17 = cpu->r[1] + 0x00000040u;
|
|
/* 028AC70C */ rbrew_write_f64(cpu->mem, _t17, cpu->f[2]);
|
|
/* 028AC710 */ _t18 = cpu->r[1] + 0x00000050u;
|
|
/* 028AC710 */ rbrew_write_f64(cpu->mem, _t18, cpu->f[4]);
|
|
/* 028AC714 */ _t19 = cpu->r[1] + 0x00000070u;
|
|
/* 028AC714 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[8]);
|
|
/* 028AC718 */ _t20 = cpu->r[1] + 0x00000058u;
|
|
/* 028AC718 */ rbrew_write_f64(cpu->mem, _t20, cpu->f[5]);
|
|
/* 028AC71C */ _t21 = cpu->r[1] + 0x00000038u;
|
|
/* 028AC71C */ rbrew_write_f64(cpu->mem, _t21, cpu->f[1]);
|
|
L_028AC720: ; // 0x28ac720
|
|
/* 028AC720 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AC724 */ _t22 = cpu->r[30] + 0x00000018u;
|
|
/* 028AC724 */ cpu->r[8] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028AC728 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AC72C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC72C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028AC72C */ if (_t24) goto L_028AC74C; else goto L_028AC730;
|
|
L_028AC730: ; // 0x28ac730
|
|
/* 028AC730 */ _t25 = cpu->r[1] + 0x00000194u;
|
|
/* 028AC730 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AC734 */ _t26 = cpu->r[1] + 0x00000188u;
|
|
/* 028AC734 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AC738 */ cpu->lr = cpu->r[0];
|
|
/* 028AC73C */ _t27 = cpu->r[1] + 0x0000018Cu;
|
|
/* 028AC73C */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AC740 */ cpu->r[1] = cpu->r[1] + 0x00000190u;
|
|
/* 028AC744 */ cpu->r[3] = 0x00000001u;
|
|
/* 028AC748 */ return;
|
|
L_028AC74C: ; // 0x28ac74c
|
|
/* 028AC74C */ cpu->r[12] = 0x10110000u;
|
|
/* 028AC750 */ cpu->r[8] = cpu->r[1] + 0x00000018u;
|
|
/* 028AC754 */ _t28 = cpu->r[12] + 0x00007399u;
|
|
/* 028AC754 */ cpu->r[12] = rbrew_read8(cpu->mem, _t28);
|
|
/* 028AC758 */ cpu->r[0] = 0x00000002u;
|
|
/* 028AC75C */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028AC75C */ rbrew_write32(cpu->mem, _t29, cpu->r[8]);
|
|
/* 028AC760 */ cpu->r[9] = cpu->r[1] + 0x00000084u;
|
|
/* 028AC764 */ _t30 = cpu->r[1] + 0x00000008u;
|
|
/* 028AC764 */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[0]);
|
|
/* 028AC768 */ cpu->r[0] = 0x00000100u;
|
|
/* 028AC76C */ _t31 = cpu->r[1] + 0x00000078u;
|
|
/* 028AC76C */ rbrew_write32(cpu->mem, _t31, cpu->r[9]);
|
|
/* 028AC770 */ cpu->r[11] = 0x10140000u;
|
|
/* 028AC774 */ _t32 = cpu->r[1] + 0x00000183u;
|
|
/* 028AC774 */ rbrew_write8(cpu->mem, _t32, (uint8_t)cpu->r[12]);
|
|
/* 028AC778 */ cpu->r[11] = cpu->r[11] + 0xFFFF801Cu;
|
|
/* 028AC77C */ cpu->r[10] = cpu->r[1] + 0x00000198u;
|
|
/* 028AC780 */ _t33 = cpu->r[1] + 0x00000080u;
|
|
/* 028AC780 */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 028AC784 */ cpu->r[31] = 0x00000000u;
|
|
/* 028AC788 */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AC788 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
/* 028AC78C */ _t35 = cpu->r[1] + 0x00000084u;
|
|
/* 028AC78C */ rbrew_write8(cpu->mem, _t35, (uint8_t)cpu->r[12]);
|
|
/* 028AC790 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028AC794 */ _t36 = cpu->r[1] + 0x00000009u;
|
|
/* 028AC794 */ rbrew_write8(cpu->mem, _t36, (uint8_t)cpu->r[31]);
|
|
/* 028AC798 */ cpu->r[3] = cpu->r[1] + 0x00000078u;
|
|
/* 028AC79C */ _t37 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028AC79C */ rbrew_write32(cpu->mem, _t37, cpu->r[11]);
|
|
/* 028AC7A0 */ Gambit_fn_0282A5DC(cpu);
|
|
/* 028AC7A4 */ _t38 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028AC7A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028AC7A8 */ _t39 = cpu->r[7] + 0x00000014u;
|
|
/* 028AC7A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AC7AC */ cpu->ctr = cpu->r[0];
|
|
/* 028AC7B0 */ cpu->r[3] = cpu->r[1] + 0x00000078u;
|
|
/* 028AC7B4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC7B8 */ _t40 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AC7B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028AC7BC */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC7C0 */ _t41 = cpu->r[1] + 0x00000078u;
|
|
/* 028AC7C0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028AC7C4 */ cpu->r[6] = cpu->r[6] + 0xFFFF8120u;
|
|
/* 028AC7C8 */ _t42 = cpu->r[30] + 0x00000020u;
|
|
/* 028AC7C8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028AC7CC */ cpu->r[4] = 0x0000001Bu;
|
|
/* 028AC7D0 */ _t43 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC7D0 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028AC7D0 */ if (_t44) goto L_028AC7D4; // else: addr-0 trap, fall-through
|
|
L_028AC7D4: ; // 0x28ac7d4
|
|
/* 028AC7D4 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028AC7D8 */ _t45 = cpu->r[1] + 0x00000194u;
|
|
/* 028AC7D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028AC7DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028AC7E0 */ _t46 = cpu->r[1] + 0x00000188u;
|
|
/* 028AC7E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028AC7E4 */ cpu->lr = cpu->r[0];
|
|
/* 028AC7E8 */ _t47 = cpu->r[1] + 0x0000018Cu;
|
|
/* 028AC7E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028AC7EC */ cpu->r[1] = cpu->r[1] + 0x00000190u;
|
|
/* 028AC7F0 */ return;
|
|
}
|
|
|
|
// fn_028AC7F4 @ 0x28ac7f4
|
|
void Gambit_fn_028AC7F4(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;
|
|
|
|
L_028AC7F4: ; // 0x28ac7f4
|
|
/* 028AC7F4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028AC7F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC7F4 */ cpu->r[1] = _t0;
|
|
/* 028AC7F8 */ /* nop */
|
|
/* 028AC7FC */ cpu->r[0] = cpu->lr;
|
|
/* 028AC800 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC800 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028AC804 */ cpu->r[29] = cpu->r[4];
|
|
/* 028AC808 */ cpu->r[28] = cpu->r[3];
|
|
/* 028AC80C */ _t2 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028AC80C */ cpu->r[10] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028AC810 */ _t3 = cpu->r[10] + 0x00000048u;
|
|
/* 028AC810 */ cpu->r[10] = rbrew_read8(cpu->mem, _t3);
|
|
/* 028AC814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AC818 */ cpu->r[30] = cpu->r[5];
|
|
/* 028AC81C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC81C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028AC81C */ if (_t5) goto L_028AC9D0; else goto L_028AC820;
|
|
L_028AC820: ; // 0x28ac820
|
|
/* 028AC820 */ _t6 = cpu->r[29] + 0x00000004u;
|
|
/* 028AC820 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AC824 */ cpu->r[31] = 0x10140000u;
|
|
/* 028AC828 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AC82C */ cpu->r[5] = cpu->r[31] + 0xFFFF812Cu;
|
|
/* 028AC830 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC830 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AC830 */ if (_t8) goto L_028AC838; else goto L_028AC834;
|
|
L_028AC834: ; // 0x28ac834
|
|
/* 028AC834 */ _t9 = cpu->r[12] + 0x00000000u;
|
|
/* 028AC834 */ cpu->r[5] = rbrew_read32(cpu->mem, _t9);
|
|
L_028AC838: ; // 0x28ac838
|
|
/* 028AC838 */ cpu->r[4] = 0x10140000u;
|
|
/* 028AC83C */ cpu->r[3] = cpu->r[28];
|
|
/* 028AC840 */ cpu->r[4] = cpu->r[4] + 0xFFFF8158u;
|
|
/* 028AC844 */ _t10 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC844 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AC844 */ if (_t11) goto L_028AC848; // else: addr-0 trap, fall-through
|
|
L_028AC848: ; // 0x28ac848
|
|
/* 028AC848 */ Gambit_fn_028AC6C8(cpu);
|
|
/* 028AC84C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AC850 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC850 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AC850 */ if (_t13) goto L_028AC9D0; else goto L_028AC854;
|
|
L_028AC854: ; // 0x28ac854
|
|
/* 028AC854 */ _t14 = cpu->r[28] + 0x00000019u;
|
|
/* 028AC854 */ cpu->r[0] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028AC858 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AC85C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC85C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028AC85C */ if (_t16) goto L_028AC8A4; else goto L_028AC860;
|
|
L_028AC860: ; // 0x28ac860
|
|
/* 028AC860 */ _t17 = cpu->r[29] + 0x00000004u;
|
|
/* 028AC860 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AC864 */ cpu->r[7] = cpu->r[31] + 0xFFFF812Cu;
|
|
/* 028AC868 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AC86C */ _t18 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028AC86C */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AC870 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC870 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028AC870 */ if (_t20) goto L_028AC878; else goto L_028AC874;
|
|
L_028AC874: ; // 0x28ac874
|
|
/* 028AC874 */ _t21 = cpu->r[12] + 0x00000000u;
|
|
/* 028AC874 */ cpu->r[7] = rbrew_read32(cpu->mem, _t21);
|
|
L_028AC878: ; // 0x28ac878
|
|
/* 028AC878 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC87C */ cpu->r[4] = 0x00000002u;
|
|
/* 028AC880 */ _t22 = cpu->r[28] + 0x00000020u;
|
|
/* 028AC880 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AC884 */ cpu->r[6] = cpu->r[6] + 0xFFFF8130u;
|
|
/* 028AC888 */ _t23 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC888 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028AC888 */ if (_t24) goto L_028AC88C; // else: addr-0 trap, fall-through
|
|
L_028AC88C: ; // 0x28ac88c
|
|
/* 028AC88C */ Gambit_fn_028AA73C(cpu);
|
|
/* 028AC890 */ /* nop */
|
|
/* 028AC894 */ _t25 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC894 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AC898 */ cpu->lr = cpu->r[0];
|
|
/* 028AC89C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028AC8A0 */ return;
|
|
L_028AC8A4: ; // 0x28ac8a4
|
|
/* 028AC8A4 */ _t26 = cpu->r[28] + 0x0000005Cu;
|
|
/* 028AC8A4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AC8A8 */ _t27 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028AC8A8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AC8AC */ cpu->ctr = cpu->r[11];
|
|
/* 028AC8B0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AC8B4 */ cpu->r[4] = cpu->r[29];
|
|
/* 028AC8B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC8BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AC8C0 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC8C0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028AC8C0 */ if (_t29) goto L_028AC8C4; else goto L_028AC9D0;
|
|
L_028AC8C4: ; // 0x28ac8c4
|
|
/* 028AC8C4 */ _t30 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028AC8C4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AC8C8 */ _t31 = cpu->r[3] + 0x00000000u;
|
|
/* 028AC8C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AC8CC */ _t32 = cpu->r[12] + 0x0000004Cu;
|
|
/* 028AC8CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AC8D0 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC8D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC8D8 */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 028AC8D8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028AC8DC */ _t34 = cpu->r[9] + 0x00000014u;
|
|
/* 028AC8DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028AC8E0 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC8E4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AC8E8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC8EC */ _t35 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028AC8EC */ cpu->r[3] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028AC8F0 */ Gambit_fn_028A9F2C(cpu);
|
|
/* 028AC8F4 */ _t36 = cpu->r[31] + 0x00000000u;
|
|
/* 028AC8F4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028AC8F8 */ _t37 = cpu->r[8] + 0x0000001Cu;
|
|
/* 028AC8F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AC8FC */ cpu->r[27] = cpu->r[3];
|
|
/* 028AC900 */ cpu->ctr = cpu->r[0];
|
|
/* 028AC904 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AC908 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AC90C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028AC910 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC910 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028AC910 */ if (_t39) goto L_028AC9B4; else goto L_028AC914;
|
|
L_028AC914: ; // 0x28ac914
|
|
/* 028AC914 */ _t40 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028AC914 */ cpu->r[4] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028AC918 */ cpu->r[3] = cpu->r[27];
|
|
/* 028AC91C */ _t41 = cpu->r[29] + 0x00000010u;
|
|
/* 028AC91C */ cpu->r[6] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028AC920 */ _t42 = cpu->r[29] + 0x00000008u;
|
|
/* 028AC920 */ cpu->r[5] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028AC924 */ _t43 = cpu->r[29] + 0x00000004u;
|
|
/* 028AC924 */ cpu->r[31] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028AC928 */ Gambit_fn_028A57F8(cpu);
|
|
/* 028AC92C */ _t44 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028AC92C */ cpu->r[7] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028AC930 */ cpu->r[3] = cpu->r[27];
|
|
/* 028AC934 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AC938 */ _t45 = cpu->r[7] + 0x0000004Cu;
|
|
/* 028AC938 */ cpu->r[6] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028AC93C */ cpu->r[5] = cpu->r[31];
|
|
/* 028AC940 */ Gambit_fn_028A5504(cpu);
|
|
/* 028AC944 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AC948 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC948 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028AC948 */ if (_t47) goto L_028AC990; else goto L_028AC94C;
|
|
L_028AC94C: ; // 0x28ac94c
|
|
/* 028AC94C */ _t48 = cpu->r[28] + 0x00000014u;
|
|
/* 028AC94C */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028AC950 */ cpu->r[3] = cpu->r[28] + 0x00000008u;
|
|
/* 028AC954 */ cpu->r[4] = cpu->r[27] + cpu->r[0];
|
|
/* 028AC958 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028AC95C */ _t49 = cpu->r[28] + 0x00000010u;
|
|
/* 028AC95C */ cpu->r[12] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028AC960 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028AC964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028AC968 */ _t50 = cpu->r[28] + 0x00000010u;
|
|
/* 028AC968 */ rbrew_write32(cpu->mem, _t50, cpu->r[12]);
|
|
/* 028AC96C */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AC96C */ _t52 = _t51 & 0x00000001u;
|
|
/* 028AC96C */ if (_t52) goto L_028AC9D0; else goto L_028AC970;
|
|
L_028AC970: ; // 0x28ac970
|
|
/* 028AC970 */ _t53 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028AC970 */ cpu->r[9] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028AC974 */ _t54 = cpu->r[30] + 0x00000000u;
|
|
/* 028AC974 */ rbrew_write32(cpu->mem, _t54, cpu->r[27]);
|
|
/* 028AC978 */ _t55 = cpu->r[30] + 0x00000004u;
|
|
/* 028AC978 */ rbrew_write32(cpu->mem, _t55, cpu->r[9]);
|
|
/* 028AC97C */ /* nop */
|
|
/* 028AC980 */ _t56 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC980 */ cpu->r[0] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028AC984 */ cpu->lr = cpu->r[0];
|
|
/* 028AC988 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028AC98C */ return;
|
|
L_028AC990: ; // 0x28ac990
|
|
/* 028AC990 */ _t57 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028AC990 */ cpu->r[3] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028AC994 */ cpu->r[4] = cpu->r[27];
|
|
/* 028AC998 */ cpu->r[5] = 0x00000000u;
|
|
/* 028AC99C */ Gambit_fn_028AA014(cpu);
|
|
/* 028AC9A0 */ /* nop */
|
|
/* 028AC9A4 */ _t58 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC9A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028AC9A8 */ cpu->lr = cpu->r[0];
|
|
/* 028AC9AC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028AC9B0 */ return;
|
|
L_028AC9B4: ; // 0x28ac9b4
|
|
/* 028AC9B4 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AC9B8 */ _t59 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028AC9B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028AC9BC */ cpu->r[4] = 0x00000006u;
|
|
/* 028AC9C0 */ cpu->r[6] = cpu->r[6] + 0xFFFF8138u;
|
|
/* 028AC9C4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028AC9C8 */ _t60 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AC9C8 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028AC9C8 */ if (_t61) goto L_028AC9CC; // else: addr-0 trap, fall-through
|
|
L_028AC9CC: ; // 0x28ac9cc
|
|
/* 028AC9CC */ Gambit_fn_028AA73C(cpu);
|
|
L_028AC9D0: ; // 0x28ac9d0
|
|
/* 028AC9D0 */ /* nop */
|
|
/* 028AC9D4 */ _t62 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC9D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028AC9D8 */ cpu->lr = cpu->r[0];
|
|
/* 028AC9DC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028AC9E0 */ return;
|
|
}
|
|
|
|
// fn_028AC9E4 @ 0x28ac9e4
|
|
void Gambit_fn_028AC9E4(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_028AC9E4: ; // 0x28ac9e4
|
|
/* 028AC9E4 */ cpu->r[0] = cpu->lr;
|
|
/* 028AC9E8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028AC9E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC9E8 */ cpu->r[1] = _t0;
|
|
/* 028AC9EC */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028AC9EC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC9F0 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC9F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AC9F4 */ _t3 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC9F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AC9F8 */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AC9F8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AC9FC */ cpu->r[29] = cpu->r[3];
|
|
/* 028ACA00 */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028ACA00 */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028ACA04 */ _t6 = cpu->r[8] + 0x00000048u;
|
|
/* 028ACA04 */ cpu->r[10] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028ACA08 */ cpu->r[31] = cpu->r[5];
|
|
/* 028ACA0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028ACA10 */ cpu->r[30] = cpu->r[4];
|
|
/* 028ACA14 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA14 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028ACA14 */ if (_t8) goto L_028ACA80; else goto L_028ACA18;
|
|
L_028ACA18: ; // 0x28aca18
|
|
/* 028ACA18 */ cpu->r[4] = 0x10140000u;
|
|
/* 028ACA1C */ cpu->r[5] = cpu->r[30];
|
|
/* 028ACA20 */ cpu->r[4] = cpu->r[4] + 0xFFFF8164u;
|
|
/* 028ACA24 */ cpu->r[3] = cpu->r[29];
|
|
/* 028ACA28 */ _t9 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028ACA28 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028ACA28 */ if (_t10) goto L_028ACA2C; // else: addr-0 trap, fall-through
|
|
L_028ACA2C: ; // 0x28aca2c
|
|
/* 028ACA2C */ Gambit_fn_028AC6C8(cpu);
|
|
/* 028ACA30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACA34 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA34 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028ACA34 */ if (_t12) goto L_028ACA80; else goto L_028ACA38;
|
|
L_028ACA38: ; // 0x28aca38
|
|
/* 028ACA38 */ cpu->r[11] = 0x00000000u;
|
|
/* 028ACA3C */ _t13 = cpu->r[29] + 0x00000020u;
|
|
/* 028ACA3C */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028ACA40 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028ACA44 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA44 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028ACA48 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACA48 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028ACA4C */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028ACA4C */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028ACA50 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACA50 */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 028ACA54 */ _t18 = cpu->r[1] + 0x00000018u;
|
|
/* 028ACA54 */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 028ACA58 */ _t19 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028ACA58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028ACA5C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA60 */ cpu->r[5] = cpu->r[30];
|
|
/* 028ACA64 */ Gambit_fn_028AE274(cpu);
|
|
/* 028ACA68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACA6C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA6C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028ACA6C */ if (_t21) goto L_028ACA80; else goto L_028ACA70;
|
|
L_028ACA70: ; // 0x28aca70
|
|
/* 028ACA70 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA74 */ cpu->r[5] = cpu->r[31];
|
|
/* 028ACA78 */ cpu->r[3] = cpu->r[29];
|
|
/* 028ACA7C */ Gambit_fn_028AC7F4(cpu);
|
|
L_028ACA80: ; // 0x28aca80
|
|
/* 028ACA80 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028ACA80 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028ACA84 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028ACA84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028ACA88 */ _t24 = cpu->r[1] + 0x00000020u;
|
|
/* 028ACA88 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028ACA8C */ cpu->lr = cpu->r[0];
|
|
/* 028ACA90 */ _t25 = cpu->r[1] + 0x00000024u;
|
|
/* 028ACA90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028ACA94 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028ACA98 */ return;
|
|
}
|
|
|
|
// fn_028AC9E8 @ 0x28ac9e8
|
|
void Gambit_fn_028AC9E8(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_028AC9E8: ; // 0x28ac9e8
|
|
/* 028AC9E8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028AC9E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC9E8 */ cpu->r[1] = _t0;
|
|
/* 028AC9EC */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028AC9EC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC9F0 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC9F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AC9F4 */ _t3 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC9F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AC9F8 */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AC9F8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AC9FC */ cpu->r[29] = cpu->r[3];
|
|
/* 028ACA00 */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028ACA00 */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028ACA04 */ _t6 = cpu->r[8] + 0x00000048u;
|
|
/* 028ACA04 */ cpu->r[10] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028ACA08 */ cpu->r[31] = cpu->r[5];
|
|
/* 028ACA0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028ACA10 */ cpu->r[30] = cpu->r[4];
|
|
/* 028ACA14 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA14 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028ACA14 */ if (_t8) goto L_028ACA80; else goto L_028ACA18;
|
|
L_028ACA18: ; // 0x28aca18
|
|
/* 028ACA18 */ cpu->r[4] = 0x10140000u;
|
|
/* 028ACA1C */ cpu->r[5] = cpu->r[30];
|
|
/* 028ACA20 */ cpu->r[4] = cpu->r[4] + 0xFFFF8164u;
|
|
/* 028ACA24 */ cpu->r[3] = cpu->r[29];
|
|
/* 028ACA28 */ _t9 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028ACA28 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028ACA28 */ if (_t10) goto L_028ACA2C; // else: addr-0 trap, fall-through
|
|
L_028ACA2C: ; // 0x28aca2c
|
|
/* 028ACA2C */ Gambit_fn_028AC6C8(cpu);
|
|
/* 028ACA30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACA34 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA34 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028ACA34 */ if (_t12) goto L_028ACA80; else goto L_028ACA38;
|
|
L_028ACA38: ; // 0x28aca38
|
|
/* 028ACA38 */ cpu->r[11] = 0x00000000u;
|
|
/* 028ACA3C */ _t13 = cpu->r[29] + 0x00000020u;
|
|
/* 028ACA3C */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028ACA40 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028ACA44 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA44 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028ACA48 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACA48 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028ACA4C */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028ACA4C */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028ACA50 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACA50 */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 028ACA54 */ _t18 = cpu->r[1] + 0x00000018u;
|
|
/* 028ACA54 */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 028ACA58 */ _t19 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028ACA58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028ACA5C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA60 */ cpu->r[5] = cpu->r[30];
|
|
/* 028ACA64 */ Gambit_fn_028AE274(cpu);
|
|
/* 028ACA68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACA6C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA6C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028ACA6C */ if (_t21) goto L_028ACA80; else goto L_028ACA70;
|
|
L_028ACA70: ; // 0x28aca70
|
|
/* 028ACA70 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA74 */ cpu->r[5] = cpu->r[31];
|
|
/* 028ACA78 */ cpu->r[3] = cpu->r[29];
|
|
/* 028ACA7C */ Gambit_fn_028AC7F4(cpu);
|
|
L_028ACA80: ; // 0x28aca80
|
|
/* 028ACA80 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028ACA80 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028ACA84 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028ACA84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028ACA88 */ _t24 = cpu->r[1] + 0x00000020u;
|
|
/* 028ACA88 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028ACA8C */ cpu->lr = cpu->r[0];
|
|
/* 028ACA90 */ _t25 = cpu->r[1] + 0x00000024u;
|
|
/* 028ACA90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028ACA94 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028ACA98 */ return;
|
|
}
|
|
|
|
// fn_028ACA9C @ 0x28aca9c
|
|
void Gambit_fn_028ACA9C(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_028ACA9C: ; // 0x28aca9c
|
|
/* 028ACA9C */ _t0 = cpu->r[3] + 0x00000044u;
|
|
/* 028ACA9C */ cpu->r[9] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028ACAA0 */ cpu->r[10] = 0x00000000u;
|
|
/* 028ACAA4 */ _t1 = cpu->r[9] + 0x00000000u;
|
|
/* 028ACAA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028ACAA8 */ cpu->r[6] = 0xFFFFFFFFu;
|
|
/* 028ACAAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 028ACAB0 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACAB0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028ACAB0 */ _t4 = _t3 ^ 0x00000001u;
|
|
/* 028ACAB0 */ if (_t4) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ACAB0 */ goto L_028ACAB4;
|
|
L_028ACAB4: ; // 0x28acab4
|
|
/* 028ACAB4 */ cpu->r[11] = 0x00000000u;
|
|
L_028ACAB8: ; // 0x28acab8
|
|
/* 028ACAB8 */ _t5 = cpu->r[9] + 0x00000000u;
|
|
/* 028ACAB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028ACABC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028ACAC0 */ cpu->r[12] = 0x00000000u;
|
|
/* 028ACAC4 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACAC4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028ACAC4 */ if (_t7) goto L_028ACAC8; else goto L_028ACAD0;
|
|
L_028ACAC8: ; // 0x28acac8
|
|
/* 028ACAC8 */ _t8 = cpu->r[9] + 0x00000004u;
|
|
/* 028ACAC8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028ACACC */ cpu->r[12] = cpu->r[8] + cpu->r[11];
|
|
L_028ACAD0: ; // 0x28acad0
|
|
/* 028ACAD0 */ _t9 = cpu->r[12] + 0x00000000u;
|
|
/* 028ACAD0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028ACAD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[4]);
|
|
/* 028ACAD8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACAD8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028ACAD8 */ if (_t11) goto L_028ACADC; else goto L_028ACAE4;
|
|
L_028ACADC: ; // 0x28acadc
|
|
/* 028ACADC */ _t12 = cpu->r[12] + 0x00000004u;
|
|
/* 028ACADC */ rbrew_write32(cpu->mem, _t12, cpu->r[5]);
|
|
/* 028ACAE0 */ return;
|
|
L_028ACAE4: ; // 0x28acae4
|
|
/* 028ACAE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0xFFFFFFFFu);
|
|
/* 028ACAE8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACAE8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028ACAE8 */ if (_t14) goto L_028ACAEC; else goto L_028ACAF8;
|
|
L_028ACAEC: ; // 0x28acaec
|
|
/* 028ACAEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028ACAF0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACAF0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028ACAF0 */ if (_t16) goto L_028ACAF4; else goto L_028ACAF8;
|
|
L_028ACAF4: ; // 0x28acaf4
|
|
/* 028ACAF4 */ cpu->r[6] = cpu->r[10];
|
|
L_028ACAF8: ; // 0x28acaf8
|
|
/* 028ACAF8 */ _t17 = cpu->r[9] + 0x00000000u;
|
|
/* 028ACAF8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028ACAFC */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028ACB00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[7]);
|
|
/* 028ACB04 */ cpu->r[11] = cpu->r[11] + 0x00000008u;
|
|
/* 028ACB08 */ _t18 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACB08 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028ACB08 */ if (_t19) goto L_028ACAB8; else goto L_028ACB0C;
|
|
L_028ACB0C: ; // 0x28acb0c
|
|
/* 028ACB0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028ACB10 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACB10 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028ACB10 */ if (_t21) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028ACB10 */ goto L_028ACB14;
|
|
L_028ACB14: ; // 0x28acb14
|
|
/* 028ACB14 */ _t22 = cpu->r[9] + 0x00000000u;
|
|
/* 028ACB14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028ACB18 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[0]);
|
|
/* 028ACB1C */ cpu->r[8] = 0x00000000u;
|
|
/* 028ACB20 */ _t23 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACB20 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028ACB20 */ if (_t24) goto L_028ACB24; else goto L_028ACB30;
|
|
L_028ACB24: ; // 0x28acb24
|
|
/* 028ACB24 */ _t25 = cpu->r[9] + 0x00000004u;
|
|
/* 028ACB24 */ cpu->r[9] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028ACB28 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028ACB2C */ cpu->r[8] = cpu->r[9] + cpu->r[0];
|
|
L_028ACB30: ; // 0x28acb30
|
|
/* 028ACB30 */ _t26 = cpu->r[8] + 0x00000004u;
|
|
/* 028ACB30 */ rbrew_write32(cpu->mem, _t26, cpu->r[5]);
|
|
/* 028ACB34 */ _t27 = cpu->r[8] + 0x00000000u;
|
|
/* 028ACB34 */ rbrew_write32(cpu->mem, _t27, cpu->r[4]);
|
|
/* 028ACB38 */ return;
|
|
}
|
|
|
|
// fn_028ACB3C @ 0x28acb3c
|
|
void Gambit_fn_028ACB3C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028ACB3C: ; // 0x28acb3c
|
|
/* 028ACB3C */ _t0 = cpu->r[3] + 0x00000044u;
|
|
/* 028ACB3C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028ACB40 */ _t1 = cpu->r[12] + 0x00000000u;
|
|
/* 028ACB40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028ACB44 */ cpu->r[7] = 0x00000000u;
|
|
/* 028ACB48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[0]);
|
|
/* 028ACB4C */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACB4C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028ACB4C */ if (_t3) goto L_028ACB50; else goto L_028ACB94;
|
|
L_028ACB50: ; // 0x28acb50
|
|
/* 028ACB50 */ cpu->r[5] = 0x00000000u;
|
|
L_028ACB54: ; // 0x28acb54
|
|
/* 028ACB54 */ _t4 = cpu->r[12] + 0x00000000u;
|
|
/* 028ACB54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028ACB58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 028ACB5C */ cpu->r[9] = 0x00000000u;
|
|
/* 028ACB60 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACB60 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028ACB60 */ if (_t6) goto L_028ACB64; else goto L_028ACB6C;
|
|
L_028ACB64: ; // 0x28acb64
|
|
/* 028ACB64 */ _t7 = cpu->r[12] + 0x00000004u;
|
|
/* 028ACB64 */ cpu->r[6] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028ACB68 */ cpu->r[9] = cpu->r[6] + cpu->r[5];
|
|
L_028ACB6C: ; // 0x28acb6c
|
|
/* 028ACB6C */ _t8 = cpu->r[9] + 0x00000000u;
|
|
/* 028ACB6C */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028ACB70 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[4]);
|
|
/* 028ACB74 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACB74 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028ACB74 */ if (_t10) goto L_028ACB78; else goto L_028ACB80;
|
|
L_028ACB78: ; // 0x28acb78
|
|
/* 028ACB78 */ _t11 = cpu->r[9] + 0x00000004u;
|
|
/* 028ACB78 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028ACB7C */ return;
|
|
L_028ACB80: ; // 0x28acb80
|
|
/* 028ACB80 */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 028ACB80 */ cpu->r[10] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028ACB84 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028ACB88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[10]);
|
|
/* 028ACB8C */ cpu->r[5] = cpu->r[5] + 0x00000008u;
|
|
/* 028ACB90 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACB90 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028ACB90 */ if (_t14) goto L_028ACB54; else goto L_028ACB94;
|
|
L_028ACB94: ; // 0x28acb94
|
|
/* 028ACB94 */ cpu->r[3] = 0x00000000u;
|
|
/* 028ACB98 */ return;
|
|
}
|
|
|
|
// fn_028ACB9C @ 0x28acb9c
|
|
void Gambit_fn_028ACB9C(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;
|
|
|
|
L_028ACB9C: ; // 0x28acb9c
|
|
/* 028ACB9C */ _t0 = cpu->r[1] + 0xFFFFFF70u;
|
|
/* 028ACB9C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ACB9C */ cpu->r[1] = _t0;
|
|
/* 028ACBA0 */ /* nop */
|
|
/* 028ACBA4 */ cpu->r[0] = cpu->lr;
|
|
/* 028ACBA8 */ _t1 = cpu->r[1] + 0x00000094u;
|
|
/* 028ACBA8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028ACBAC */ cpu->r[23] = cpu->r[3];
|
|
/* 028ACBB0 */ _t2 = cpu->r[23] + 0x00000020u;
|
|
/* 028ACBB0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028ACBB4 */ _t3 = cpu->r[3] + 0x0000003Cu;
|
|
/* 028ACBB4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ACBB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028ACBBC */ cpu->r[24] = cpu->r[4];
|
|
/* 028ACBC0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACBC0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028ACBC0 */ if (_t5) goto L_028ACBE0; else goto L_028ACBC4;
|
|
L_028ACBC4: ; // 0x28acbc4
|
|
/* 028ACBC4 */ cpu->r[4] = cpu->r[24];
|
|
/* 028ACBC8 */ Gambit_fn_028AB7FC(cpu);
|
|
/* 028ACBCC */ /* nop */
|
|
/* 028ACBD0 */ _t6 = cpu->r[1] + 0x00000094u;
|
|
/* 028ACBD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028ACBD4 */ cpu->lr = cpu->r[0];
|
|
/* 028ACBD8 */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028ACBDC */ return;
|
|
L_028ACBE0: ; // 0x28acbe0
|
|
/* 028ACBE0 */ _t7 = cpu->r[23] + 0x00000048u;
|
|
/* 028ACBE0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028ACBE4 */ cpu->r[28] = 0x00000000u;
|
|
/* 028ACBE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[7]);
|
|
/* 028ACBEC */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACBEC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028ACBEC */ if (_t9) goto L_028ACBF0; else goto L_028ACD78;
|
|
L_028ACBF0: ; // 0x28acbf0
|
|
/* 028ACBF0 */ cpu->r[31] = 0x10110000u;
|
|
/* 028ACBF4 */ cpu->r[25] = 0x00080000u;
|
|
/* 028ACBF8 */ cpu->r[30] = cpu->r[1] + 0x00000024u;
|
|
/* 028ACBFC */ _t10 = cpu->r[31] + 0x00007399u;
|
|
/* 028ACBFC */ cpu->r[31] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028ACC00 */ cpu->r[22] = 0x10130000u;
|
|
/* 028ACC04 */ cpu->r[21] = 0x10130000u;
|
|
/* 028ACC08 */ cpu->r[27] = 0x10130000u;
|
|
/* 028ACC0C */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028ACC10 */ cpu->r[26] = 0x00000040u;
|
|
/* 028ACC14 */ cpu->r[27] = cpu->r[27] + 0x00007FA4u;
|
|
/* 028ACC18 */ cpu->r[21] = cpu->r[21] + 0x00007FD4u;
|
|
/* 028ACC1C */ cpu->r[22] = cpu->r[22] + 0x00007FECu;
|
|
L_028ACC20: ; // 0x28acc20
|
|
/* 028ACC20 */ _t11 = cpu->r[23] + 0x00000024u;
|
|
/* 028ACC20 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028ACC24 */ _t12 = cpu->r[3] + 0x00000000u;
|
|
/* 028ACC24 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028ACC28 */ _t13 = cpu->r[8] + 0x00000014u;
|
|
/* 028ACC28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028ACC2C */ cpu->ctr = cpu->r[10];
|
|
/* 028ACC30 */ cpu->r[4] = cpu->r[28];
|
|
/* 028ACC34 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028ACC38 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028ACC38 */ rbrew_write32(cpu->mem, _t14, cpu->r[3]);
|
|
/* 028ACC3C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACC40 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028ACC40 */ rbrew_write32(cpu->mem, _t15, cpu->r[21]);
|
|
/* 028ACC44 */ _t16 = cpu->r[30] + 0x0000003Fu;
|
|
/* 028ACC44 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[31]);
|
|
/* 028ACC48 */ _t17 = cpu->r[1] + 0x00000020u;
|
|
/* 028ACC48 */ rbrew_write32(cpu->mem, _t17, cpu->r[26]);
|
|
/* 028ACC4C */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACC4C */ rbrew_write32(cpu->mem, _t18, cpu->r[27]);
|
|
/* 028ACC50 */ _t19 = cpu->r[1] + 0x00000018u;
|
|
/* 028ACC50 */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 028ACC54 */ Gambit_fn_028AD154(cpu);
|
|
/* 028ACC58 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028ACC58 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028ACC5C */ _t21 = cpu->r[12] + 0x00000000u;
|
|
/* 028ACC5C */ cpu->r[0] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028ACC60 */ cpu->r[4] = 0x00080000u;
|
|
/* 028ACC64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028ACC68 */ cpu->r[29] = 0x00000000u;
|
|
/* 028ACC6C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACC6C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028ACC6C */ if (_t23) goto L_028ACC94; else goto L_028ACC70;
|
|
L_028ACC70: ; // 0x28acc70
|
|
/* 028ACC70 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028ACC74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[4]);
|
|
/* 028ACC78 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028ACC7C */ _t24 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028ACC7C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028ACC7C */ if (_t25) goto L_028ACC90; else goto L_028ACC80;
|
|
L_028ACC80: ; // 0x28acc80
|
|
/* 028ACC80 */ _t26 = cpu->r[12] + 0x00000000u;
|
|
/* 028ACC80 */ cpu->r[5] = rbrew_read8(cpu->mem, _t26);
|
|
/* 028ACC84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[31]);
|
|
/* 028ACC88 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACC88 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028ACC88 */ if (_t28) goto L_028ACC8C; else goto L_028ACC70;
|
|
L_028ACC8C: ; // 0x28acc8c
|
|
/* 028ACC8C */ goto L_028ACC94;
|
|
L_028ACC90: ; // 0x28acc90
|
|
/* 028ACC90 */ cpu->r[29] = 0x00000000u;
|
|
L_028ACC94: ; // 0x28acc94
|
|
/* 028ACC94 */ _t29 = cpu->r[1] + 0x00000020u;
|
|
/* 028ACC94 */ cpu->r[9] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028ACC98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[9]);
|
|
/* 028ACC9C */ _t30 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACC9C */ _t31 = _t30 & 0x00000001u;
|
|
/* 028ACC9C */ if (_t31) goto L_028ACCA4; else goto L_028ACCA0;
|
|
L_028ACCA0: ; // 0x28acca0
|
|
/* 028ACCA0 */ cpu->r[29] = cpu->r[9] + 0xFFFFFFFFu;
|
|
L_028ACCA4: ; // 0x28acca4
|
|
/* 028ACCA4 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACCA4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028ACCA8 */ _t33 = cpu->r[6] + 0x00000014u;
|
|
/* 028ACCA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028ACCAC */ cpu->ctr = cpu->r[0];
|
|
/* 028ACCB0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACCB4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028ACCB8 */ _t34 = cpu->r[1] + 0x00000008u;
|
|
/* 028ACCB8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028ACCBC */ cpu->r[6] = 0x00000000u;
|
|
/* 028ACCC0 */ cpu->r[5] = cpu->r[29];
|
|
/* 028ACCC4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028ACCC8 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028ACCCC */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 028ACCCC */ rbrew_write32(cpu->mem, _t35, cpu->r[24]);
|
|
/* 028ACCD0 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028ACCD4 */ _t36 = cpu->r[30] + cpu->r[29];
|
|
/* 028ACCD4 */ rbrew_write8(cpu->mem, _t36, (uint8_t)cpu->r[31]);
|
|
/* 028ACCD8 */ _t37 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACCD8 */ rbrew_write32(cpu->mem, _t37, cpu->r[27]);
|
|
/* 028ACCDC */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028ACCDC */ rbrew_write32(cpu->mem, _t38, cpu->r[22]);
|
|
/* 028ACCE0 */ Gambit_fn_028AD16C(cpu);
|
|
/* 028ACCE4 */ _t39 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028ACCE4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028ACCE8 */ _t40 = cpu->r[8] + 0x00000014u;
|
|
/* 028ACCE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028ACCEC */ cpu->ctr = cpu->r[0];
|
|
/* 028ACCF0 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 028ACCF4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028ACCF8 */ _t41 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACCF8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028ACCFC */ _t42 = cpu->r[11] + 0x00000014u;
|
|
/* 028ACCFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028ACD00 */ cpu->ctr = cpu->r[10];
|
|
/* 028ACD04 */ _t43 = cpu->r[1] + 0x00000018u;
|
|
/* 028ACD04 */ cpu->r[29] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028ACD08 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028ACD0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028ACD10 */ _t44 = cpu->r[1] + 0x00000010u;
|
|
/* 028ACD10 */ cpu->r[11] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028ACD14 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[11]);
|
|
/* 028ACD18 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACD18 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028ACD18 */ if (_t46) goto L_028ACD50; else goto L_028ACD1C;
|
|
L_028ACD1C: ; // 0x28acd1c
|
|
/* 028ACD1C */ _t47 = cpu->r[1] + 0x00000010u;
|
|
/* 028ACD1C */ cpu->r[11] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028ACD20 */ cpu->ctr = cpu->r[25];
|
|
/* 028ACD24 */ _t48 = cpu->r[1] + 0x00000018u;
|
|
/* 028ACD24 */ cpu->r[9] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028ACD28 */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFFu;
|
|
L_028ACD2C: ; // 0x28acd2c
|
|
/* 028ACD2C */ _t49 = cpu->r[9] + 0x00000000u;
|
|
/* 028ACD2C */ cpu->r[4] = rbrew_read8(cpu->mem, _t49);
|
|
/* 028ACD30 */ _t50 = cpu->r[11] + 0x00000001u;
|
|
/* 028ACD30 */ cpu->r[0] = rbrew_read8(cpu->mem, _t50);
|
|
/* 028ACD30 */ cpu->r[11] = _t50;
|
|
/* 028ACD34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 028ACD38 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACD38 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028ACD38 */ if (_t52) goto L_028ACD3C; else goto L_028ACD68;
|
|
L_028ACD3C: ; // 0x28acd3c
|
|
/* 028ACD3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[31]);
|
|
/* 028ACD40 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACD40 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028ACD40 */ if (_t54) goto L_028ACD50; else goto L_028ACD44;
|
|
L_028ACD44: ; // 0x28acd44
|
|
/* 028ACD44 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028ACD48 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028ACD48 */ _t55 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028ACD48 */ _t56 = _t55 >> (0x00000002u & 31u);
|
|
/* 028ACD48 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028ACD48 */ if (_t57) goto L_028ACD2C; else goto L_028ACD4C;
|
|
L_028ACD4C: ; // 0x28acd4c
|
|
/* 028ACD4C */ goto L_028ACD68;
|
|
L_028ACD50: ; // 0x28acd50
|
|
/* 028ACD50 */ cpu->r[3] = cpu->r[28];
|
|
/* 028ACD54 */ /* nop */
|
|
/* 028ACD58 */ _t58 = cpu->r[1] + 0x00000094u;
|
|
/* 028ACD58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028ACD5C */ cpu->lr = cpu->r[0];
|
|
/* 028ACD60 */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028ACD64 */ return;
|
|
L_028ACD68: ; // 0x28acd68
|
|
/* 028ACD68 */ _t59 = cpu->r[23] + 0x00000048u;
|
|
/* 028ACD68 */ cpu->r[5] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028ACD6C */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028ACD70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[5]);
|
|
/* 028ACD74 */ _t60 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ACD74 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028ACD74 */ if (_t61) goto L_028ACC20; else goto L_028ACD78;
|
|
L_028ACD78: ; // 0x28acd78
|
|
/* 028ACD78 */ /* nop */
|
|
/* 028ACD7C */ _t62 = cpu->r[1] + 0x00000094u;
|
|
/* 028ACD7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028ACD80 */ cpu->lr = cpu->r[0];
|
|
/* 028ACD84 */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 028ACD88 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028ACD8C */ return;
|
|
}
|
|
|
|
// fn_028ACD90 @ 0x28acd90
|
|
void Gambit_fn_028ACD90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028ACD90: ; // 0x28acd90
|
|
/* 028ACD90 */ cpu->r[0] = cpu->lr;
|
|
/* 028ACD94 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028ACD94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ACD94 */ cpu->r[1] = _t0;
|
|
/* 028ACD98 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACD98 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028ACD9C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACD9C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028ACDA0 */ _t3 = cpu->r[3] + 0x00000020u;
|
|
/* 028ACDA0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ACDA4 */ _t4 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028ACDA4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028ACDA8 */ _t5 = cpu->r[3] + 0x00000060u;
|
|
/* 028ACDA8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028ACDAC */ _t6 = cpu->r[12] + 0x00000014u;
|
|
/* 028ACDAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028ACDB0 */ cpu->ctr = cpu->r[0];
|
|
/* 028ACDB4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028ACDB8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028ACDBC */ cpu->r[4] = cpu->r[31];
|
|
/* 028ACDC0 */ Gambit_fn_028A7D2C(cpu);
|
|
/* 028ACDC4 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACDC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028ACDC8 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACDC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028ACDCC */ cpu->lr = cpu->r[0];
|
|
/* 028ACDD0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028ACDD4 */ return;
|
|
}
|
|
|
|
// fn_028ACD94 @ 0x28acd94
|
|
void Gambit_fn_028ACD94(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028ACD94: ; // 0x28acd94
|
|
/* 028ACD94 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028ACD94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ACD94 */ cpu->r[1] = _t0;
|
|
/* 028ACD98 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACD98 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028ACD9C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACD9C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028ACDA0 */ _t3 = cpu->r[3] + 0x00000020u;
|
|
/* 028ACDA0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ACDA4 */ _t4 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028ACDA4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028ACDA8 */ _t5 = cpu->r[3] + 0x00000060u;
|
|
/* 028ACDA8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028ACDAC */ _t6 = cpu->r[12] + 0x00000014u;
|
|
/* 028ACDAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028ACDB0 */ cpu->ctr = cpu->r[0];
|
|
/* 028ACDB4 */ cpu->r[31] = cpu->r[4];
|
|
/* 028ACDB8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028ACDBC */ cpu->r[4] = cpu->r[31];
|
|
/* 028ACDC0 */ Gambit_fn_028A7D2C(cpu);
|
|
/* 028ACDC4 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACDC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028ACDC8 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACDC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028ACDCC */ cpu->lr = cpu->r[0];
|
|
/* 028ACDD0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028ACDD4 */ return;
|
|
}
|
|
|
|
// fn_028ACDD8 @ 0x28acdd8
|
|
void Gambit_fn_028ACDD8(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;
|
|
|
|
L_028ACDD8: ; // 0x28acdd8
|
|
/* 028ACDD8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028ACDD8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ACDD8 */ cpu->r[1] = _t0;
|
|
/* 028ACDDC */ cpu->r[0] = cpu->lr;
|
|
/* 028ACDE0 */ /* nop */
|
|
/* 028ACDE4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028ACDE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028ACDE8 */ cpu->r[26] = cpu->r[4];
|
|
/* 028ACDEC */ cpu->r[25] = cpu->r[5];
|
|
/* 028ACDF0 */ cpu->r[27] = cpu->r[7];
|
|
/* 028ACDF4 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028ACDF4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028ACDF8 */ cpu->r[29] = cpu->r[6];
|
|
/* 028ACDFC */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACDFC */ _t3 = _t2 & 0x00000001u;
|
|
/* 028ACDFC */ if (_t3) goto L_028ACE00; else goto L_028ACE10;
|
|
L_028ACE00: ; // 0x28ace00
|
|
/* 028ACE00 */ cpu->r[3] = 0x00000060u;
|
|
/* 028ACE04 */ Gambit_fn_02801A78(cpu);
|
|
/* 028ACE08 */ cpu->r[30] = cpu->r[3];
|
|
/* 028ACE08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028ACE0C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACE0C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028ACE0C */ if (_t5) goto L_028ACFDC; else goto L_028ACE10;
|
|
L_028ACE10: ; // 0x28ace10
|
|
/* 028ACE10 */ cpu->r[28] = 0x00000000u;
|
|
/* 028ACE14 */ cpu->r[8] = 0x10140000u;
|
|
/* 028ACE18 */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 028ACE18 */ rbrew_write32(cpu->mem, _t6, cpu->r[28]);
|
|
/* 028ACE1C */ cpu->r[8] = cpu->r[8] + 0xFFFF8178u;
|
|
/* 028ACE20 */ _t7 = cpu->r[30] + 0x00000004u;
|
|
/* 028ACE20 */ rbrew_write32(cpu->mem, _t7, cpu->r[28]);
|
|
/* 028ACE24 */ cpu->r[31] = cpu->r[30] + 0x00000008u;
|
|
/* 028ACE24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028ACE28 */ _t8 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028ACE28 */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 028ACE2C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACE2C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028ACE2C */ if (_t10) goto L_028ACE30; else goto L_028ACE40;
|
|
L_028ACE30: ; // 0x28ace30
|
|
/* 028ACE30 */ cpu->r[3] = 0x00000010u;
|
|
/* 028ACE34 */ Gambit_fn_02801A78(cpu);
|
|
/* 028ACE38 */ cpu->r[31] = cpu->r[3];
|
|
/* 028ACE38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028ACE3C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACE3C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028ACE3C */ if (_t12) goto L_028ACE6C; else goto L_028ACE40;
|
|
L_028ACE40: ; // 0x28ace40
|
|
/* 028ACE40 */ cpu->r[3] = cpu->r[31];
|
|
/* 028ACE40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACE44 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACE44 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028ACE44 */ if (_t14) goto L_028ACE48; else goto L_028ACE58;
|
|
L_028ACE48: ; // 0x28ace48
|
|
/* 028ACE48 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028ACE4C */ Gambit_fn_02801A78(cpu);
|
|
/* 028ACE50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACE54 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACE54 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028ACE54 */ if (_t16) goto L_028ACE64; else goto L_028ACE58;
|
|
L_028ACE58: ; // 0x28ace58
|
|
/* 028ACE58 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028ACE58 */ rbrew_write32(cpu->mem, _t17, cpu->r[3]);
|
|
/* 028ACE5C */ _t18 = cpu->r[3] + 0x00000008u;
|
|
/* 028ACE5C */ rbrew_write32(cpu->mem, _t18, cpu->r[28]);
|
|
/* 028ACE60 */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028ACE60 */ rbrew_write32(cpu->mem, _t19, cpu->r[3]);
|
|
L_028ACE64: ; // 0x28ace64
|
|
/* 028ACE64 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 028ACE68 */ _t20 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028ACE68 */ rbrew_write32(cpu->mem, _t20, cpu->r[10]);
|
|
L_028ACE6C: ; // 0x28ace6c
|
|
/* 028ACE6C */ _t21 = cpu->r[30] + 0x00000020u;
|
|
/* 028ACE6C */ rbrew_write32(cpu->mem, _t21, cpu->r[29]);
|
|
/* 028ACE70 */ cpu->r[11] = 0x00000001u;
|
|
/* 028ACE74 */ _t22 = cpu->r[30] + 0x00000018u;
|
|
/* 028ACE74 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[28]);
|
|
/* 028ACE78 */ _t23 = cpu->r[30] + 0x00000019u;
|
|
/* 028ACE78 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[11]);
|
|
/* 028ACE7C */ _t24 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028ACE7C */ rbrew_write32(cpu->mem, _t24, cpu->r[25]);
|
|
/* 028ACE80 */ _t25 = cpu->r[26] + 0x00000004u;
|
|
/* 028ACE80 */ cpu->r[12] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028ACE84 */ _t26 = cpu->r[30] + 0x00000024u;
|
|
/* 028ACE84 */ rbrew_write32(cpu->mem, _t26, cpu->r[12]);
|
|
/* 028ACE88 */ _t27 = cpu->r[26] + 0x00000008u;
|
|
/* 028ACE88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028ACE8C */ _t28 = cpu->r[30] + 0x00000038u;
|
|
/* 028ACE8C */ rbrew_write32(cpu->mem, _t28, cpu->r[28]);
|
|
/* 028ACE90 */ _t29 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028ACE90 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028ACE94 */ _t30 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028ACE94 */ rbrew_write32(cpu->mem, _t30, cpu->r[28]);
|
|
/* 028ACE98 */ _t31 = cpu->r[30] + 0x00000040u;
|
|
/* 028ACE98 */ rbrew_write32(cpu->mem, _t31, cpu->r[28]);
|
|
/* 028ACE9C */ _t32 = cpu->r[30] + 0x00000048u;
|
|
/* 028ACE9C */ rbrew_write32(cpu->mem, _t32, cpu->r[28]);
|
|
/* 028ACEA0 */ _t33 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028ACEA0 */ rbrew_write32(cpu->mem, _t33, cpu->r[28]);
|
|
/* 028ACEA4 */ _t34 = cpu->r[30] + 0x00000050u;
|
|
/* 028ACEA4 */ rbrew_write32(cpu->mem, _t34, cpu->r[28]);
|
|
/* 028ACEA8 */ _t35 = cpu->r[30] + 0x00000054u;
|
|
/* 028ACEA8 */ rbrew_write32(cpu->mem, _t35, cpu->r[28]);
|
|
/* 028ACEAC */ cpu->r[5] = 0x00000004u;
|
|
/* 028ACEB0 */ _t36 = cpu->r[30] + 0x00000058u;
|
|
/* 028ACEB0 */ rbrew_write32(cpu->mem, _t36, cpu->r[28]);
|
|
/* 028ACEB4 */ _t37 = cpu->r[30] + 0x00000014u;
|
|
/* 028ACEB4 */ rbrew_write32(cpu->mem, _t37, cpu->r[5]);
|
|
/* 028ACEB8 */ _t38 = cpu->r[26] + 0x00000008u;
|
|
/* 028ACEB8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028ACEBC */ cpu->r[7] = 0x101F0000u;
|
|
/* 028ACEC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028ACEC4 */ cpu->r[7] = cpu->r[7] + 0x00005E30u;
|
|
/* 028ACEC8 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACEC8 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028ACEC8 */ if (_t40) goto L_028ACED0; else goto L_028ACECC;
|
|
L_028ACECC: ; // 0x28acecc
|
|
/* 028ACECC */ cpu->r[7] = cpu->r[10];
|
|
L_028ACED0: ; // 0x28aced0
|
|
/* 028ACED0 */ _t41 = cpu->r[30] + 0x00000028u;
|
|
/* 028ACED0 */ rbrew_write32(cpu->mem, _t41, cpu->r[7]);
|
|
/* 028ACED4 */ _t42 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028ACED4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028ACED8 */ _t43 = cpu->r[30] + 0x00000030u;
|
|
/* 028ACED8 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 028ACEDC */ _t44 = cpu->r[26] + 0x00000010u;
|
|
/* 028ACEDC */ cpu->r[12] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028ACEE0 */ cpu->r[9] = 0x101F0000u;
|
|
/* 028ACEE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028ACEE8 */ cpu->r[9] = cpu->r[9] + 0x00006368u;
|
|
/* 028ACEEC */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACEEC */ _t46 = _t45 & 0x00000001u;
|
|
/* 028ACEEC */ if (_t46) goto L_028ACEF4; else goto L_028ACEF0;
|
|
L_028ACEF0: ; // 0x28acef0
|
|
/* 028ACEF0 */ cpu->r[9] = cpu->r[12];
|
|
L_028ACEF4: ; // 0x28acef4
|
|
/* 028ACEF4 */ _t47 = cpu->r[30] + 0x00000034u;
|
|
/* 028ACEF4 */ rbrew_write32(cpu->mem, _t47, cpu->r[9]);
|
|
/* 028ACEF8 */ _t48 = cpu->r[26] + 0x00000014u;
|
|
/* 028ACEF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028ACEFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ACF00 */ _t49 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028ACF00 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028ACF00 */ if (_t50) goto L_028ACF04; else goto L_028ACF08;
|
|
L_028ACF04: ; // 0x28acf04
|
|
/* 028ACF04 */ _t51 = cpu->r[30] + 0x00000048u;
|
|
/* 028ACF04 */ rbrew_write32(cpu->mem, _t51, cpu->r[0]);
|
|
L_028ACF08: ; // 0x28acf08
|
|
/* 028ACF08 */ _t52 = cpu->r[26] + 0x00000018u;
|
|
/* 028ACF08 */ cpu->r[31] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028ACF0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028ACF10 */ _t53 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028ACF10 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028ACF10 */ if (_t54) goto L_028ACF14; else goto L_028ACF78;
|
|
L_028ACF14: ; // 0x28acf14
|
|
/* 028ACF14 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028ACF18 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 028ACF1C */ _t55 = cpu->r[29] + 0xFFFFC3D4u;
|
|
/* 028ACF1C */ cpu->r[8] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028ACF1C */ cpu->r[29] = _t55;
|
|
/* 028ACF20 */ cpu->r[5] = 0x00000004u;
|
|
/* 028ACF24 */ cpu->r[4] = cpu->r[27];
|
|
/* 028ACF28 */ cpu->r[3] = cpu->r[7] + cpu->r[8];
|
|
/* 028ACF2C */ Gambit_fn_02801ADC(cpu);
|
|
/* 028ACF30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACF34 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACF34 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028ACF34 */ if (_t57) goto L_028ACF68; else goto L_028ACF38;
|
|
L_028ACF38: ; // 0x28acf38
|
|
/* 028ACF38 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028ACF3C */ _t58 = cpu->r[29] + 0x00000000u;
|
|
/* 028ACF3C */ cpu->r[9] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028ACF40 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028ACF44 */ cpu->r[6] = cpu->r[6] + 0xFFFFD188u;
|
|
/* 028ACF48 */ cpu->r[4] = cpu->r[31];
|
|
/* 028ACF4C */ cpu->r[3] = cpu->r[3] + cpu->r[9];
|
|
/* 028ACF50 */ cpu->r[7] = 0x00000000u;
|
|
/* 028ACF54 */ Gambit_fn_02C82DBC(cpu);
|
|
/* 028ACF58 */ _t59 = cpu->r[30] + 0x00000050u;
|
|
/* 028ACF58 */ rbrew_write32(cpu->mem, _t59, cpu->r[3]);
|
|
/* 028ACF5C */ _t60 = cpu->r[26] + 0x00000018u;
|
|
/* 028ACF5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028ACF60 */ _t61 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028ACF60 */ rbrew_write32(cpu->mem, _t61, cpu->r[11]);
|
|
/* 028ACF64 */ goto L_028ACF78;
|
|
L_028ACF68: ; // 0x28acf68
|
|
/* 028ACF68 */ cpu->r[3] = 0x00000000u;
|
|
/* 028ACF6C */ _t62 = cpu->r[30] + 0x00000050u;
|
|
/* 028ACF6C */ rbrew_write32(cpu->mem, _t62, cpu->r[3]);
|
|
/* 028ACF70 */ _t63 = cpu->r[26] + 0x00000018u;
|
|
/* 028ACF70 */ cpu->r[11] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028ACF74 */ _t64 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028ACF74 */ rbrew_write32(cpu->mem, _t64, cpu->r[11]);
|
|
L_028ACF78: ; // 0x28acf78
|
|
/* 028ACF78 */ cpu->r[4] = cpu->r[27];
|
|
/* 028ACF7C */ cpu->r[3] = 0x0000002Cu;
|
|
/* 028ACF80 */ cpu->r[5] = 0x00000004u;
|
|
/* 028ACF84 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028ACF88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACF8C */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACF8C */ _t66 = _t65 & 0x00000001u;
|
|
/* 028ACF8C */ if (_t66) goto L_028ACF98; else goto L_028ACF90;
|
|
L_028ACF90: ; // 0x28acf90
|
|
/* 028ACF90 */ cpu->r[4] = cpu->r[30];
|
|
/* 028ACF94 */ Gambit_fn_028AA7F0(cpu);
|
|
L_028ACF98: ; // 0x28acf98
|
|
/* 028ACF98 */ _t67 = cpu->r[30] + 0x00000054u;
|
|
/* 028ACF98 */ rbrew_write32(cpu->mem, _t67, cpu->r[3]);
|
|
/* 028ACF9C */ _t68 = cpu->r[26] + 0x00000014u;
|
|
/* 028ACF9C */ cpu->r[4] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028ACFA0 */ cpu->r[6] = cpu->r[27];
|
|
/* 028ACFA4 */ _t69 = cpu->r[26] + 0x00000018u;
|
|
/* 028ACFA4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028ACFA8 */ Gambit_fn_028AA86C(cpu);
|
|
/* 028ACFAC */ cpu->r[4] = cpu->r[27];
|
|
/* 028ACFB0 */ cpu->r[3] = 0x00000008u;
|
|
/* 028ACFB4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028ACFB8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028ACFBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACFC0 */ _t70 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACFC0 */ _t71 = _t70 & 0x00000001u;
|
|
/* 028ACFC0 */ if (_t71) goto L_028ACFD4; else goto L_028ACFC4;
|
|
L_028ACFC4: ; // 0x28acfc4
|
|
/* 028ACFC4 */ _t72 = cpu->r[3] + 0x00000004u;
|
|
/* 028ACFC4 */ rbrew_write32(cpu->mem, _t72, cpu->r[28]);
|
|
/* 028ACFC8 */ _t73 = cpu->r[3] + 0x00000000u;
|
|
/* 028ACFC8 */ rbrew_write32(cpu->mem, _t73, cpu->r[28]);
|
|
/* 028ACFCC */ _t74 = cpu->r[30] + 0x00000044u;
|
|
/* 028ACFCC */ rbrew_write32(cpu->mem, _t74, cpu->r[3]);
|
|
/* 028ACFD0 */ goto L_028ACFDC;
|
|
L_028ACFD4: ; // 0x28acfd4
|
|
/* 028ACFD4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028ACFD8 */ _t75 = cpu->r[30] + 0x00000044u;
|
|
/* 028ACFD8 */ rbrew_write32(cpu->mem, _t75, cpu->r[3]);
|
|
L_028ACFDC: ; // 0x28acfdc
|
|
/* 028ACFDC */ cpu->r[3] = cpu->r[30];
|
|
/* 028ACFE0 */ /* nop */
|
|
/* 028ACFE4 */ _t76 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028ACFE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028ACFE8 */ cpu->lr = cpu->r[0];
|
|
/* 028ACFEC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028ACFF0 */ return;
|
|
}
|
|
|
|
// fn_028ACFF4 @ 0x28acff4
|
|
void Gambit_fn_028ACFF4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028ACFF4: ; // 0x28acff4
|
|
/* 028ACFF4 */ cpu->r[0] = cpu->lr;
|
|
/* 028ACFF8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028ACFF8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ACFF8 */ cpu->r[1] = _t0;
|
|
/* 028ACFFC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACFFC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AD000 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AD004 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD004 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028AD008 */ _t3 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028AD008 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028AD00C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD010 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD010 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028AD010 */ if (_t5) goto L_028AD03C; else goto L_028AD014;
|
|
L_028AD014: ; // 0x28ad014
|
|
/* 028AD014 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028AD018 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028AD01C */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028AD020 */ cpu->r[6] = cpu->r[6] + 0xFFFFD1CCu;
|
|
/* 028AD024 */ cpu->r[7] = 0x00000001u;
|
|
/* 028AD028 */ cpu->r[8] = 0x00000000u;
|
|
/* 028AD02C */ Gambit_fn_02C82F38(cpu);
|
|
/* 028AD030 */ cpu->r[12] = 0x00000000u;
|
|
/* 028AD034 */ _t6 = cpu->r[31] + 0x00000040u;
|
|
/* 028AD034 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028AD038 */ _t7 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028AD038 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
L_028AD03C: ; // 0x28ad03c
|
|
/* 028AD03C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD03C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AD040 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD040 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AD044 */ cpu->lr = cpu->r[0];
|
|
/* 028AD048 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AD04C */ return;
|
|
}
|
|
|
|
// fn_028ACFF8 @ 0x28acff8
|
|
void Gambit_fn_028ACFF8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028ACFF8: ; // 0x28acff8
|
|
/* 028ACFF8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028ACFF8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ACFF8 */ cpu->r[1] = _t0;
|
|
/* 028ACFFC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACFFC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AD000 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AD004 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD004 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028AD008 */ _t3 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028AD008 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028AD00C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD010 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD010 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028AD010 */ if (_t5) goto L_028AD03C; else goto L_028AD014;
|
|
L_028AD014: ; // 0x28ad014
|
|
/* 028AD014 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028AD018 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028AD01C */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028AD020 */ cpu->r[6] = cpu->r[6] + 0xFFFFD1CCu;
|
|
/* 028AD024 */ cpu->r[7] = 0x00000001u;
|
|
/* 028AD028 */ cpu->r[8] = 0x00000000u;
|
|
/* 028AD02C */ Gambit_fn_02C82F38(cpu);
|
|
/* 028AD030 */ cpu->r[12] = 0x00000000u;
|
|
/* 028AD034 */ _t6 = cpu->r[31] + 0x00000040u;
|
|
/* 028AD034 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028AD038 */ _t7 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028AD038 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
L_028AD03C: ; // 0x28ad03c
|
|
/* 028AD03C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD03C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AD040 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD040 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AD044 */ cpu->lr = cpu->r[0];
|
|
/* 028AD048 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AD04C */ return;
|
|
}
|
|
|
|
// fn_028AD050 @ 0x28ad050
|
|
void Gambit_fn_028AD050(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028AD050: ; // 0x28ad050
|
|
/* 028AD050 */ cpu->r[0] = cpu->lr;
|
|
/* 028AD054 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AD054 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD054 */ cpu->r[1] = _t0;
|
|
/* 028AD058 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028AD058 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AD05C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD05C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AD060 */ cpu->r[31] = cpu->r[5];
|
|
/* 028AD064 */ cpu->r[30] = cpu->r[4];
|
|
/* 028AD068 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD06C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD06C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AD070 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD070 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028AD070 */ if (_t5) goto L_028AD074; else goto L_028AD084;
|
|
L_028AD074: ; // 0x28ad074
|
|
/* 028AD074 */ cpu->r[3] = 0x00000020u;
|
|
/* 028AD078 */ Gambit_fn_02801A78(cpu);
|
|
/* 028AD07C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD080 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD080 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AD080 */ if (_t7) goto L_028AD0A8; else goto L_028AD084;
|
|
L_028AD084: ; // 0x28ad084
|
|
/* 028AD084 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD084 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028AD088 */ cpu->r[11] = 0x00000000u;
|
|
/* 028AD08C */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD08C */ rbrew_write32(cpu->mem, _t9, cpu->r[31]);
|
|
/* 028AD090 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AD090 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 028AD094 */ _t11 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028AD094 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
/* 028AD098 */ _t12 = cpu->r[3] + 0x00000014u;
|
|
/* 028AD098 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028AD09C */ _t13 = cpu->r[3] + 0x00000018u;
|
|
/* 028AD09C */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028AD0A0 */ _t14 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD0A0 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028AD0A4 */ _t15 = cpu->r[3] + 0x00000010u;
|
|
/* 028AD0A4 */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
L_028AD0A8: ; // 0x28ad0a8
|
|
/* 028AD0A8 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD0A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AD0AC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028AD0AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AD0B0 */ cpu->lr = cpu->r[0];
|
|
/* 028AD0B4 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD0B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AD0B8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AD0BC */ return;
|
|
}
|
|
|
|
// fn_028AD054 @ 0x28ad054
|
|
void Gambit_fn_028AD054(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028AD054: ; // 0x28ad054
|
|
/* 028AD054 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AD054 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD054 */ cpu->r[1] = _t0;
|
|
/* 028AD058 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028AD058 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AD05C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD05C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AD060 */ cpu->r[31] = cpu->r[5];
|
|
/* 028AD064 */ cpu->r[30] = cpu->r[4];
|
|
/* 028AD068 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD06C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD06C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AD070 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD070 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028AD070 */ if (_t5) goto L_028AD074; else goto L_028AD084;
|
|
L_028AD074: ; // 0x28ad074
|
|
/* 028AD074 */ cpu->r[3] = 0x00000020u;
|
|
/* 028AD078 */ Gambit_fn_02801A78(cpu);
|
|
/* 028AD07C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD080 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD080 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AD080 */ if (_t7) goto L_028AD0A8; else goto L_028AD084;
|
|
L_028AD084: ; // 0x28ad084
|
|
/* 028AD084 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD084 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028AD088 */ cpu->r[11] = 0x00000000u;
|
|
/* 028AD08C */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD08C */ rbrew_write32(cpu->mem, _t9, cpu->r[31]);
|
|
/* 028AD090 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AD090 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 028AD094 */ _t11 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028AD094 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
/* 028AD098 */ _t12 = cpu->r[3] + 0x00000014u;
|
|
/* 028AD098 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028AD09C */ _t13 = cpu->r[3] + 0x00000018u;
|
|
/* 028AD09C */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028AD0A0 */ _t14 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD0A0 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028AD0A4 */ _t15 = cpu->r[3] + 0x00000010u;
|
|
/* 028AD0A4 */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
L_028AD0A8: ; // 0x28ad0a8
|
|
/* 028AD0A8 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD0A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AD0AC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028AD0AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AD0B0 */ cpu->lr = cpu->r[0];
|
|
/* 028AD0B4 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD0B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AD0B8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AD0BC */ return;
|
|
}
|
|
|
|
// fn_028AD0C0 @ 0x28ad0c0
|
|
void Gambit_fn_028AD0C0(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_028AD0C0: ; // 0x28ad0c0
|
|
/* 028AD0C0 */ cpu->r[0] = cpu->lr;
|
|
/* 028AD0C4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AD0C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD0C4 */ cpu->r[1] = _t0;
|
|
/* 028AD0C8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD0C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AD0CC */ cpu->r[31] = cpu->r[4];
|
|
/* 028AD0D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD0D4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD0D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028AD0D8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD0D8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AD0D8 */ if (_t4) goto L_028AD0DC; else goto L_028AD0EC;
|
|
L_028AD0DC: ; // 0x28ad0dc
|
|
/* 028AD0DC */ cpu->r[3] = 0x00000020u;
|
|
/* 028AD0E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028AD0E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD0E8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD0E8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028AD0E8 */ if (_t6) goto L_028AD12C; else goto L_028AD0EC;
|
|
L_028AD0EC: ; // 0x28ad0ec
|
|
/* 028AD0EC */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028AD0EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AD0F0 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD0F0 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028AD0F4 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 028AD0F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AD0F8 */ _t10 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD0F8 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028AD0FC */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028AD0FC */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AD100 */ _t12 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD100 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028AD104 */ _t13 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AD104 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028AD108 */ _t14 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AD108 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028AD10C */ _t15 = cpu->r[31] + 0x00000010u;
|
|
/* 028AD10C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AD110 */ _t16 = cpu->r[3] + 0x00000010u;
|
|
/* 028AD110 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028AD114 */ _t17 = cpu->r[31] + 0x00000014u;
|
|
/* 028AD114 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AD118 */ _t18 = cpu->r[3] + 0x00000014u;
|
|
/* 028AD118 */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 028AD11C */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028AD11C */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AD120 */ _t20 = cpu->r[3] + 0x00000018u;
|
|
/* 028AD120 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028AD124 */ _t21 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028AD124 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AD128 */ _t22 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028AD128 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
L_028AD12C: ; // 0x28ad12c
|
|
/* 028AD12C */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD12C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AD130 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD130 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AD134 */ cpu->lr = cpu->r[0];
|
|
/* 028AD138 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AD13C */ return;
|
|
}
|
|
|
|
// fn_028AD0C4 @ 0x28ad0c4
|
|
void Gambit_fn_028AD0C4(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_028AD0C4: ; // 0x28ad0c4
|
|
/* 028AD0C4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AD0C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD0C4 */ cpu->r[1] = _t0;
|
|
/* 028AD0C8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD0C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AD0CC */ cpu->r[31] = cpu->r[4];
|
|
/* 028AD0D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD0D4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD0D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028AD0D8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD0D8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AD0D8 */ if (_t4) goto L_028AD0DC; else goto L_028AD0EC;
|
|
L_028AD0DC: ; // 0x28ad0dc
|
|
/* 028AD0DC */ cpu->r[3] = 0x00000020u;
|
|
/* 028AD0E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028AD0E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD0E8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD0E8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028AD0E8 */ if (_t6) goto L_028AD12C; else goto L_028AD0EC;
|
|
L_028AD0EC: ; // 0x28ad0ec
|
|
/* 028AD0EC */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028AD0EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AD0F0 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD0F0 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028AD0F4 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 028AD0F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AD0F8 */ _t10 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD0F8 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028AD0FC */ _t11 = cpu->r[31] + 0x00000008u;
|
|
/* 028AD0FC */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AD100 */ _t12 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD100 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028AD104 */ _t13 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AD104 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028AD108 */ _t14 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AD108 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
/* 028AD10C */ _t15 = cpu->r[31] + 0x00000010u;
|
|
/* 028AD10C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AD110 */ _t16 = cpu->r[3] + 0x00000010u;
|
|
/* 028AD110 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028AD114 */ _t17 = cpu->r[31] + 0x00000014u;
|
|
/* 028AD114 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AD118 */ _t18 = cpu->r[3] + 0x00000014u;
|
|
/* 028AD118 */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 028AD11C */ _t19 = cpu->r[31] + 0x00000018u;
|
|
/* 028AD11C */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AD120 */ _t20 = cpu->r[3] + 0x00000018u;
|
|
/* 028AD120 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028AD124 */ _t21 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028AD124 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AD128 */ _t22 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028AD128 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
L_028AD12C: ; // 0x28ad12c
|
|
/* 028AD12C */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD12C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AD130 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD130 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AD134 */ cpu->lr = cpu->r[0];
|
|
/* 028AD138 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AD13C */ return;
|
|
}
|
|
|
|
// fn_028AD140 @ 0x28ad140
|
|
void Gambit_fn_028AD140(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_028AD140: ; // 0x28ad140
|
|
/* 028AD140 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD144 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD144 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AD144 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD144 */ goto L_028AD148;
|
|
L_028AD148: ; // 0x28ad148
|
|
/* 028AD148 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD148 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AD14C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD14C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AD14C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD14C */ goto L_028AD150;
|
|
L_028AD150: ; // 0x28ad150
|
|
/* 028AD150 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028AD154 @ 0x28ad154
|
|
void Gambit_fn_028AD154(CPUState* cpu) {
|
|
L_028AD154: ; // 0x28ad154
|
|
/* 028AD154 */ return;
|
|
}
|
|
|
|
// fn_028AD158 @ 0x28ad158
|
|
void Gambit_fn_028AD158(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_028AD158: ; // 0x28ad158
|
|
/* 028AD158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD15C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD15C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AD15C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD15C */ goto L_028AD160;
|
|
L_028AD160: ; // 0x28ad160
|
|
/* 028AD160 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD160 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AD164 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD164 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AD164 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD164 */ goto L_028AD168;
|
|
L_028AD168: ; // 0x28ad168
|
|
/* 028AD168 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028AD16C @ 0x28ad16c
|
|
void Gambit_fn_028AD16C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028AD16C: ; // 0x28ad16c
|
|
/* 028AD16C */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD16C */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AD170 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD170 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028AD174 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028AD178 */ cpu->r[11] = 0x10110000u;
|
|
/* 028AD17C */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028AD17C */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028AD180 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028AD180 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028AD184 */ return;
|
|
}
|
|
|
|
// fn_028AD194 @ 0x28ad194
|
|
void Gambit_fn_028AD194(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028AD194: ; // 0x28ad194
|
|
/* 028AD194 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028AD194 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD194 */ cpu->r[1] = _t0;
|
|
/* 028AD198 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD198 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028AD198 */ if (_t2) goto L_028AD19C; else goto L_028AD1AC;
|
|
L_028AD19C: ; // 0x28ad19c
|
|
/* 028AD19C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028AD1A0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028AD1A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD1A8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD1A8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AD1A8 */ if (_t4) goto L_028AD1BC; else goto L_028AD1AC;
|
|
L_028AD1AC: ; // 0x28ad1ac
|
|
/* 028AD1AC */ cpu->r[0] = 0x00000000u;
|
|
/* 028AD1B0 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD1B0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028AD1B4 */ _t6 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD1B4 */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[0]);
|
|
/* 028AD1B8 */ _t7 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD1B8 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
L_028AD1BC: ; // 0x28ad1bc
|
|
/* 028AD1BC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD1BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AD1C0 */ cpu->lr = cpu->r[0];
|
|
/* 028AD1C4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028AD1C8 */ return;
|
|
}
|
|
|
|
// fn_028AD1E0 @ 0x28ad1e0
|
|
void Gambit_fn_028AD1E0(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_028AD1E0: ; // 0x28ad1e0
|
|
/* 028AD1E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD1E4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD1E4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AD1E4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD1E4 */ goto L_028AD1E8;
|
|
L_028AD1E8: ; // 0x28ad1e8
|
|
/* 028AD1E8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD1E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AD1EC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD1EC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AD1EC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD1EC */ goto L_028AD1F0;
|
|
L_028AD1F0: ; // 0x28ad1f0
|
|
/* 028AD1F0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028AD1F4 @ 0x28ad1f4
|
|
void Gambit_fn_028AD1F4(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_028AD1F4: ; // 0x28ad1f4
|
|
/* 028AD1F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD1F8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD1F8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AD1F8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD1F8 */ goto L_028AD1FC;
|
|
L_028AD1FC: ; // 0x28ad1fc
|
|
/* 028AD1FC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD1FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AD200 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD200 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AD200 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD200 */ goto L_028AD204;
|
|
L_028AD204: ; // 0x28ad204
|
|
/* 028AD204 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028AD208 @ 0x28ad208
|
|
void Gambit_fn_028AD208(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_028AD208: ; // 0x28ad208
|
|
/* 028AD208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD20C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD20C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AD20C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD20C */ goto L_028AD210;
|
|
L_028AD210: ; // 0x28ad210
|
|
/* 028AD210 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD210 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AD214 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD214 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AD214 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD214 */ goto L_028AD218;
|
|
L_028AD218: ; // 0x28ad218
|
|
/* 028AD218 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028AD21C @ 0x28ad21c
|
|
void Gambit_fn_028AD21C(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_028AD21C: ; // 0x28ad21c
|
|
/* 028AD21C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD220 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD220 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AD220 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD220 */ goto L_028AD224;
|
|
L_028AD224: ; // 0x28ad224
|
|
/* 028AD224 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD224 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AD228 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD228 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AD228 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD228 */ goto L_028AD22C;
|
|
L_028AD22C: ; // 0x28ad22c
|
|
/* 028AD22C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028AD230 @ 0x28ad230
|
|
void Gambit_fn_028AD230(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_028AD230: ; // 0x28ad230
|
|
/* 028AD230 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD234 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD234 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AD234 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD234 */ goto L_028AD238;
|
|
L_028AD238: ; // 0x28ad238
|
|
/* 028AD238 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD238 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AD23C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD23C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AD23C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AD23C */ goto L_028AD240;
|
|
L_028AD240: ; // 0x28ad240
|
|
/* 028AD240 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028AD244 @ 0x28ad244
|
|
void Gambit_fn_028AD244(CPUState* cpu) {
|
|
L_028AD244: ; // 0x28ad244
|
|
/* 028AD244 */ cpu->r[3] = 0x00000000u;
|
|
/* 028AD248 */ return;
|
|
}
|
|
|
|
// fn_028AD24C @ 0x28ad24c
|
|
void Gambit_fn_028AD24C(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_028AD24C: ; // 0x28ad24c
|
|
/* 028AD24C */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 028AD24C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD24C */ cpu->r[1] = _t0;
|
|
/* 028AD250 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028AD250 */ rbrew_write32(cpu->mem, _t1, cpu->r[9]);
|
|
/* 028AD254 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD254 */ rbrew_write32(cpu->mem, _t2, cpu->r[4]);
|
|
/* 028AD258 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028AD258 */ rbrew_write32(cpu->mem, _t3, cpu->r[5]);
|
|
/* 028AD25C */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 028AD25C */ rbrew_write32(cpu->mem, _t4, cpu->r[10]);
|
|
/* 028AD260 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AD260 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 028AD264 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028AD264 */ rbrew_write32(cpu->mem, _t6, cpu->r[3]);
|
|
/* 028AD268 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD268 */ rbrew_write32(cpu->mem, _t7, cpu->r[6]);
|
|
/* 028AD26C */ _t8 = cpu->r[1] + 0x00000078u;
|
|
/* 028AD26C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AD270 */ _t9 = cpu->r[1] + 0x00000018u;
|
|
/* 028AD270 */ rbrew_write32(cpu->mem, _t9, cpu->r[7]);
|
|
/* 028AD274 */ _t10 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AD274 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AD274 */ if (_t11) goto L_028AD278; else goto L_028AD298;
|
|
L_028AD278: ; // 0x28ad278
|
|
/* 028AD278 */ _t12 = cpu->r[1] + 0x00000038u;
|
|
/* 028AD278 */ rbrew_write_f64(cpu->mem, _t12, cpu->f[3]);
|
|
/* 028AD27C */ _t13 = cpu->r[1] + 0x00000058u;
|
|
/* 028AD27C */ rbrew_write_f64(cpu->mem, _t13, cpu->f[7]);
|
|
/* 028AD280 */ _t14 = cpu->r[1] + 0x00000050u;
|
|
/* 028AD280 */ rbrew_write_f64(cpu->mem, _t14, cpu->f[6]);
|
|
/* 028AD284 */ _t15 = cpu->r[1] + 0x00000030u;
|
|
/* 028AD284 */ rbrew_write_f64(cpu->mem, _t15, cpu->f[2]);
|
|
/* 028AD288 */ _t16 = cpu->r[1] + 0x00000040u;
|
|
/* 028AD288 */ rbrew_write_f64(cpu->mem, _t16, cpu->f[4]);
|
|
/* 028AD28C */ _t17 = cpu->r[1] + 0x00000060u;
|
|
/* 028AD28C */ rbrew_write_f64(cpu->mem, _t17, cpu->f[8]);
|
|
/* 028AD290 */ _t18 = cpu->r[1] + 0x00000048u;
|
|
/* 028AD290 */ rbrew_write_f64(cpu->mem, _t18, cpu->f[5]);
|
|
/* 028AD294 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 028AD294 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[1]);
|
|
L_028AD298: ; // 0x28ad298
|
|
/* 028AD298 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 028AD29C */ return;
|
|
}
|
|
|
|
// fn_028AD2A0 @ 0x28ad2a0
|
|
void Gambit_fn_028AD2A0(CPUState* cpu) {
|
|
L_028AD2A0: ; // 0x28ad2a0
|
|
/* 028AD2A0 */ return;
|
|
}
|
|
|
|
// fn_028AD2A4 @ 0x28ad2a4
|
|
void Gambit_fn_028AD2A4(CPUState* cpu) {
|
|
L_028AD2A4: ; // 0x28ad2a4
|
|
/* 028AD2A4 */ return;
|
|
}
|
|
|
|
// fn_028AD2A8 @ 0x28ad2a8
|
|
void Gambit_fn_028AD2A8(CPUState* cpu) {
|
|
L_028AD2A8: ; // 0x28ad2a8
|
|
/* 028AD2A8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028AD2AC */ return;
|
|
}
|
|
|
|
// fn_028AD2B0 @ 0x28ad2b0
|
|
void Gambit_fn_028AD2B0(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_028AD2B0: ; // 0x28ad2b0
|
|
/* 028AD2B0 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AD2B0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AD2B4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028AD2B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AD2BC */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD2BC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028AD2C0 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD2C0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028AD2C0 */ if (_t3) goto L_028AD2C8; else goto L_028AD2C4;
|
|
L_028AD2C4: ; // 0x28ad2c4
|
|
/* 028AD2C4 */ _t4 = cpu->r[12] + 0x00000000u;
|
|
/* 028AD2C4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
L_028AD2C8: ; // 0x28ad2c8
|
|
/* 028AD2C8 */ _t5 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028AD2C8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028AD2CC */ _t6 = cpu->r[3] + 0x00000030u;
|
|
/* 028AD2CC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028AD2D0 */ _t7 = cpu->r[3] + 0x00000050u;
|
|
/* 028AD2D0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028AD2D4 */ _t8 = cpu->r[3] + 0x00000038u;
|
|
/* 028AD2D4 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028AD2D8 */ _t9 = cpu->r[3] + 0x00000054u;
|
|
/* 028AD2D8 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028AD2DC */ _t10 = cpu->r[3] + 0x00000014u;
|
|
/* 028AD2DC */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028AD2E0 */ _t11 = cpu->r[3] + 0x00000028u;
|
|
/* 028AD2E0 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028AD2E4 */ _t12 = cpu->r[3] + 0x00000048u;
|
|
/* 028AD2E4 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028AD2E8 */ _t13 = cpu->r[3] + 0x00000044u;
|
|
/* 028AD2E8 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028AD2EC */ _t14 = cpu->r[3] + 0x00000024u;
|
|
/* 028AD2EC */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028AD2F0 */ _t15 = cpu->r[3] + 0x00000010u;
|
|
/* 028AD2F0 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028AD2F4 */ _t16 = cpu->r[3] + 0x00000020u;
|
|
/* 028AD2F4 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028AD2F8 */ _t17 = cpu->r[3] + 0x0000003Cu;
|
|
/* 028AD2F8 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028AD2FC */ _t18 = cpu->r[3] + 0x0000004Cu;
|
|
/* 028AD2FC */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028AD300 */ _t19 = cpu->r[3] + 0x0000002Cu;
|
|
/* 028AD300 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028AD304 */ _t20 = cpu->r[3] + 0x00000018u;
|
|
/* 028AD304 */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 028AD308 */ _t21 = cpu->r[3] + 0x00000040u;
|
|
/* 028AD308 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028AD30C */ _t22 = cpu->r[3] + 0x00000034u;
|
|
/* 028AD30C */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028AD310 */ return;
|
|
}
|
|
|
|
// fn_028AD314 @ 0x28ad314
|
|
void Gambit_fn_028AD314(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028AD314: ; // 0x28ad314
|
|
/* 028AD314 */ cpu->r[0] = cpu->lr;
|
|
/* 028AD318 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AD318 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD318 */ cpu->r[1] = _t0;
|
|
/* 028AD31C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028AD31C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AD320 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD320 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AD324 */ cpu->r[31] = cpu->r[5];
|
|
/* 028AD328 */ cpu->r[30] = cpu->r[4];
|
|
/* 028AD32C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD330 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD330 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AD334 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD334 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028AD334 */ if (_t5) goto L_028AD338; else goto L_028AD348;
|
|
L_028AD338: ; // 0x28ad338
|
|
/* 028AD338 */ cpu->r[3] = 0x00000064u;
|
|
/* 028AD33C */ Gambit_fn_02801A78(cpu);
|
|
/* 028AD340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD344 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD344 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AD344 */ if (_t7) goto L_028AD370; else goto L_028AD348;
|
|
L_028AD348: ; // 0x28ad348
|
|
/* 028AD348 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD348 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028AD34C */ cpu->r[0] = 0x10140000u;
|
|
/* 028AD350 */ cpu->r[11] = 0x00000000u;
|
|
/* 028AD354 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD354 */ rbrew_write32(cpu->mem, _t9, cpu->r[31]);
|
|
/* 028AD358 */ cpu->r[0] = cpu->r[0] + 0xFFFF81D8u;
|
|
/* 028AD35C */ _t10 = cpu->r[3] + 0x0000005Cu;
|
|
/* 028AD35C */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[11]);
|
|
/* 028AD360 */ _t11 = cpu->r[3] + 0x00000060u;
|
|
/* 028AD360 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028AD364 */ _t12 = cpu->r[3] + 0x00000058u;
|
|
/* 028AD364 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028AD368 */ _t13 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AD368 */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028AD36C */ Gambit_fn_028AD2B0(cpu);
|
|
L_028AD370: ; // 0x28ad370
|
|
/* 028AD370 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD370 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AD374 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028AD374 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AD378 */ cpu->lr = cpu->r[0];
|
|
/* 028AD37C */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD37C */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AD380 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AD384 */ return;
|
|
}
|
|
|
|
// fn_028AD318 @ 0x28ad318
|
|
void Gambit_fn_028AD318(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028AD318: ; // 0x28ad318
|
|
/* 028AD318 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AD318 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD318 */ cpu->r[1] = _t0;
|
|
/* 028AD31C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028AD31C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AD320 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD320 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AD324 */ cpu->r[31] = cpu->r[5];
|
|
/* 028AD328 */ cpu->r[30] = cpu->r[4];
|
|
/* 028AD32C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD330 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD330 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AD334 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD334 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028AD334 */ if (_t5) goto L_028AD338; else goto L_028AD348;
|
|
L_028AD338: ; // 0x28ad338
|
|
/* 028AD338 */ cpu->r[3] = 0x00000064u;
|
|
/* 028AD33C */ Gambit_fn_02801A78(cpu);
|
|
/* 028AD340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AD344 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD344 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AD344 */ if (_t7) goto L_028AD370; else goto L_028AD348;
|
|
L_028AD348: ; // 0x28ad348
|
|
/* 028AD348 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD348 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028AD34C */ cpu->r[0] = 0x10140000u;
|
|
/* 028AD350 */ cpu->r[11] = 0x00000000u;
|
|
/* 028AD354 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD354 */ rbrew_write32(cpu->mem, _t9, cpu->r[31]);
|
|
/* 028AD358 */ cpu->r[0] = cpu->r[0] + 0xFFFF81D8u;
|
|
/* 028AD35C */ _t10 = cpu->r[3] + 0x0000005Cu;
|
|
/* 028AD35C */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[11]);
|
|
/* 028AD360 */ _t11 = cpu->r[3] + 0x00000060u;
|
|
/* 028AD360 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028AD364 */ _t12 = cpu->r[3] + 0x00000058u;
|
|
/* 028AD364 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028AD368 */ _t13 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AD368 */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028AD36C */ Gambit_fn_028AD2B0(cpu);
|
|
L_028AD370: ; // 0x28ad370
|
|
/* 028AD370 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD370 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AD374 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028AD374 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AD378 */ cpu->lr = cpu->r[0];
|
|
/* 028AD37C */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD37C */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AD380 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AD384 */ return;
|
|
}
|
|
|
|
// fn_028AD388 @ 0x28ad388
|
|
void Gambit_fn_028AD388(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_028AD388: ; // 0x28ad388
|
|
/* 028AD388 */ cpu->r[0] = cpu->lr;
|
|
/* 028AD38C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AD38C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD38C */ cpu->r[1] = _t0;
|
|
/* 028AD390 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028AD390 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AD394 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AD398 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD398 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AD39C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD39C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AD3A0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AD3A0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AD3A4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028AD3A8 */ _t5 = cpu->r[30] + 0x00000004u;
|
|
/* 028AD3A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AD3AC */ cpu->r[31] = cpu->r[5];
|
|
/* 028AD3B0 */ Gambit_fn_028AA0E8(cpu);
|
|
/* 028AD3B4 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AD3B4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AD3B8 */ _t7 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD3B8 */ rbrew_write32(cpu->mem, _t7, cpu->r[29]);
|
|
/* 028AD3BC */ _t8 = cpu->r[7] + 0x00000000u;
|
|
/* 028AD3BC */ rbrew_write32(cpu->mem, _t8, cpu->r[29]);
|
|
/* 028AD3C0 */ _t9 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD3C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AD3C4 */ _t10 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD3C4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028AD3C8 */ cpu->r[12] = cpu->r[12] + 0x00000064u;
|
|
/* 028AD3CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AD3D0 */ cpu->r[11] = 0x00000000u;
|
|
/* 028AD3D4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD3D4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028AD3D4 */ if (_t12) goto L_028AD3DC; else goto L_028AD3D8;
|
|
L_028AD3D8: ; // 0x28ad3d8
|
|
/* 028AD3D8 */ cpu->r[11] = cpu->r[12];
|
|
L_028AD3DC: ; // 0x28ad3dc
|
|
/* 028AD3DC */ _t13 = cpu->r[30] + 0x00000010u;
|
|
/* 028AD3DC */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028AD3E0 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD3E0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AD3E4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028AD3E8 */ _t15 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD3E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AD3EC */ cpu->r[6] = cpu->r[12] + cpu->r[0];
|
|
/* 028AD3F0 */ _t16 = cpu->r[30] + 0x00000014u;
|
|
/* 028AD3F0 */ rbrew_write32(cpu->mem, _t16, cpu->r[6]);
|
|
/* 028AD3F4 */ _t17 = cpu->r[11] + 0x00000004u;
|
|
/* 028AD3F4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AD3F8 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 028AD3FC */ cpu->r[9] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD3FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AD400 */ cpu->r[12] = cpu->r[6] + cpu->r[8];
|
|
/* 028AD404 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD404 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AD404 */ if (_t19) goto L_028AD40C; else goto L_028AD408;
|
|
L_028AD408: ; // 0x28ad408
|
|
/* 028AD408 */ cpu->r[12] = cpu->r[12] + 0x00000002u;
|
|
L_028AD40C: ; // 0x28ad40c
|
|
/* 028AD40C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028AD410 */ cpu->r[0] = 0x00000000u;
|
|
/* 028AD414 */ _t20 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD414 */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AD418 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD418 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028AD418 */ if (_t22) goto L_028AD420; else goto L_028AD41C;
|
|
L_028AD41C: ; // 0x28ad41c
|
|
/* 028AD41C */ cpu->r[0] = cpu->r[12];
|
|
L_028AD420: ; // 0x28ad420
|
|
/* 028AD420 */ _t23 = cpu->r[30] + 0x00000018u;
|
|
/* 028AD420 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028AD424 */ _t24 = cpu->r[11] + 0x00000004u;
|
|
/* 028AD424 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AD428 */ _t25 = cpu->r[11] + 0x00000008u;
|
|
/* 028AD428 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AD42C */ cpu->r[10] = rbrew_rlwinm(cpu->r[7], 0x00000005u, 0x00000000u, 0x0000001Au);
|
|
/* 028AD430 */ cpu->r[6] = 0x00000000u;
|
|
/* 028AD434 */ cpu->r[11] = cpu->r[7] - cpu->r[0];
|
|
/* 028AD434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AD438 */ cpu->r[12] = cpu->r[12] + cpu->r[10];
|
|
/* 028AD43C */ _t26 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD43C */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AD440 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD440 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028AD440 */ if (_t28) goto L_028AD448; else goto L_028AD444;
|
|
L_028AD444: ; // 0x28ad444
|
|
/* 028AD444 */ cpu->r[6] = cpu->r[12];
|
|
L_028AD448: ; // 0x28ad448
|
|
/* 028AD448 */ _t29 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AD448 */ rbrew_write32(cpu->mem, _t29, cpu->r[6]);
|
|
/* 028AD44C */ _t30 = cpu->r[11] + 0x00000010u;
|
|
/* 028AD44C */ cpu->r[6] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AD450 */ _t31 = cpu->r[11] + 0x0000004Cu;
|
|
/* 028AD450 */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AD454 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AD458 */ cpu->r[9] = 0x00000000u;
|
|
/* 028AD45C */ cpu->r[5] = cpu->r[11] + cpu->r[5];
|
|
/* 028AD460 */ _t32 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD460 */ cpu->r[11] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AD464 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD464 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028AD464 */ if (_t34) goto L_028AD46C; else goto L_028AD468;
|
|
L_028AD468: ; // 0x28ad468
|
|
/* 028AD468 */ cpu->r[9] = cpu->r[5];
|
|
L_028AD46C: ; // 0x28ad46c
|
|
/* 028AD46C */ _t35 = cpu->r[30] + 0x00000020u;
|
|
/* 028AD46C */ rbrew_write32(cpu->mem, _t35, cpu->r[9]);
|
|
/* 028AD470 */ _t36 = cpu->r[11] + 0x00000010u;
|
|
/* 028AD470 */ cpu->r[8] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028AD474 */ _t37 = cpu->r[11] + 0x00000014u;
|
|
/* 028AD474 */ cpu->r[9] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AD478 */ cpu->r[7] = rbrew_rlwinm(cpu->r[8], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028AD47C */ cpu->r[12] = 0x00000000u;
|
|
/* 028AD480 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AD484 */ _t38 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD484 */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028AD488 */ cpu->r[8] = cpu->r[5] + cpu->r[7];
|
|
/* 028AD48C */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD48C */ _t40 = _t39 & 0x00000001u;
|
|
/* 028AD48C */ if (_t40) goto L_028AD494; else goto L_028AD490;
|
|
L_028AD490: ; // 0x28ad490
|
|
/* 028AD490 */ cpu->r[12] = cpu->r[8];
|
|
L_028AD494: ; // 0x28ad494
|
|
/* 028AD494 */ _t41 = cpu->r[30] + 0x00000024u;
|
|
/* 028AD494 */ rbrew_write32(cpu->mem, _t41, cpu->r[12]);
|
|
/* 028AD498 */ _t42 = cpu->r[11] + 0x00000014u;
|
|
/* 028AD498 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028AD49C */ _t43 = cpu->r[11] + 0x00000018u;
|
|
/* 028AD49C */ cpu->r[5] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028AD4A0 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028AD4A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AD4A8 */ cpu->r[5] = 0x00000000u;
|
|
/* 028AD4AC */ _t44 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD4AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028AD4B0 */ cpu->r[10] = cpu->r[8] + cpu->r[10];
|
|
/* 028AD4B4 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD4B4 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028AD4B4 */ if (_t46) goto L_028AD4BC; else goto L_028AD4B8;
|
|
L_028AD4B8: ; // 0x28ad4b8
|
|
/* 028AD4B8 */ cpu->r[5] = cpu->r[10];
|
|
L_028AD4BC: ; // 0x28ad4bc
|
|
/* 028AD4BC */ _t47 = cpu->r[30] + 0x00000028u;
|
|
/* 028AD4BC */ rbrew_write32(cpu->mem, _t47, cpu->r[5]);
|
|
/* 028AD4C0 */ _t48 = cpu->r[11] + 0x00000018u;
|
|
/* 028AD4C0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028AD4C4 */ _t49 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028AD4C4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028AD4C8 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000001Cu);
|
|
/* 028AD4CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AD4D0 */ _t50 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD4D0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028AD4D4 */ cpu->r[7] = 0x00000000u;
|
|
/* 028AD4D8 */ cpu->r[5] = cpu->r[10] + cpu->r[6];
|
|
/* 028AD4DC */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD4DC */ _t52 = _t51 & 0x00000001u;
|
|
/* 028AD4DC */ if (_t52) goto L_028AD4E4; else goto L_028AD4E0;
|
|
L_028AD4E0: ; // 0x28ad4e0
|
|
/* 028AD4E0 */ cpu->r[7] = cpu->r[5];
|
|
L_028AD4E4: ; // 0x28ad4e4
|
|
/* 028AD4E4 */ _t53 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028AD4E4 */ rbrew_write32(cpu->mem, _t53, cpu->r[7]);
|
|
/* 028AD4E8 */ _t54 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028AD4E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028AD4EC */ _t55 = cpu->r[11] + 0x00000020u;
|
|
/* 028AD4EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028AD4F0 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028AD4F4 */ cpu->r[9] = 0x00000000u;
|
|
/* 028AD4F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AD4FC */ cpu->r[7] = cpu->r[5] + cpu->r[11];
|
|
/* 028AD500 */ _t56 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD500 */ cpu->r[11] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028AD504 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD504 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028AD504 */ if (_t58) goto L_028AD50C; else goto L_028AD508;
|
|
L_028AD508: ; // 0x28ad508
|
|
/* 028AD508 */ cpu->r[9] = cpu->r[7];
|
|
L_028AD50C: ; // 0x28ad50c
|
|
/* 028AD50C */ _t59 = cpu->r[30] + 0x00000030u;
|
|
/* 028AD50C */ rbrew_write32(cpu->mem, _t59, cpu->r[9]);
|
|
/* 028AD510 */ _t60 = cpu->r[11] + 0x00000020u;
|
|
/* 028AD510 */ cpu->r[10] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028AD514 */ _t61 = cpu->r[11] + 0x00000024u;
|
|
/* 028AD514 */ cpu->r[0] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028AD518 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x00000018u);
|
|
/* 028AD51C */ cpu->r[11] = 0x00000000u;
|
|
/* 028AD520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AD524 */ cpu->r[9] = cpu->r[7] + cpu->r[9];
|
|
/* 028AD528 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD528 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028AD528 */ if (_t63) goto L_028AD530; else goto L_028AD52C;
|
|
L_028AD52C: ; // 0x28ad52c
|
|
/* 028AD52C */ cpu->r[11] = cpu->r[9];
|
|
L_028AD530: ; // 0x28ad530
|
|
/* 028AD530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AD534 */ _t64 = cpu->r[30] + 0x00000034u;
|
|
/* 028AD534 */ rbrew_write32(cpu->mem, _t64, cpu->r[11]);
|
|
/* 028AD538 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD538 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028AD538 */ if (_t66) goto L_028AD624; else goto L_028AD53C;
|
|
L_028AD53C: ; // 0x28ad53c
|
|
/* 028AD53C */ _t67 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD53C */ cpu->r[7] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028AD540 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028AD544 */ cpu->r[6] = 0x00000000u;
|
|
/* 028AD548 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD548 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028AD548 */ if (_t69) goto L_028AD558; else goto L_028AD54C;
|
|
L_028AD54C: ; // 0x28ad54c
|
|
/* 028AD54C */ _t70 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD54C */ cpu->r[11] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028AD550 */ _t71 = cpu->r[11] + 0x00000050u;
|
|
/* 028AD550 */ cpu->r[9] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028AD554 */ cpu->r[6] = cpu->r[11] + cpu->r[9];
|
|
L_028AD558: ; // 0x28ad558
|
|
/* 028AD558 */ _t72 = cpu->r[30] + 0x00000038u;
|
|
/* 028AD558 */ rbrew_write32(cpu->mem, _t72, cpu->r[6]);
|
|
/* 028AD55C */ _t73 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD55C */ cpu->r[12] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028AD560 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AD564 */ cpu->r[7] = 0x00000000u;
|
|
/* 028AD568 */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD568 */ _t75 = _t74 & 0x00000001u;
|
|
/* 028AD568 */ if (_t75) goto L_028AD578; else goto L_028AD56C;
|
|
L_028AD56C: ; // 0x28ad56c
|
|
/* 028AD56C */ _t76 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD56C */ cpu->r[11] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028AD570 */ _t77 = cpu->r[11] + 0x00000054u;
|
|
/* 028AD570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028AD574 */ cpu->r[7] = cpu->r[11] + cpu->r[0];
|
|
L_028AD578: ; // 0x28ad578
|
|
/* 028AD578 */ _t78 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD578 */ cpu->r[11] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028AD57C */ _t79 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028AD57C */ rbrew_write32(cpu->mem, _t79, cpu->r[7]);
|
|
/* 028AD580 */ _t80 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028AD580 */ cpu->r[6] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028AD584 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AD588 */ cpu->r[8] = 0x00000000u;
|
|
/* 028AD58C */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD58C */ _t82 = _t81 & 0x00000001u;
|
|
/* 028AD58C */ if (_t82) goto L_028AD598; else goto L_028AD590;
|
|
L_028AD590: ; // 0x28ad590
|
|
/* 028AD590 */ _t83 = cpu->r[11] + 0x00000048u;
|
|
/* 028AD590 */ cpu->r[8] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028AD594 */ cpu->r[8] = cpu->r[11] + cpu->r[8];
|
|
L_028AD598: ; // 0x28ad598
|
|
/* 028AD598 */ _t84 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD598 */ cpu->r[11] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028AD59C */ _t85 = cpu->r[30] + 0x00000040u;
|
|
/* 028AD59C */ rbrew_write32(cpu->mem, _t85, cpu->r[8]);
|
|
/* 028AD5A0 */ _t86 = cpu->r[11] + 0x00000058u;
|
|
/* 028AD5A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028AD5A4 */ cpu->r[10] = cpu->r[12] + cpu->r[11];
|
|
/* 028AD5A8 */ _t87 = cpu->r[30] + 0x00000044u;
|
|
/* 028AD5A8 */ rbrew_write32(cpu->mem, _t87, cpu->r[10]);
|
|
/* 028AD5AC */ _t88 = cpu->r[11] + 0x00000034u;
|
|
/* 028AD5AC */ cpu->r[5] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028AD5B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AD5B4 */ cpu->r[9] = 0x00000000u;
|
|
/* 028AD5B8 */ _t89 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD5B8 */ _t90 = _t89 & 0x00000001u;
|
|
/* 028AD5B8 */ if (_t90) goto L_028AD5C4; else goto L_028AD5BC;
|
|
L_028AD5BC: ; // 0x28ad5bc
|
|
/* 028AD5BC */ _t91 = cpu->r[11] + 0x00000038u;
|
|
/* 028AD5BC */ cpu->r[8] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028AD5C0 */ cpu->r[9] = cpu->r[11] + cpu->r[8];
|
|
L_028AD5C4: ; // 0x28ad5c4
|
|
/* 028AD5C4 */ _t92 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD5C4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028AD5C8 */ _t93 = cpu->r[30] + 0x00000048u;
|
|
/* 028AD5C8 */ rbrew_write32(cpu->mem, _t93, cpu->r[9]);
|
|
/* 028AD5CC */ _t94 = cpu->r[11] + 0x0000003Cu;
|
|
/* 028AD5CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028AD5D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AD5D4 */ _t95 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD5D4 */ _t96 = _t95 & 0x00000001u;
|
|
/* 028AD5D4 */ if (_t96) goto L_028AD608; else goto L_028AD5D8;
|
|
L_028AD5D8: ; // 0x28ad5d8
|
|
/* 028AD5D8 */ _t97 = cpu->r[11] + 0x00000040u;
|
|
/* 028AD5D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028AD5DC */ _t98 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD5DC */ cpu->r[6] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028AD5E0 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
/* 028AD5E4 */ _t99 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028AD5E4 */ rbrew_write32(cpu->mem, _t99, cpu->r[11]);
|
|
/* 028AD5E8 */ _t100 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028AD5E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028AD5EC */ cpu->r[8] = rbrew_rlwinm(cpu->r[10], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028AD5F0 */ cpu->r[0] = cpu->r[11] + cpu->r[8];
|
|
/* 028AD5F4 */ _t101 = cpu->r[30] + 0x00000050u;
|
|
/* 028AD5F4 */ rbrew_write32(cpu->mem, _t101, cpu->r[0]);
|
|
/* 028AD5F8 */ _t102 = cpu->r[6] + 0x00000044u;
|
|
/* 028AD5F8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028AD5FC */ cpu->r[0] = cpu->r[6] + cpu->r[5];
|
|
/* 028AD600 */ _t103 = cpu->r[30] + 0x00000054u;
|
|
/* 028AD600 */ rbrew_write32(cpu->mem, _t103, cpu->r[0]);
|
|
/* 028AD604 */ goto L_028AD624;
|
|
L_028AD608: ; // 0x28ad608
|
|
/* 028AD608 */ cpu->r[0] = 0x00000000u;
|
|
/* 028AD60C */ _t104 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD60C */ cpu->r[11] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028AD610 */ _t105 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028AD610 */ rbrew_write32(cpu->mem, _t105, cpu->r[0]);
|
|
/* 028AD614 */ _t106 = cpu->r[30] + 0x00000050u;
|
|
/* 028AD614 */ rbrew_write32(cpu->mem, _t106, cpu->r[0]);
|
|
/* 028AD618 */ _t107 = cpu->r[11] + 0x00000044u;
|
|
/* 028AD618 */ cpu->r[5] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028AD61C */ cpu->r[0] = cpu->r[11] + cpu->r[5];
|
|
/* 028AD620 */ _t108 = cpu->r[30] + 0x00000054u;
|
|
/* 028AD620 */ rbrew_write32(cpu->mem, _t108, cpu->r[0]);
|
|
L_028AD624: ; // 0x28ad624
|
|
/* 028AD624 */ _t109 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD624 */ cpu->r[29] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028AD628 */ _t110 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AD628 */ cpu->r[0] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028AD62C */ _t111 = cpu->r[1] + 0x00000010u;
|
|
/* 028AD62C */ cpu->r[30] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028AD630 */ cpu->lr = cpu->r[0];
|
|
/* 028AD634 */ _t112 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD634 */ cpu->r[31] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028AD638 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AD63C */ return;
|
|
}
|
|
|
|
// fn_028AD38C @ 0x28ad38c
|
|
void Gambit_fn_028AD38C(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_028AD38C: ; // 0x28ad38c
|
|
/* 028AD38C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AD38C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD38C */ cpu->r[1] = _t0;
|
|
/* 028AD390 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028AD390 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AD394 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AD398 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD398 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AD39C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD39C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AD3A0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AD3A0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AD3A4 */ cpu->r[29] = cpu->r[4];
|
|
/* 028AD3A8 */ _t5 = cpu->r[30] + 0x00000004u;
|
|
/* 028AD3A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AD3AC */ cpu->r[31] = cpu->r[5];
|
|
/* 028AD3B0 */ Gambit_fn_028AA0E8(cpu);
|
|
/* 028AD3B4 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AD3B4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AD3B8 */ _t7 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD3B8 */ rbrew_write32(cpu->mem, _t7, cpu->r[29]);
|
|
/* 028AD3BC */ _t8 = cpu->r[7] + 0x00000000u;
|
|
/* 028AD3BC */ rbrew_write32(cpu->mem, _t8, cpu->r[29]);
|
|
/* 028AD3C0 */ _t9 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD3C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AD3C4 */ _t10 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD3C4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028AD3C8 */ cpu->r[12] = cpu->r[12] + 0x00000064u;
|
|
/* 028AD3CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AD3D0 */ cpu->r[11] = 0x00000000u;
|
|
/* 028AD3D4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD3D4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028AD3D4 */ if (_t12) goto L_028AD3DC; else goto L_028AD3D8;
|
|
L_028AD3D8: ; // 0x28ad3d8
|
|
/* 028AD3D8 */ cpu->r[11] = cpu->r[12];
|
|
L_028AD3DC: ; // 0x28ad3dc
|
|
/* 028AD3DC */ _t13 = cpu->r[30] + 0x00000010u;
|
|
/* 028AD3DC */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028AD3E0 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028AD3E0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AD3E4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028AD3E8 */ _t15 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD3E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AD3EC */ cpu->r[6] = cpu->r[12] + cpu->r[0];
|
|
/* 028AD3F0 */ _t16 = cpu->r[30] + 0x00000014u;
|
|
/* 028AD3F0 */ rbrew_write32(cpu->mem, _t16, cpu->r[6]);
|
|
/* 028AD3F4 */ _t17 = cpu->r[11] + 0x00000004u;
|
|
/* 028AD3F4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AD3F8 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 028AD3FC */ cpu->r[9] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD3FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AD400 */ cpu->r[12] = cpu->r[6] + cpu->r[8];
|
|
/* 028AD404 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD404 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AD404 */ if (_t19) goto L_028AD40C; else goto L_028AD408;
|
|
L_028AD408: ; // 0x28ad408
|
|
/* 028AD408 */ cpu->r[12] = cpu->r[12] + 0x00000002u;
|
|
L_028AD40C: ; // 0x28ad40c
|
|
/* 028AD40C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028AD410 */ cpu->r[0] = 0x00000000u;
|
|
/* 028AD414 */ _t20 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD414 */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AD418 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD418 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028AD418 */ if (_t22) goto L_028AD420; else goto L_028AD41C;
|
|
L_028AD41C: ; // 0x28ad41c
|
|
/* 028AD41C */ cpu->r[0] = cpu->r[12];
|
|
L_028AD420: ; // 0x28ad420
|
|
/* 028AD420 */ _t23 = cpu->r[30] + 0x00000018u;
|
|
/* 028AD420 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 028AD424 */ _t24 = cpu->r[11] + 0x00000004u;
|
|
/* 028AD424 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AD428 */ _t25 = cpu->r[11] + 0x00000008u;
|
|
/* 028AD428 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AD42C */ cpu->r[10] = rbrew_rlwinm(cpu->r[7], 0x00000005u, 0x00000000u, 0x0000001Au);
|
|
/* 028AD430 */ cpu->r[6] = 0x00000000u;
|
|
/* 028AD434 */ cpu->r[11] = cpu->r[7] - cpu->r[0];
|
|
/* 028AD434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AD438 */ cpu->r[12] = cpu->r[12] + cpu->r[10];
|
|
/* 028AD43C */ _t26 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD43C */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AD440 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD440 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028AD440 */ if (_t28) goto L_028AD448; else goto L_028AD444;
|
|
L_028AD444: ; // 0x28ad444
|
|
/* 028AD444 */ cpu->r[6] = cpu->r[12];
|
|
L_028AD448: ; // 0x28ad448
|
|
/* 028AD448 */ _t29 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AD448 */ rbrew_write32(cpu->mem, _t29, cpu->r[6]);
|
|
/* 028AD44C */ _t30 = cpu->r[11] + 0x00000010u;
|
|
/* 028AD44C */ cpu->r[6] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AD450 */ _t31 = cpu->r[11] + 0x0000004Cu;
|
|
/* 028AD450 */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AD454 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AD458 */ cpu->r[9] = 0x00000000u;
|
|
/* 028AD45C */ cpu->r[5] = cpu->r[11] + cpu->r[5];
|
|
/* 028AD460 */ _t32 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD460 */ cpu->r[11] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AD464 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD464 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028AD464 */ if (_t34) goto L_028AD46C; else goto L_028AD468;
|
|
L_028AD468: ; // 0x28ad468
|
|
/* 028AD468 */ cpu->r[9] = cpu->r[5];
|
|
L_028AD46C: ; // 0x28ad46c
|
|
/* 028AD46C */ _t35 = cpu->r[30] + 0x00000020u;
|
|
/* 028AD46C */ rbrew_write32(cpu->mem, _t35, cpu->r[9]);
|
|
/* 028AD470 */ _t36 = cpu->r[11] + 0x00000010u;
|
|
/* 028AD470 */ cpu->r[8] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028AD474 */ _t37 = cpu->r[11] + 0x00000014u;
|
|
/* 028AD474 */ cpu->r[9] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AD478 */ cpu->r[7] = rbrew_rlwinm(cpu->r[8], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028AD47C */ cpu->r[12] = 0x00000000u;
|
|
/* 028AD480 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AD484 */ _t38 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD484 */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028AD488 */ cpu->r[8] = cpu->r[5] + cpu->r[7];
|
|
/* 028AD48C */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD48C */ _t40 = _t39 & 0x00000001u;
|
|
/* 028AD48C */ if (_t40) goto L_028AD494; else goto L_028AD490;
|
|
L_028AD490: ; // 0x28ad490
|
|
/* 028AD490 */ cpu->r[12] = cpu->r[8];
|
|
L_028AD494: ; // 0x28ad494
|
|
/* 028AD494 */ _t41 = cpu->r[30] + 0x00000024u;
|
|
/* 028AD494 */ rbrew_write32(cpu->mem, _t41, cpu->r[12]);
|
|
/* 028AD498 */ _t42 = cpu->r[11] + 0x00000014u;
|
|
/* 028AD498 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028AD49C */ _t43 = cpu->r[11] + 0x00000018u;
|
|
/* 028AD49C */ cpu->r[5] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028AD4A0 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028AD4A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AD4A8 */ cpu->r[5] = 0x00000000u;
|
|
/* 028AD4AC */ _t44 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD4AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028AD4B0 */ cpu->r[10] = cpu->r[8] + cpu->r[10];
|
|
/* 028AD4B4 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD4B4 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028AD4B4 */ if (_t46) goto L_028AD4BC; else goto L_028AD4B8;
|
|
L_028AD4B8: ; // 0x28ad4b8
|
|
/* 028AD4B8 */ cpu->r[5] = cpu->r[10];
|
|
L_028AD4BC: ; // 0x28ad4bc
|
|
/* 028AD4BC */ _t47 = cpu->r[30] + 0x00000028u;
|
|
/* 028AD4BC */ rbrew_write32(cpu->mem, _t47, cpu->r[5]);
|
|
/* 028AD4C0 */ _t48 = cpu->r[11] + 0x00000018u;
|
|
/* 028AD4C0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028AD4C4 */ _t49 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028AD4C4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028AD4C8 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000001Cu);
|
|
/* 028AD4CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AD4D0 */ _t50 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD4D0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028AD4D4 */ cpu->r[7] = 0x00000000u;
|
|
/* 028AD4D8 */ cpu->r[5] = cpu->r[10] + cpu->r[6];
|
|
/* 028AD4DC */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD4DC */ _t52 = _t51 & 0x00000001u;
|
|
/* 028AD4DC */ if (_t52) goto L_028AD4E4; else goto L_028AD4E0;
|
|
L_028AD4E0: ; // 0x28ad4e0
|
|
/* 028AD4E0 */ cpu->r[7] = cpu->r[5];
|
|
L_028AD4E4: ; // 0x28ad4e4
|
|
/* 028AD4E4 */ _t53 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028AD4E4 */ rbrew_write32(cpu->mem, _t53, cpu->r[7]);
|
|
/* 028AD4E8 */ _t54 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028AD4E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028AD4EC */ _t55 = cpu->r[11] + 0x00000020u;
|
|
/* 028AD4EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028AD4F0 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028AD4F4 */ cpu->r[9] = 0x00000000u;
|
|
/* 028AD4F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AD4FC */ cpu->r[7] = cpu->r[5] + cpu->r[11];
|
|
/* 028AD500 */ _t56 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD500 */ cpu->r[11] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028AD504 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD504 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028AD504 */ if (_t58) goto L_028AD50C; else goto L_028AD508;
|
|
L_028AD508: ; // 0x28ad508
|
|
/* 028AD508 */ cpu->r[9] = cpu->r[7];
|
|
L_028AD50C: ; // 0x28ad50c
|
|
/* 028AD50C */ _t59 = cpu->r[30] + 0x00000030u;
|
|
/* 028AD50C */ rbrew_write32(cpu->mem, _t59, cpu->r[9]);
|
|
/* 028AD510 */ _t60 = cpu->r[11] + 0x00000020u;
|
|
/* 028AD510 */ cpu->r[10] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028AD514 */ _t61 = cpu->r[11] + 0x00000024u;
|
|
/* 028AD514 */ cpu->r[0] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028AD518 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x00000018u);
|
|
/* 028AD51C */ cpu->r[11] = 0x00000000u;
|
|
/* 028AD520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AD524 */ cpu->r[9] = cpu->r[7] + cpu->r[9];
|
|
/* 028AD528 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD528 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028AD528 */ if (_t63) goto L_028AD530; else goto L_028AD52C;
|
|
L_028AD52C: ; // 0x28ad52c
|
|
/* 028AD52C */ cpu->r[11] = cpu->r[9];
|
|
L_028AD530: ; // 0x28ad530
|
|
/* 028AD530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AD534 */ _t64 = cpu->r[30] + 0x00000034u;
|
|
/* 028AD534 */ rbrew_write32(cpu->mem, _t64, cpu->r[11]);
|
|
/* 028AD538 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD538 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028AD538 */ if (_t66) goto L_028AD624; else goto L_028AD53C;
|
|
L_028AD53C: ; // 0x28ad53c
|
|
/* 028AD53C */ _t67 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD53C */ cpu->r[7] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028AD540 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028AD544 */ cpu->r[6] = 0x00000000u;
|
|
/* 028AD548 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD548 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028AD548 */ if (_t69) goto L_028AD558; else goto L_028AD54C;
|
|
L_028AD54C: ; // 0x28ad54c
|
|
/* 028AD54C */ _t70 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD54C */ cpu->r[11] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028AD550 */ _t71 = cpu->r[11] + 0x00000050u;
|
|
/* 028AD550 */ cpu->r[9] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028AD554 */ cpu->r[6] = cpu->r[11] + cpu->r[9];
|
|
L_028AD558: ; // 0x28ad558
|
|
/* 028AD558 */ _t72 = cpu->r[30] + 0x00000038u;
|
|
/* 028AD558 */ rbrew_write32(cpu->mem, _t72, cpu->r[6]);
|
|
/* 028AD55C */ _t73 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD55C */ cpu->r[12] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028AD560 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AD564 */ cpu->r[7] = 0x00000000u;
|
|
/* 028AD568 */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD568 */ _t75 = _t74 & 0x00000001u;
|
|
/* 028AD568 */ if (_t75) goto L_028AD578; else goto L_028AD56C;
|
|
L_028AD56C: ; // 0x28ad56c
|
|
/* 028AD56C */ _t76 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD56C */ cpu->r[11] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028AD570 */ _t77 = cpu->r[11] + 0x00000054u;
|
|
/* 028AD570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028AD574 */ cpu->r[7] = cpu->r[11] + cpu->r[0];
|
|
L_028AD578: ; // 0x28ad578
|
|
/* 028AD578 */ _t78 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD578 */ cpu->r[11] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028AD57C */ _t79 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028AD57C */ rbrew_write32(cpu->mem, _t79, cpu->r[7]);
|
|
/* 028AD580 */ _t80 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028AD580 */ cpu->r[6] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028AD584 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AD588 */ cpu->r[8] = 0x00000000u;
|
|
/* 028AD58C */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD58C */ _t82 = _t81 & 0x00000001u;
|
|
/* 028AD58C */ if (_t82) goto L_028AD598; else goto L_028AD590;
|
|
L_028AD590: ; // 0x28ad590
|
|
/* 028AD590 */ _t83 = cpu->r[11] + 0x00000048u;
|
|
/* 028AD590 */ cpu->r[8] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028AD594 */ cpu->r[8] = cpu->r[11] + cpu->r[8];
|
|
L_028AD598: ; // 0x28ad598
|
|
/* 028AD598 */ _t84 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD598 */ cpu->r[11] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028AD59C */ _t85 = cpu->r[30] + 0x00000040u;
|
|
/* 028AD59C */ rbrew_write32(cpu->mem, _t85, cpu->r[8]);
|
|
/* 028AD5A0 */ _t86 = cpu->r[11] + 0x00000058u;
|
|
/* 028AD5A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028AD5A4 */ cpu->r[10] = cpu->r[12] + cpu->r[11];
|
|
/* 028AD5A8 */ _t87 = cpu->r[30] + 0x00000044u;
|
|
/* 028AD5A8 */ rbrew_write32(cpu->mem, _t87, cpu->r[10]);
|
|
/* 028AD5AC */ _t88 = cpu->r[11] + 0x00000034u;
|
|
/* 028AD5AC */ cpu->r[5] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028AD5B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AD5B4 */ cpu->r[9] = 0x00000000u;
|
|
/* 028AD5B8 */ _t89 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD5B8 */ _t90 = _t89 & 0x00000001u;
|
|
/* 028AD5B8 */ if (_t90) goto L_028AD5C4; else goto L_028AD5BC;
|
|
L_028AD5BC: ; // 0x28ad5bc
|
|
/* 028AD5BC */ _t91 = cpu->r[11] + 0x00000038u;
|
|
/* 028AD5BC */ cpu->r[8] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028AD5C0 */ cpu->r[9] = cpu->r[11] + cpu->r[8];
|
|
L_028AD5C4: ; // 0x28ad5c4
|
|
/* 028AD5C4 */ _t92 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD5C4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028AD5C8 */ _t93 = cpu->r[30] + 0x00000048u;
|
|
/* 028AD5C8 */ rbrew_write32(cpu->mem, _t93, cpu->r[9]);
|
|
/* 028AD5CC */ _t94 = cpu->r[11] + 0x0000003Cu;
|
|
/* 028AD5CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028AD5D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AD5D4 */ _t95 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD5D4 */ _t96 = _t95 & 0x00000001u;
|
|
/* 028AD5D4 */ if (_t96) goto L_028AD608; else goto L_028AD5D8;
|
|
L_028AD5D8: ; // 0x28ad5d8
|
|
/* 028AD5D8 */ _t97 = cpu->r[11] + 0x00000040u;
|
|
/* 028AD5D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028AD5DC */ _t98 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD5DC */ cpu->r[6] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028AD5E0 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
/* 028AD5E4 */ _t99 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028AD5E4 */ rbrew_write32(cpu->mem, _t99, cpu->r[11]);
|
|
/* 028AD5E8 */ _t100 = cpu->r[6] + 0x0000003Cu;
|
|
/* 028AD5E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028AD5EC */ cpu->r[8] = rbrew_rlwinm(cpu->r[10], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028AD5F0 */ cpu->r[0] = cpu->r[11] + cpu->r[8];
|
|
/* 028AD5F4 */ _t101 = cpu->r[30] + 0x00000050u;
|
|
/* 028AD5F4 */ rbrew_write32(cpu->mem, _t101, cpu->r[0]);
|
|
/* 028AD5F8 */ _t102 = cpu->r[6] + 0x00000044u;
|
|
/* 028AD5F8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028AD5FC */ cpu->r[0] = cpu->r[6] + cpu->r[5];
|
|
/* 028AD600 */ _t103 = cpu->r[30] + 0x00000054u;
|
|
/* 028AD600 */ rbrew_write32(cpu->mem, _t103, cpu->r[0]);
|
|
/* 028AD604 */ goto L_028AD624;
|
|
L_028AD608: ; // 0x28ad608
|
|
/* 028AD608 */ cpu->r[0] = 0x00000000u;
|
|
/* 028AD60C */ _t104 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD60C */ cpu->r[11] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028AD610 */ _t105 = cpu->r[30] + 0x0000004Cu;
|
|
/* 028AD610 */ rbrew_write32(cpu->mem, _t105, cpu->r[0]);
|
|
/* 028AD614 */ _t106 = cpu->r[30] + 0x00000050u;
|
|
/* 028AD614 */ rbrew_write32(cpu->mem, _t106, cpu->r[0]);
|
|
/* 028AD618 */ _t107 = cpu->r[11] + 0x00000044u;
|
|
/* 028AD618 */ cpu->r[5] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028AD61C */ cpu->r[0] = cpu->r[11] + cpu->r[5];
|
|
/* 028AD620 */ _t108 = cpu->r[30] + 0x00000054u;
|
|
/* 028AD620 */ rbrew_write32(cpu->mem, _t108, cpu->r[0]);
|
|
L_028AD624: ; // 0x28ad624
|
|
/* 028AD624 */ _t109 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AD624 */ cpu->r[29] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028AD628 */ _t110 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AD628 */ cpu->r[0] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028AD62C */ _t111 = cpu->r[1] + 0x00000010u;
|
|
/* 028AD62C */ cpu->r[30] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028AD630 */ cpu->lr = cpu->r[0];
|
|
/* 028AD634 */ _t112 = cpu->r[1] + 0x00000014u;
|
|
/* 028AD634 */ cpu->r[31] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028AD638 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AD63C */ return;
|
|
}
|
|
|
|
// fn_028AD640 @ 0x28ad640
|
|
void Gambit_fn_028AD640(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028AD640: ; // 0x28ad640
|
|
/* 028AD640 */ _t0 = cpu->r[3] + 0x00000008u;
|
|
/* 028AD640 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AD644 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AD648 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD648 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028AD648 */ if (_t2) goto L_028AD670; else goto L_028AD64C;
|
|
L_028AD64C: ; // 0x28ad64c
|
|
/* 028AD64C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028AD650 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AD650 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AD650 */ if (_t4) goto L_028AD670; else goto L_028AD654;
|
|
L_028AD654: ; // 0x28ad654
|
|
/* 028AD654 */ _t5 = cpu->r[12] + 0x00000004u;
|
|
/* 028AD654 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AD658 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[12]);
|
|
/* 028AD65C */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AD65C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AD65C */ if (_t7) goto L_028AD660; else goto L_028AD670;
|
|
L_028AD660: ; // 0x28ad660
|
|
/* 028AD660 */ _t8 = cpu->r[3] + 0x00000018u;
|
|
/* 028AD660 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AD664 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000005u, 0x00000000u, 0x0000001Au);
|
|
/* 028AD668 */ cpu->r[3] = cpu->r[11] + cpu->r[0];
|
|
/* 028AD66C */ return;
|
|
L_028AD670: ; // 0x28ad670
|
|
/* 028AD670 */ cpu->r[3] = 0x00000000u;
|
|
/* 028AD674 */ return;
|
|
}
|
|
|
|
// fn_028AD678 @ 0x28ad678
|
|
void Gambit_fn_028AD678(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028AD678: ; // 0x28ad678
|
|
/* 028AD678 */ _t0 = cpu->r[3] + 0x00000044u;
|
|
/* 028AD678 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AD67C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 028AD680 */ _t1 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AD680 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028AD680 */ if (_t2) goto L_028AD688; else goto L_028AD684;
|
|
L_028AD684: ; // 0x28ad684
|
|
/* 028AD684 */ cpu->r[4] = cpu->r[4] + cpu->r[0];
|
|
L_028AD688: ; // 0x28ad688
|
|
/* 028AD688 */ cpu->r[3] = cpu->r[4];
|
|
/* 028AD68C */ return;
|
|
}
|
|
|
|
// fn_028AD690 @ 0x28ad690
|
|
void Gambit_fn_028AD690(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_028AD690: ; // 0x28ad690
|
|
/* 028AD690 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028AD690 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD690 */ cpu->r[1] = _t0;
|
|
/* 028AD694 */ cpu->r[0] = cpu->lr;
|
|
/* 028AD698 */ /* nop */
|
|
/* 028AD69C */ cpu->r[31] = cpu->r[5];
|
|
/* 028AD69C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AD6A0 */ cpu->r[30] = cpu->r[4];
|
|
/* 028AD6A4 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028AD6A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028AD6A8 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AD6AC */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD6AC */ _t3 = _t2 & 0x00000001u;
|
|
/* 028AD6AC */ if (_t3) goto L_028AD76C; else goto L_028AD6B0;
|
|
L_028AD6B0: ; // 0x28ad6b0
|
|
/* 028AD6B0 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFF8u;
|
|
L_028AD6B4: ; // 0x28ad6b4
|
|
/* 028AD6B4 */ _t4 = cpu->r[30] + 0x00000008u;
|
|
/* 028AD6B4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AD6B4 */ cpu->r[30] = _t4;
|
|
/* 028AD6B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000002u);
|
|
/* 028AD6BC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD6BC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028AD6BC */ if (_t6) goto L_028AD6C0; else goto L_028AD764;
|
|
L_028AD6C0: ; // 0x28ad6c0
|
|
/* 028AD6C0 */ _t7 = cpu->r[30] + 0x00000004u;
|
|
/* 028AD6C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AD6C4 */ _t8 = cpu->r[29] + 0x0000004Cu;
|
|
/* 028AD6C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AD6C8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028AD6CC */ cpu->r[26] = cpu->r[12] + cpu->r[10];
|
|
/* 028AD6D0 */ _t9 = cpu->r[26] + 0x00000008u;
|
|
/* 028AD6D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AD6D4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AD6D8 */ Gambit_fn_028AD678(cpu);
|
|
/* 028AD6DC */ _t10 = cpu->r[26] + 0x00000006u;
|
|
/* 028AD6DC */ cpu->r[8] = rbrew_read16(cpu->mem, _t10);
|
|
/* 028AD6E0 */ cpu->r[27] = cpu->r[3];
|
|
/* 028AD6E4 */ _t11 = cpu->r[26] + 0x00000008u;
|
|
/* 028AD6E4 */ rbrew_write32(cpu->mem, _t11, cpu->r[3]);
|
|
/* 028AD6E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AD6EC */ cpu->r[4] = cpu->r[27];
|
|
/* 028AD6F0 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD6F0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AD6F0 */ if (_t13) goto L_028AD72C; else goto L_028AD6F4;
|
|
L_028AD6F4: ; // 0x28ad6f4
|
|
/* 028AD6F4 */ _t14 = cpu->r[29] + 0x00000004u;
|
|
/* 028AD6F4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AD6F8 */ Gambit_fn_028AA118(cpu);
|
|
/* 028AD6FC */ cpu->r[28] = cpu->r[3];
|
|
/* 028AD700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0xFFFFFFFFu);
|
|
/* 028AD704 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD704 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028AD704 */ if (_t16) goto L_028AD708; else goto L_028AD760;
|
|
L_028AD708: ; // 0x28ad708
|
|
/* 028AD708 */ _t17 = cpu->r[29] + 0x00000000u;
|
|
/* 028AD708 */ cpu->r[5] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AD70C */ cpu->r[7] = cpu->r[27];
|
|
/* 028AD710 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AD714 */ _t18 = cpu->r[29] + 0x00000004u;
|
|
/* 028AD714 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AD718 */ cpu->r[4] = 0x00000015u;
|
|
/* 028AD71C */ cpu->r[6] = cpu->r[6] + 0xFFFF8218u;
|
|
/* 028AD720 */ _t19 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AD720 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028AD720 */ if (_t20) goto L_028AD724; // else: addr-0 trap, fall-through
|
|
L_028AD724: ; // 0x28ad724
|
|
/* 028AD724 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028AD728 */ goto L_028AD760;
|
|
L_028AD72C: ; // 0x28ad72c
|
|
/* 028AD72C */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 028AD72C */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AD730 */ Gambit_fn_028ABC70(cpu);
|
|
/* 028AD734 */ cpu->r[28] = cpu->r[3];
|
|
/* 028AD738 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0xFFFFFFFFu);
|
|
/* 028AD73C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD73C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AD73C */ if (_t23) goto L_028AD740; else goto L_028AD760;
|
|
L_028AD740: ; // 0x28ad740
|
|
/* 028AD740 */ _t24 = cpu->r[29] + 0x00000000u;
|
|
/* 028AD740 */ cpu->r[5] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AD744 */ cpu->r[7] = cpu->r[27];
|
|
/* 028AD748 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AD74C */ _t25 = cpu->r[29] + 0x00000004u;
|
|
/* 028AD74C */ cpu->r[3] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AD750 */ cpu->r[4] = 0x00000015u;
|
|
/* 028AD754 */ cpu->r[6] = cpu->r[6] + 0xFFFF8200u;
|
|
/* 028AD758 */ _t26 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AD758 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028AD758 */ if (_t27) goto L_028AD75C; // else: addr-0 trap, fall-through
|
|
L_028AD75C: ; // 0x28ad75c
|
|
/* 028AD75C */ Gambit_fn_028AA73C(cpu);
|
|
L_028AD760: ; // 0x28ad760
|
|
/* 028AD760 */ _t28 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028AD760 */ rbrew_write32(cpu->mem, _t28, cpu->r[28]);
|
|
L_028AD764: ; // 0x28ad764
|
|
/* 028AD764 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028AD764 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AD768 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD768 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028AD768 */ if (_t30) goto L_028AD76C; else goto L_028AD6B4;
|
|
L_028AD76C: ; // 0x28ad76c
|
|
/* 028AD76C */ /* nop */
|
|
/* 028AD770 */ _t31 = cpu->r[1] + 0x00000024u;
|
|
/* 028AD770 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AD774 */ cpu->lr = cpu->r[0];
|
|
/* 028AD778 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028AD77C */ return;
|
|
}
|
|
|
|
// fn_028AD780 @ 0x28ad780
|
|
void Gambit_fn_028AD780(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;
|
|
|
|
L_028AD780: ; // 0x28ad780
|
|
/* 028AD780 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028AD780 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD780 */ cpu->r[1] = _t0;
|
|
/* 028AD784 */ /* nop */
|
|
/* 028AD788 */ cpu->r[0] = cpu->lr;
|
|
/* 028AD78C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028AD78C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028AD790 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AD794 */ _t2 = cpu->r[31] + 0x00000018u;
|
|
/* 028AD794 */ cpu->r[10] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028AD798 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AD79C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD79C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AD79C */ if (_t4) goto L_028AD894; else goto L_028AD7A0;
|
|
L_028AD7A0: ; // 0x28ad7a0
|
|
/* 028AD7A0 */ _t5 = cpu->r[31] + 0x00000008u;
|
|
/* 028AD7A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AD7A4 */ _t6 = cpu->r[12] + 0x00000004u;
|
|
/* 028AD7A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AD7A8 */ cpu->r[28] = 0x00000000u;
|
|
/* 028AD7AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 028AD7B0 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AD7B0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AD7B0 */ if (_t8) goto L_028AD7B4; else goto L_028AD894;
|
|
L_028AD7B4: ; // 0x28ad7b4
|
|
/* 028AD7B4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028AD7B8 */ cpu->r[30] = cpu->r[29];
|
|
L_028AD7BC: ; // 0x28ad7bc
|
|
/* 028AD7BC */ _t9 = cpu->r[10] + cpu->r[29];
|
|
/* 028AD7BC */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AD7C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AD7C4 */ Gambit_fn_028AD678(cpu);
|
|
/* 028AD7C8 */ _t10 = cpu->r[10] + cpu->r[29];
|
|
/* 028AD7C8 */ rbrew_write32(cpu->mem, _t10, cpu->r[3]);
|
|
/* 028AD7CC */ _t11 = cpu->r[31] + 0x00000018u;
|
|
/* 028AD7CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AD7D0 */ cpu->r[7] = cpu->r[10] + cpu->r[29];
|
|
/* 028AD7D4 */ _t12 = cpu->r[7] + 0x00000014u;
|
|
/* 028AD7D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AD7D8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AD7D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AD7DC */ _t13 = cpu->r[7] + 0x00000018u;
|
|
/* 028AD7DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028AD7E0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD7E0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028AD7E0 */ if (_t15) goto L_028AD82C; else goto L_028AD7E4;
|
|
L_028AD7E4: ; // 0x28ad7e4
|
|
/* 028AD7E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 028AD7E8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD7E8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AD7E8 */ if (_t17) goto L_028AD810; else goto L_028AD7EC;
|
|
L_028AD7EC: ; // 0x28ad7ec
|
|
/* 028AD7EC */ _t18 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028AD7EC */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AD7F0 */ cpu->r[8] = cpu->r[12] + cpu->r[10];
|
|
/* 028AD7F4 */ _t19 = cpu->r[7] + 0x00000018u;
|
|
/* 028AD7F4 */ rbrew_write32(cpu->mem, _t19, cpu->r[8]);
|
|
/* 028AD7F8 */ _t20 = cpu->r[31] + 0x00000018u;
|
|
/* 028AD7F8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AD7FC */ cpu->r[7] = cpu->r[10] + cpu->r[29];
|
|
/* 028AD800 */ _t21 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028AD800 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AD804 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 028AD808 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD808 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AD808 */ if (_t23) goto L_028AD8A8; else goto L_028AD80C;
|
|
L_028AD80C: ; // 0x28ad80c
|
|
/* 028AD80C */ goto L_028AD870;
|
|
L_028AD810: ; // 0x28ad810
|
|
/* 028AD810 */ _t24 = cpu->r[7] + 0x00000018u;
|
|
/* 028AD810 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 028AD814 */ _t25 = cpu->r[31] + 0x00000018u;
|
|
/* 028AD814 */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AD818 */ cpu->r[7] = cpu->r[10] + cpu->r[29];
|
|
/* 028AD81C */ _t26 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028AD81C */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AD820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 028AD824 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD824 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028AD824 */ if (_t28) goto L_028AD8A8; else goto L_028AD828;
|
|
L_028AD828: ; // 0x28ad828
|
|
/* 028AD828 */ goto L_028AD870;
|
|
L_028AD82C: ; // 0x28ad82c
|
|
/* 028AD82C */ _t29 = cpu->r[31] + 0x00000038u;
|
|
/* 028AD82C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AD830 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
/* 028AD834 */ _t30 = cpu->r[7] + 0x00000018u;
|
|
/* 028AD834 */ rbrew_write32(cpu->mem, _t30, cpu->r[12]);
|
|
/* 028AD838 */ _t31 = cpu->r[31] + 0x00000018u;
|
|
/* 028AD838 */ cpu->r[7] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AD83C */ _t32 = cpu->r[31] + 0x00000004u;
|
|
/* 028AD83C */ cpu->r[3] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AD840 */ cpu->r[12] = cpu->r[7] + cpu->r[29];
|
|
/* 028AD844 */ _t33 = cpu->r[12] + 0x00000018u;
|
|
/* 028AD844 */ cpu->r[27] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028AD848 */ Gambit_fn_028AA0E8(cpu);
|
|
/* 028AD84C */ _t34 = cpu->r[3] + 0x00000004u;
|
|
/* 028AD84C */ cpu->r[5] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028AD850 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AD854 */ cpu->r[4] = cpu->r[27];
|
|
/* 028AD858 */ Gambit_fn_028AD690(cpu);
|
|
/* 028AD85C */ _t35 = cpu->r[31] + 0x00000018u;
|
|
/* 028AD85C */ cpu->r[10] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028AD860 */ cpu->r[7] = cpu->r[10] + cpu->r[29];
|
|
/* 028AD864 */ _t36 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028AD864 */ cpu->r[9] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028AD868 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 028AD86C */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD86C */ _t38 = _t37 & 0x00000001u;
|
|
/* 028AD86C */ if (_t38) goto L_028AD8A8; else goto L_028AD870;
|
|
L_028AD870: ; // 0x28ad870
|
|
/* 028AD870 */ _t39 = cpu->r[31] + 0x00000040u;
|
|
/* 028AD870 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AD874 */ cpu->r[10] = cpu->r[9] + cpu->r[0];
|
|
/* 028AD878 */ _t40 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028AD878 */ rbrew_write32(cpu->mem, _t40, cpu->r[10]);
|
|
/* 028AD87C */ _t41 = cpu->r[31] + 0x00000008u;
|
|
/* 028AD87C */ cpu->r[12] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028AD880 */ _t42 = cpu->r[12] + 0x00000004u;
|
|
/* 028AD880 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028AD884 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028AD888 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028AD88C */ cpu->r[29] = cpu->r[29] + 0x00000020u;
|
|
/* 028AD890 */ _t43 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AD890 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028AD890 */ if (_t44) goto L_028AD8C4; else goto L_028AD894;
|
|
L_028AD894: ; // 0x28ad894
|
|
/* 028AD894 */ /* nop */
|
|
/* 028AD898 */ _t45 = cpu->r[1] + 0x00000024u;
|
|
/* 028AD898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028AD89C */ cpu->lr = cpu->r[0];
|
|
/* 028AD8A0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028AD8A4 */ return;
|
|
L_028AD8A8: ; // 0x28ad8a8
|
|
/* 028AD8A8 */ _t46 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028AD8A8 */ rbrew_write32(cpu->mem, _t46, cpu->r[30]);
|
|
/* 028AD8AC */ _t47 = cpu->r[31] + 0x00000008u;
|
|
/* 028AD8AC */ cpu->r[12] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028AD8B0 */ _t48 = cpu->r[12] + 0x00000004u;
|
|
/* 028AD8B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028AD8B4 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028AD8B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028AD8BC */ cpu->r[29] = cpu->r[29] + 0x00000020u;
|
|
/* 028AD8C0 */ _t49 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AD8C0 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028AD8C0 */ if (_t50) goto L_028AD8C4; else goto L_028AD894;
|
|
L_028AD8C4: ; // 0x28ad8c4
|
|
/* 028AD8C4 */ _t51 = cpu->r[31] + 0x00000018u;
|
|
/* 028AD8C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028AD8C8 */ goto L_028AD7BC;
|
|
}
|
|
|
|
// fn_028AD8CC @ 0x28ad8cc
|
|
void Gambit_fn_028AD8CC(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_028AD8CC: ; // 0x28ad8cc
|
|
/* 028AD8CC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028AD8CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AD8CC */ cpu->r[1] = _t0;
|
|
/* 028AD8D0 */ /* nop */
|
|
/* 028AD8D4 */ cpu->r[0] = cpu->lr;
|
|
/* 028AD8D8 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028AD8D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028AD8DC */ cpu->r[27] = cpu->r[3];
|
|
/* 028AD8E0 */ _t2 = cpu->r[27] + 0x00000008u;
|
|
/* 028AD8E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028AD8E4 */ _t3 = cpu->r[12] + 0x00000004u;
|
|
/* 028AD8E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028AD8E8 */ cpu->r[28] = 0x00000000u;
|
|
/* 028AD8EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028AD8F0 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AD8F0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028AD8F0 */ if (_t5) goto L_028AD8F4; else goto L_028ADA08;
|
|
L_028AD8F4: ; // 0x28ad8f4
|
|
/* 028AD8F4 */ cpu->r[30] = 0x10140000u;
|
|
/* 028AD8F8 */ cpu->r[29] = 0x00000000u;
|
|
L_028AD8FC: ; // 0x28ad8fc
|
|
/* 028AD8FC */ _t6 = cpu->r[27] + 0x00000018u;
|
|
/* 028AD8FC */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AD900 */ cpu->r[3] = cpu->r[7] + cpu->r[29];
|
|
/* 028AD904 */ Gambit_fn_028A8CC0(cpu);
|
|
/* 028AD908 */ cpu->r[26] = cpu->r[3];
|
|
/* 028AD908 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028AD90C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD90C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AD90C */ if (_t8) goto L_028AD9F0; else goto L_028AD910;
|
|
L_028AD910: ; // 0x28ad910
|
|
/* 028AD910 */ _t9 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028AD910 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AD914 */ cpu->r[3] = cpu->r[27];
|
|
/* 028AD918 */ Gambit_fn_028AD678(cpu);
|
|
/* 028AD91C */ _t10 = cpu->r[26] + 0x00000014u;
|
|
/* 028AD91C */ cpu->r[10] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028AD920 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AD924 */ _t11 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028AD924 */ rbrew_write32(cpu->mem, _t11, cpu->r[3]);
|
|
/* 028AD928 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AD92C */ cpu->r[4] = cpu->r[31];
|
|
/* 028AD930 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD930 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AD930 */ if (_t13) goto L_028AD994; else goto L_028AD934;
|
|
L_028AD934: ; // 0x28ad934
|
|
/* 028AD934 */ _t14 = cpu->r[27] + 0x00000004u;
|
|
/* 028AD934 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AD938 */ Gambit_fn_028AA118(cpu);
|
|
/* 028AD93C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 028AD940 */ _t15 = cpu->r[26] + 0x00000010u;
|
|
/* 028AD940 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
/* 028AD944 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD944 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AD944 */ if (_t17) goto L_028AD948; else goto L_028AD9F0;
|
|
L_028AD948: ; // 0x28ad948
|
|
/* 028AD948 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AD94C */ cpu->r[7] = cpu->r[31];
|
|
/* 028AD950 */ _t18 = cpu->r[27] + 0x00000018u;
|
|
/* 028AD950 */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AD954 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD954 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028AD954 */ if (_t20) goto L_028AD958; else goto L_028AD95C;
|
|
L_028AD958: ; // 0x28ad958
|
|
/* 028AD958 */ cpu->r[7] = cpu->r[30] + 0xFFFF8234u;
|
|
L_028AD95C: ; // 0x28ad95c
|
|
/* 028AD95C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AD960 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD960 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028AD960 */ if (_t22) goto L_028AD970; else goto L_028AD964;
|
|
L_028AD964: ; // 0x28ad964
|
|
/* 028AD964 */ _t23 = cpu->r[8] + cpu->r[29];
|
|
/* 028AD964 */ cpu->r[8] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AD968 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AD96C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD96C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028AD96C */ if (_t25) goto L_028AD970; else goto L_028AD974;
|
|
L_028AD970: ; // 0x28ad970
|
|
/* 028AD970 */ cpu->r[8] = cpu->r[30] + 0xFFFF8234u;
|
|
L_028AD974: ; // 0x28ad974
|
|
/* 028AD974 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AD978 */ _t26 = cpu->r[27] + 0x00000000u;
|
|
/* 028AD978 */ cpu->r[5] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AD97C */ cpu->r[6] = cpu->r[6] + 0xFFFF8258u;
|
|
/* 028AD980 */ _t27 = cpu->r[27] + 0x00000004u;
|
|
/* 028AD980 */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AD984 */ cpu->r[4] = 0x00000015u;
|
|
/* 028AD988 */ _t28 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AD988 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028AD988 */ if (_t29) goto L_028AD98C; // else: addr-0 trap, fall-through
|
|
L_028AD98C: ; // 0x28ad98c
|
|
/* 028AD98C */ Gambit_fn_028AA73C(cpu);
|
|
/* 028AD990 */ goto L_028AD9F0;
|
|
L_028AD994: ; // 0x28ad994
|
|
/* 028AD994 */ _t30 = cpu->r[27] + 0x00000000u;
|
|
/* 028AD994 */ cpu->r[3] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AD998 */ Gambit_fn_028ABC70(cpu);
|
|
/* 028AD99C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 028AD9A0 */ _t31 = cpu->r[26] + 0x00000010u;
|
|
/* 028AD9A0 */ rbrew_write32(cpu->mem, _t31, cpu->r[3]);
|
|
/* 028AD9A4 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD9A4 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028AD9A4 */ if (_t33) goto L_028AD9A8; else goto L_028AD9F0;
|
|
L_028AD9A8: ; // 0x28ad9a8
|
|
/* 028AD9A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AD9AC */ _t34 = cpu->r[27] + 0x00000018u;
|
|
/* 028AD9AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028AD9B0 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD9B0 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028AD9B0 */ if (_t36) goto L_028AD9B4; else goto L_028AD9B8;
|
|
L_028AD9B4: ; // 0x28ad9b4
|
|
/* 028AD9B4 */ cpu->r[31] = cpu->r[30] + 0xFFFF8234u;
|
|
L_028AD9B8: ; // 0x28ad9b8
|
|
/* 028AD9B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AD9BC */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD9BC */ _t38 = _t37 & 0x00000001u;
|
|
/* 028AD9BC */ if (_t38) goto L_028AD9CC; else goto L_028AD9C0;
|
|
L_028AD9C0: ; // 0x28ad9c0
|
|
/* 028AD9C0 */ _t39 = cpu->r[8] + cpu->r[29];
|
|
/* 028AD9C0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AD9C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AD9C8 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AD9C8 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028AD9C8 */ if (_t41) goto L_028AD9CC; else goto L_028AD9D0;
|
|
L_028AD9CC: ; // 0x28ad9cc
|
|
/* 028AD9CC */ cpu->r[8] = cpu->r[30] + 0xFFFF8234u;
|
|
L_028AD9D0: ; // 0x28ad9d0
|
|
/* 028AD9D0 */ _t42 = cpu->r[27] + 0x00000000u;
|
|
/* 028AD9D0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028AD9D4 */ cpu->r[7] = cpu->r[31];
|
|
/* 028AD9D8 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AD9DC */ _t43 = cpu->r[27] + 0x00000004u;
|
|
/* 028AD9DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028AD9E0 */ cpu->r[4] = 0x00000015u;
|
|
/* 028AD9E4 */ cpu->r[6] = cpu->r[6] + 0xFFFF8238u;
|
|
/* 028AD9E8 */ _t44 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028AD9E8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028AD9E8 */ if (_t45) goto L_028AD9EC; // else: addr-0 trap, fall-through
|
|
L_028AD9EC: ; // 0x28ad9ec
|
|
/* 028AD9EC */ Gambit_fn_028AA73C(cpu);
|
|
L_028AD9F0: ; // 0x28ad9f0
|
|
/* 028AD9F0 */ _t46 = cpu->r[27] + 0x00000008u;
|
|
/* 028AD9F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028AD9F4 */ _t47 = cpu->r[9] + 0x00000004u;
|
|
/* 028AD9F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028AD9F8 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028AD9FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028ADA00 */ cpu->r[29] = cpu->r[29] + 0x00000020u;
|
|
/* 028ADA04 */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADA04 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028ADA04 */ if (_t49) goto L_028AD8FC; else goto L_028ADA08;
|
|
L_028ADA08: ; // 0x28ada08
|
|
/* 028ADA08 */ /* nop */
|
|
/* 028ADA0C */ _t50 = cpu->r[1] + 0x00000024u;
|
|
/* 028ADA0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028ADA10 */ cpu->lr = cpu->r[0];
|
|
/* 028ADA14 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028ADA18 */ return;
|
|
}
|
|
|
|
// fn_028ADA1C @ 0x28ada1c
|
|
void Gambit_fn_028ADA1C(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;
|
|
|
|
L_028ADA1C: ; // 0x28ada1c
|
|
/* 028ADA1C */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028ADA1C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ADA1C */ cpu->r[1] = _t0;
|
|
/* 028ADA20 */ /* nop */
|
|
/* 028ADA24 */ cpu->r[0] = cpu->lr;
|
|
/* 028ADA28 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028ADA28 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028ADA2C */ cpu->r[30] = cpu->r[3];
|
|
/* 028ADA30 */ _t2 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADA30 */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028ADA34 */ _t3 = cpu->r[9] + 0x00000010u;
|
|
/* 028ADA34 */ cpu->r[5] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ADA38 */ cpu->r[7] = 0x00000000u;
|
|
/* 028ADA3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[5]);
|
|
/* 028ADA40 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADA40 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028ADA40 */ if (_t5) goto L_028ADA44; else goto L_028ADA74;
|
|
L_028ADA44: ; // 0x28ada44
|
|
/* 028ADA44 */ cpu->r[8] = 0x00000000u;
|
|
L_028ADA48: ; // 0x28ada48
|
|
/* 028ADA48 */ _t6 = cpu->r[30] + 0x00000020u;
|
|
/* 028ADA48 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028ADA4C */ _t7 = cpu->r[11] + cpu->r[8];
|
|
/* 028ADA4C */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028ADA50 */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADA54 */ Gambit_fn_028AD678(cpu);
|
|
/* 028ADA58 */ _t8 = cpu->r[11] + cpu->r[8];
|
|
/* 028ADA58 */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 028ADA5C */ _t9 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADA5C */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028ADA60 */ _t10 = cpu->r[9] + 0x00000010u;
|
|
/* 028ADA60 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028ADA64 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 028ADA68 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[10]);
|
|
/* 028ADA6C */ cpu->r[8] = cpu->r[8] + 0x00000008u;
|
|
/* 028ADA70 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADA70 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028ADA70 */ if (_t12) goto L_028ADA48; else goto L_028ADA74;
|
|
L_028ADA74: ; // 0x28ada74
|
|
/* 028ADA74 */ _t13 = cpu->r[9] + 0x00000014u;
|
|
/* 028ADA74 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028ADA78 */ cpu->r[10] = 0x00000000u;
|
|
/* 028ADA7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 028ADA80 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADA80 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028ADA80 */ if (_t15) goto L_028ADA84; else goto L_028ADAB4;
|
|
L_028ADA84: ; // 0x28ada84
|
|
/* 028ADA84 */ cpu->r[6] = 0x00000000u;
|
|
L_028ADA88: ; // 0x28ada88
|
|
/* 028ADA88 */ _t16 = cpu->r[30] + 0x00000024u;
|
|
/* 028ADA88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028ADA8C */ _t17 = cpu->r[12] + cpu->r[6];
|
|
/* 028ADA8C */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028ADA90 */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADA94 */ Gambit_fn_028AD678(cpu);
|
|
/* 028ADA98 */ _t18 = cpu->r[12] + cpu->r[6];
|
|
/* 028ADA98 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028ADA9C */ _t19 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADA9C */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028ADAA0 */ _t20 = cpu->r[9] + 0x00000014u;
|
|
/* 028ADAA0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028ADAA4 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028ADAA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[12]);
|
|
/* 028ADAAC */ cpu->r[6] = cpu->r[6] + 0x0000000Cu;
|
|
/* 028ADAB0 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADAB0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028ADAB0 */ if (_t22) goto L_028ADA88; else goto L_028ADAB4;
|
|
L_028ADAB4: ; // 0x28adab4
|
|
/* 028ADAB4 */ _t23 = cpu->r[9] + 0x00000018u;
|
|
/* 028ADAB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028ADAB8 */ cpu->r[28] = 0x00000000u;
|
|
/* 028ADABC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028ADAC0 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADAC0 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028ADAC0 */ if (_t25) goto L_028ADAC4; else goto L_028ADB7C;
|
|
L_028ADAC4: ; // 0x28adac4
|
|
/* 028ADAC4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028ADAC8 */ cpu->r[31] = cpu->r[29];
|
|
L_028ADACC: ; // 0x28adacc
|
|
/* 028ADACC */ _t26 = cpu->r[30] + 0x00000028u;
|
|
/* 028ADACC */ cpu->r[4] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028ADAD0 */ cpu->r[11] = cpu->r[4] + cpu->r[29];
|
|
/* 028ADAD4 */ _t27 = cpu->r[11] + 0x00000004u;
|
|
/* 028ADAD4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028ADAD8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADADC */ Gambit_fn_028AD678(cpu);
|
|
/* 028ADAE0 */ _t28 = cpu->r[11] + 0x00000004u;
|
|
/* 028ADAE0 */ rbrew_write32(cpu->mem, _t28, cpu->r[3]);
|
|
/* 028ADAE4 */ _t29 = cpu->r[30] + 0x00000028u;
|
|
/* 028ADAE4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028ADAE8 */ cpu->r[11] = cpu->r[5] + cpu->r[29];
|
|
/* 028ADAEC */ _t30 = cpu->r[11] + 0x00000008u;
|
|
/* 028ADAEC */ cpu->r[6] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028ADAF0 */ _t31 = cpu->r[30] + 0x00000018u;
|
|
/* 028ADAF0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028ADAF4 */ cpu->r[6] = cpu->r[6] + cpu->r[7];
|
|
/* 028ADAF8 */ _t32 = cpu->r[11] + 0x00000008u;
|
|
/* 028ADAF8 */ rbrew_write32(cpu->mem, _t32, cpu->r[6]);
|
|
/* 028ADAFC */ _t33 = cpu->r[30] + 0x00000028u;
|
|
/* 028ADAFC */ cpu->r[8] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028ADB00 */ cpu->r[11] = cpu->r[8] + cpu->r[29];
|
|
/* 028ADB04 */ _t34 = cpu->r[11] + 0x00000018u;
|
|
/* 028ADB04 */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028ADB08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 028ADB0C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADB0C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028ADB0C */ if (_t36) goto L_028ADB10; else goto L_028ADB30;
|
|
L_028ADB10: ; // 0x28adb10
|
|
/* 028ADB10 */ _t37 = cpu->r[11] + 0x00000018u;
|
|
/* 028ADB10 */ rbrew_write32(cpu->mem, _t37, cpu->r[31]);
|
|
/* 028ADB14 */ _t38 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADB14 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028ADB18 */ _t39 = cpu->r[9] + 0x00000018u;
|
|
/* 028ADB18 */ cpu->r[7] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028ADB1C */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028ADB20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 028ADB24 */ cpu->r[29] = cpu->r[29] + 0x0000001Cu;
|
|
/* 028ADB28 */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADB28 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028ADB28 */ if (_t41) goto L_028ADACC; else goto L_028ADB2C;
|
|
L_028ADB2C: ; // 0x28adb2c
|
|
/* 028ADB2C */ goto L_028ADB7C;
|
|
L_028ADB30: ; // 0x28adb30
|
|
/* 028ADB30 */ _t42 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028ADB30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028ADB34 */ cpu->r[9] = cpu->r[12] + cpu->r[0];
|
|
/* 028ADB38 */ _t43 = cpu->r[11] + 0x00000018u;
|
|
/* 028ADB38 */ rbrew_write32(cpu->mem, _t43, cpu->r[9]);
|
|
/* 028ADB3C */ _t44 = cpu->r[30] + 0x00000028u;
|
|
/* 028ADB3C */ cpu->r[12] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028ADB40 */ _t45 = cpu->r[30] + 0x00000004u;
|
|
/* 028ADB40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028ADB44 */ cpu->r[11] = cpu->r[12] + cpu->r[29];
|
|
/* 028ADB48 */ _t46 = cpu->r[11] + 0x00000018u;
|
|
/* 028ADB48 */ cpu->r[4] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028ADB4C */ cpu->r[27] = cpu->r[4] + 0x00000004u;
|
|
/* 028ADB50 */ Gambit_fn_028AA0E8(cpu);
|
|
/* 028ADB54 */ _t47 = cpu->r[3] + 0x00000008u;
|
|
/* 028ADB54 */ cpu->r[5] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028ADB58 */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADB5C */ cpu->r[4] = cpu->r[27];
|
|
/* 028ADB60 */ Gambit_fn_028AD690(cpu);
|
|
/* 028ADB64 */ _t48 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADB64 */ cpu->r[9] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028ADB68 */ _t49 = cpu->r[9] + 0x00000018u;
|
|
/* 028ADB68 */ cpu->r[7] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028ADB6C */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028ADB70 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 028ADB74 */ cpu->r[29] = cpu->r[29] + 0x0000001Cu;
|
|
/* 028ADB78 */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADB78 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028ADB78 */ if (_t51) goto L_028ADACC; else goto L_028ADB7C;
|
|
L_028ADB7C: ; // 0x28adb7c
|
|
/* 028ADB7C */ _t52 = cpu->r[9] + 0x00000020u;
|
|
/* 028ADB7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028ADB80 */ cpu->r[28] = 0x00000000u;
|
|
/* 028ADB84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028ADB88 */ _t53 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADB88 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028ADB88 */ if (_t54) goto L_028ADB8C; else goto L_028ADC84;
|
|
L_028ADB8C: ; // 0x28adb8c
|
|
/* 028ADB8C */ cpu->r[29] = 0x00000000u;
|
|
/* 028ADB90 */ cpu->r[31] = cpu->r[29];
|
|
L_028ADB94: ; // 0x28adb94
|
|
/* 028ADB94 */ _t55 = cpu->r[30] + 0x00000030u;
|
|
/* 028ADB94 */ cpu->r[9] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028ADB98 */ cpu->r[10] = cpu->r[9] + cpu->r[29];
|
|
/* 028ADB9C */ _t56 = cpu->r[10] + 0x00000004u;
|
|
/* 028ADB9C */ cpu->r[4] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028ADBA0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADBA4 */ Gambit_fn_028AD678(cpu);
|
|
/* 028ADBA8 */ _t57 = cpu->r[10] + 0x00000004u;
|
|
/* 028ADBA8 */ rbrew_write32(cpu->mem, _t57, cpu->r[3]);
|
|
/* 028ADBAC */ _t58 = cpu->r[30] + 0x00000030u;
|
|
/* 028ADBAC */ cpu->r[11] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028ADBB0 */ cpu->r[10] = cpu->r[11] + cpu->r[29];
|
|
/* 028ADBB4 */ _t59 = cpu->r[10] + 0x00000008u;
|
|
/* 028ADBB4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028ADBB8 */ _t60 = cpu->r[30] + 0x00000018u;
|
|
/* 028ADBB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028ADBBC */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
/* 028ADBC0 */ _t61 = cpu->r[10] + 0x00000008u;
|
|
/* 028ADBC0 */ rbrew_write32(cpu->mem, _t61, cpu->r[12]);
|
|
/* 028ADBC4 */ _t62 = cpu->r[30] + 0x00000030u;
|
|
/* 028ADBC4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028ADBC8 */ cpu->r[10] = cpu->r[4] + cpu->r[29];
|
|
/* 028ADBCC */ _t63 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028ADBCC */ cpu->r[5] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028ADBD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0xFFFFFFFFu);
|
|
/* 028ADBD4 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADBD4 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028ADBD4 */ if (_t65) goto L_028ADBD8; else goto L_028ADBF4;
|
|
L_028ADBD8: ; // 0x28adbd8
|
|
/* 028ADBD8 */ _t66 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028ADBD8 */ rbrew_write32(cpu->mem, _t66, cpu->r[31]);
|
|
/* 028ADBDC */ _t67 = cpu->r[30] + 0x00000030u;
|
|
/* 028ADBDC */ cpu->r[7] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028ADBE0 */ cpu->r[10] = cpu->r[7] + cpu->r[29];
|
|
/* 028ADBE4 */ _t68 = cpu->r[10] + 0x00000014u;
|
|
/* 028ADBE4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028ADBE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0xFFFFFFFFu);
|
|
/* 028ADBEC */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADBEC */ _t70 = _t69 & 0x00000001u;
|
|
/* 028ADBEC */ if (_t70) goto L_028ADBF0; else goto L_028ADC34;
|
|
L_028ADBF0: ; // 0x28adbf0
|
|
/* 028ADBF0 */ goto L_028ADC14;
|
|
L_028ADBF4: ; // 0x28adbf4
|
|
/* 028ADBF4 */ _t71 = cpu->r[30] + 0x00000040u;
|
|
/* 028ADBF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028ADBF8 */ cpu->r[5] = cpu->r[5] + cpu->r[0];
|
|
/* 028ADBFC */ _t72 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028ADBFC */ rbrew_write32(cpu->mem, _t72, cpu->r[5]);
|
|
/* 028ADC00 */ _t73 = cpu->r[30] + 0x00000030u;
|
|
/* 028ADC00 */ cpu->r[7] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028ADC04 */ cpu->r[10] = cpu->r[7] + cpu->r[29];
|
|
/* 028ADC08 */ _t74 = cpu->r[10] + 0x00000014u;
|
|
/* 028ADC08 */ cpu->r[7] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028ADC0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0xFFFFFFFFu);
|
|
/* 028ADC10 */ _t75 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADC10 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028ADC10 */ if (_t76) goto L_028ADC14; else goto L_028ADC34;
|
|
L_028ADC14: ; // 0x28adc14
|
|
/* 028ADC14 */ _t77 = cpu->r[10] + 0x00000014u;
|
|
/* 028ADC14 */ rbrew_write32(cpu->mem, _t77, cpu->r[31]);
|
|
/* 028ADC18 */ _t78 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADC18 */ cpu->r[9] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028ADC1C */ _t79 = cpu->r[9] + 0x00000020u;
|
|
/* 028ADC1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028ADC20 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028ADC24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028ADC28 */ cpu->r[29] = cpu->r[29] + 0x00000018u;
|
|
/* 028ADC2C */ _t80 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADC2C */ _t81 = _t80 & 0x00000001u;
|
|
/* 028ADC2C */ if (_t81) goto L_028ADB94; else goto L_028ADC30;
|
|
L_028ADC30: ; // 0x28adc30
|
|
/* 028ADC30 */ goto L_028ADC84;
|
|
L_028ADC34: ; // 0x28adc34
|
|
/* 028ADC34 */ _t82 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028ADC34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028ADC38 */ cpu->r[8] = cpu->r[7] + cpu->r[0];
|
|
/* 028ADC3C */ _t83 = cpu->r[10] + 0x00000014u;
|
|
/* 028ADC3C */ rbrew_write32(cpu->mem, _t83, cpu->r[8]);
|
|
/* 028ADC40 */ _t84 = cpu->r[30] + 0x00000030u;
|
|
/* 028ADC40 */ cpu->r[11] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028ADC44 */ _t85 = cpu->r[30] + 0x00000004u;
|
|
/* 028ADC44 */ cpu->r[3] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028ADC48 */ cpu->r[10] = cpu->r[11] + cpu->r[29];
|
|
/* 028ADC4C */ _t86 = cpu->r[10] + 0x00000014u;
|
|
/* 028ADC4C */ cpu->r[6] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028ADC50 */ cpu->r[27] = cpu->r[6] + 0x00000004u;
|
|
/* 028ADC54 */ Gambit_fn_028AA0E8(cpu);
|
|
/* 028ADC58 */ cpu->r[5] = cpu->r[3];
|
|
/* 028ADC5C */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADC60 */ _t87 = cpu->r[5] + 0x00000008u;
|
|
/* 028ADC60 */ cpu->r[5] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028ADC64 */ cpu->r[4] = cpu->r[27];
|
|
/* 028ADC68 */ Gambit_fn_028AD690(cpu);
|
|
/* 028ADC6C */ _t88 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADC6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028ADC70 */ _t89 = cpu->r[9] + 0x00000020u;
|
|
/* 028ADC70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028ADC74 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028ADC78 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028ADC7C */ cpu->r[29] = cpu->r[29] + 0x00000018u;
|
|
/* 028ADC80 */ _t90 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADC80 */ _t91 = _t90 & 0x00000001u;
|
|
/* 028ADC80 */ if (_t91) goto L_028ADB94; else goto L_028ADC84;
|
|
L_028ADC84: ; // 0x28adc84
|
|
/* 028ADC84 */ _t92 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028ADC84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028ADC88 */ cpu->r[27] = 0x00000000u;
|
|
/* 028ADC8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[0]);
|
|
/* 028ADC90 */ _t93 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADC90 */ _t94 = _t93 & 0x00000001u;
|
|
/* 028ADC90 */ if (_t94) goto L_028ADC94; else goto L_028ADDF8;
|
|
L_028ADC94: ; // 0x28adc94
|
|
/* 028ADC94 */ cpu->r[28] = 0x00000000u;
|
|
L_028ADC98: ; // 0x28adc98
|
|
/* 028ADC98 */ _t95 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028ADC98 */ cpu->r[8] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028ADC9C */ _t96 = cpu->r[8] + cpu->r[28];
|
|
/* 028ADC9C */ cpu->r[4] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028ADCA0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADCA4 */ Gambit_fn_028AD678(cpu);
|
|
/* 028ADCA8 */ _t97 = cpu->r[8] + cpu->r[28];
|
|
/* 028ADCA8 */ rbrew_write32(cpu->mem, _t97, cpu->r[3]);
|
|
/* 028ADCAC */ _t98 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028ADCAC */ cpu->r[8] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028ADCB0 */ cpu->r[4] = cpu->r[8] + cpu->r[28];
|
|
/* 028ADCB4 */ _t99 = cpu->r[4] + 0x00000004u;
|
|
/* 028ADCB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t99);
|
|
/* 028ADCB8 */ _t100 = cpu->r[8] + cpu->r[28];
|
|
/* 028ADCB8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028ADCBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ADCC0 */ cpu->r[4] = cpu->r[31];
|
|
/* 028ADCC4 */ _t101 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADCC4 */ _t102 = _t101 & 0x00000001u;
|
|
/* 028ADCC4 */ if (_t102) goto L_028ADD18; else goto L_028ADCC8;
|
|
L_028ADCC8: ; // 0x28adcc8
|
|
/* 028ADCC8 */ _t103 = cpu->r[30] + 0x00000004u;
|
|
/* 028ADCC8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028ADCCC */ Gambit_fn_028AA118(cpu);
|
|
/* 028ADCD0 */ cpu->r[7] = cpu->r[3];
|
|
/* 028ADCD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028ADCD4 */ _t104 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADCD4 */ _t105 = _t104 & 0x00000001u;
|
|
/* 028ADCD4 */ if (_t105) goto L_028ADCF4; else goto L_028ADCD8;
|
|
L_028ADCD8: ; // 0x28adcd8
|
|
/* 028ADCD8 */ _t106 = cpu->r[30] + 0x00000004u;
|
|
/* 028ADCD8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t106);
|
|
/* 028ADCDC */ _t107 = cpu->r[8] + 0x00000030u;
|
|
/* 028ADCDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028ADCE0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028ADCE4 */ _t108 = cpu->r[7] + cpu->r[0];
|
|
/* 028ADCE4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028ADCE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028ADCEC */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADCEC */ _t110 = _t109 & 0x00000001u;
|
|
/* 028ADCEC */ if (_t110) goto L_028ADCF0; else goto L_028ADD68;
|
|
L_028ADCF0: ; // 0x28adcf0
|
|
/* 028ADCF0 */ goto L_028ADDE0;
|
|
L_028ADCF4: ; // 0x28adcf4
|
|
/* 028ADCF4 */ _t111 = cpu->r[30] + 0x00000000u;
|
|
/* 028ADCF4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028ADCF8 */ cpu->r[7] = cpu->r[31];
|
|
/* 028ADCFC */ cpu->r[6] = 0x10140000u;
|
|
/* 028ADD00 */ _t112 = cpu->r[30] + 0x00000004u;
|
|
/* 028ADD00 */ cpu->r[3] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028ADD04 */ cpu->r[4] = 0x00000015u;
|
|
/* 028ADD08 */ cpu->r[6] = cpu->r[6] + 0xFFFF8298u;
|
|
/* 028ADD0C */ _t113 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028ADD0C */ _t114 = _t113 & 0x00000001u;
|
|
/* 028ADD0C */ if (_t114) goto L_028ADD10; // else: addr-0 trap, fall-through
|
|
L_028ADD10: ; // 0x28add10
|
|
/* 028ADD10 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028ADD14 */ goto L_028ADDE0;
|
|
L_028ADD18: ; // 0x28add18
|
|
/* 028ADD18 */ _t115 = cpu->r[30] + 0x00000000u;
|
|
/* 028ADD18 */ cpu->r[3] = rbrew_read32(cpu->mem, _t115);
|
|
/* 028ADD1C */ Gambit_fn_028ABC70(cpu);
|
|
/* 028ADD20 */ cpu->r[0] = cpu->r[3];
|
|
/* 028ADD20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ADD24 */ _t116 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADD24 */ _t117 = _t116 & 0x00000001u;
|
|
/* 028ADD24 */ if (_t117) goto L_028ADD44; else goto L_028ADD28;
|
|
L_028ADD28: ; // 0x28add28
|
|
/* 028ADD28 */ _t118 = cpu->r[30] + 0x00000000u;
|
|
/* 028ADD28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028ADD2C */ _t119 = cpu->r[10] + 0x00000034u;
|
|
/* 028ADD2C */ cpu->r[6] = rbrew_read32(cpu->mem, _t119);
|
|
/* 028ADD30 */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028ADD34 */ _t120 = cpu->r[5] + cpu->r[6];
|
|
/* 028ADD34 */ cpu->r[31] = rbrew_read32(cpu->mem, _t120);
|
|
/* 028ADD38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028ADD3C */ _t121 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADD3C */ _t122 = _t121 & 0x00000001u;
|
|
/* 028ADD3C */ if (_t122) goto L_028ADD40; else goto L_028ADD68;
|
|
L_028ADD40: ; // 0x28add40
|
|
/* 028ADD40 */ goto L_028ADDE0;
|
|
L_028ADD44: ; // 0x28add44
|
|
/* 028ADD44 */ _t123 = cpu->r[30] + 0x00000000u;
|
|
/* 028ADD44 */ cpu->r[5] = rbrew_read32(cpu->mem, _t123);
|
|
/* 028ADD48 */ cpu->r[7] = cpu->r[31];
|
|
/* 028ADD4C */ cpu->r[6] = 0x10140000u;
|
|
/* 028ADD50 */ _t124 = cpu->r[30] + 0x00000004u;
|
|
/* 028ADD50 */ cpu->r[3] = rbrew_read32(cpu->mem, _t124);
|
|
/* 028ADD54 */ cpu->r[4] = 0x00000015u;
|
|
/* 028ADD58 */ cpu->r[6] = cpu->r[6] + 0xFFFF827Cu;
|
|
/* 028ADD5C */ _t125 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028ADD5C */ _t126 = _t125 & 0x00000001u;
|
|
/* 028ADD5C */ if (_t126) goto L_028ADD60; // else: addr-0 trap, fall-through
|
|
L_028ADD60: ; // 0x28add60
|
|
/* 028ADD60 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028ADD64 */ goto L_028ADDE0;
|
|
L_028ADD68: ; // 0x28add68
|
|
/* 028ADD68 */ _t127 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028ADD68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028ADD6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ADD70 */ _t128 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADD70 */ _t129 = _t128 & 0x00000001u;
|
|
/* 028ADD70 */ if (_t129) goto L_028ADD74; else goto L_028ADDE0;
|
|
L_028ADD74: ; // 0x28add74
|
|
/* 028ADD74 */ _t130 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028ADD74 */ cpu->r[8] = rbrew_read32(cpu->mem, _t130);
|
|
/* 028ADD78 */ cpu->r[10] = cpu->r[8] + cpu->r[28];
|
|
/* 028ADD7C */ _t131 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028ADD7C */ cpu->r[23] = rbrew_read32(cpu->mem, _t131);
|
|
/* 028ADD80 */ _t132 = cpu->r[10] + 0x00000008u;
|
|
/* 028ADD80 */ cpu->r[24] = rbrew_read32(cpu->mem, _t132);
|
|
/* 028ADD84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[23]);
|
|
/* 028ADD88 */ _t133 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028ADD88 */ _t134 = _t133 & 0x00000001u;
|
|
/* 028ADD88 */ if (_t134) goto L_028ADDE0; else goto L_028ADD8C;
|
|
L_028ADD8C: ; // 0x28add8c
|
|
/* 028ADD8C */ cpu->r[25] = (uint32_t)((int32_t)cpu->r[24] * (int32_t)0x00000018u);
|
|
/* 028ADD90 */ cpu->r[26] = 0x00000001u;
|
|
L_028ADD94: ; // 0x28add94
|
|
/* 028ADD94 */ _t135 = cpu->r[30] + 0x00000030u;
|
|
/* 028ADD94 */ cpu->r[4] = rbrew_read32(cpu->mem, _t135);
|
|
/* 028ADD98 */ cpu->r[11] = cpu->r[4] + cpu->r[25];
|
|
/* 028ADD9C */ _t136 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028ADD9C */ cpu->r[29] = rbrew_read32(cpu->mem, _t136);
|
|
/* 028ADDA0 */ cpu->r[11] = cpu->r[29];
|
|
/* 028ADDA4 */ _t137 = cpu->r[11] + 0x00000000u;
|
|
/* 028ADDA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t137);
|
|
/* 028ADDA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ADDAC */ _t138 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADDAC */ _t139 = _t138 & 0x00000001u;
|
|
/* 028ADDAC */ if (_t139) goto L_028ADDB0; else goto L_028ADDD0;
|
|
L_028ADDB0: ; // 0x28addb0
|
|
/* 028ADDB0 */ _t140 = cpu->r[11] + 0x00000008u;
|
|
/* 028ADDB0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t140);
|
|
/* 028ADDB4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADDB8 */ Gambit_fn_028AD678(cpu);
|
|
/* 028ADDBC */ cpu->r[4] = cpu->r[3];
|
|
/* 028ADDC0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028ADDC4 */ Gambit_fn_028A66E0(cpu);
|
|
/* 028ADDC8 */ _t141 = cpu->r[29] + 0x00000000u;
|
|
/* 028ADDC8 */ rbrew_write32(cpu->mem, _t141, cpu->r[26]);
|
|
/* 028ADDCC */ _t142 = cpu->r[29] + 0x00000008u;
|
|
/* 028ADDCC */ rbrew_write32(cpu->mem, _t142, cpu->r[3]);
|
|
L_028ADDD0: ; // 0x28addd0
|
|
/* 028ADDD0 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028ADDD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[23]);
|
|
/* 028ADDD8 */ cpu->r[25] = cpu->r[25] + 0x00000018u;
|
|
/* 028ADDDC */ _t143 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028ADDDC */ _t144 = _t143 & 0x00000001u;
|
|
/* 028ADDDC */ if (_t144) goto L_028ADDE0; else goto L_028ADD94;
|
|
L_028ADDE0: ; // 0x28adde0
|
|
/* 028ADDE0 */ _t145 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADDE0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t145);
|
|
/* 028ADDE4 */ _t146 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028ADDE4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t146);
|
|
/* 028ADDE8 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 028ADDEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[6]);
|
|
/* 028ADDF0 */ cpu->r[28] = cpu->r[28] + 0x00000010u;
|
|
/* 028ADDF4 */ _t147 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADDF4 */ _t148 = _t147 & 0x00000001u;
|
|
/* 028ADDF4 */ if (_t148) goto L_028ADC98; else goto L_028ADDF8;
|
|
L_028ADDF8: ; // 0x28addf8
|
|
/* 028ADDF8 */ _t149 = cpu->r[9] + 0x00000024u;
|
|
/* 028ADDF8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t149);
|
|
/* 028ADDFC */ cpu->r[28] = 0x00000000u;
|
|
/* 028ADE00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 028ADE04 */ _t150 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADE04 */ _t151 = _t150 & 0x00000001u;
|
|
/* 028ADE04 */ if (_t151) goto L_028ADE08; else goto L_028ADEC0;
|
|
L_028ADE08: ; // 0x28ade08
|
|
/* 028ADE08 */ cpu->r[29] = 0x00000000u;
|
|
/* 028ADE0C */ cpu->r[31] = cpu->r[29];
|
|
L_028ADE10: ; // 0x28ade10
|
|
/* 028ADE10 */ _t152 = cpu->r[30] + 0x00000034u;
|
|
/* 028ADE10 */ cpu->r[8] = rbrew_read32(cpu->mem, _t152);
|
|
/* 028ADE14 */ cpu->r[7] = cpu->r[8] + cpu->r[29];
|
|
/* 028ADE18 */ _t153 = cpu->r[7] + 0x00000004u;
|
|
/* 028ADE18 */ cpu->r[4] = rbrew_read32(cpu->mem, _t153);
|
|
/* 028ADE1C */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADE20 */ Gambit_fn_028AD678(cpu);
|
|
/* 028ADE24 */ _t154 = cpu->r[7] + 0x00000004u;
|
|
/* 028ADE24 */ rbrew_write32(cpu->mem, _t154, cpu->r[3]);
|
|
/* 028ADE28 */ _t155 = cpu->r[30] + 0x00000034u;
|
|
/* 028ADE28 */ cpu->r[9] = rbrew_read32(cpu->mem, _t155);
|
|
/* 028ADE2C */ cpu->r[7] = cpu->r[9] + cpu->r[29];
|
|
/* 028ADE30 */ _t156 = cpu->r[7] + 0x00000008u;
|
|
/* 028ADE30 */ cpu->r[10] = rbrew_read32(cpu->mem, _t156);
|
|
/* 028ADE34 */ _t157 = cpu->r[30] + 0x00000018u;
|
|
/* 028ADE34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t157);
|
|
/* 028ADE38 */ cpu->r[10] = cpu->r[10] + cpu->r[0];
|
|
/* 028ADE3C */ _t158 = cpu->r[7] + 0x00000008u;
|
|
/* 028ADE3C */ rbrew_write32(cpu->mem, _t158, cpu->r[10]);
|
|
/* 028ADE40 */ _t159 = cpu->r[30] + 0x00000034u;
|
|
/* 028ADE40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t159);
|
|
/* 028ADE44 */ cpu->r[7] = cpu->r[12] + cpu->r[29];
|
|
/* 028ADE48 */ _t160 = cpu->r[7] + 0x00000010u;
|
|
/* 028ADE48 */ cpu->r[9] = rbrew_read32(cpu->mem, _t160);
|
|
/* 028ADE4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 028ADE50 */ _t161 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADE50 */ _t162 = _t161 & 0x00000001u;
|
|
/* 028ADE50 */ if (_t162) goto L_028ADE54; else goto L_028ADE74;
|
|
L_028ADE54: ; // 0x28ade54
|
|
/* 028ADE54 */ _t163 = cpu->r[7] + 0x00000010u;
|
|
/* 028ADE54 */ rbrew_write32(cpu->mem, _t163, cpu->r[31]);
|
|
/* 028ADE58 */ _t164 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADE58 */ cpu->r[8] = rbrew_read32(cpu->mem, _t164);
|
|
/* 028ADE5C */ _t165 = cpu->r[8] + 0x00000024u;
|
|
/* 028ADE5C */ cpu->r[9] = rbrew_read32(cpu->mem, _t165);
|
|
/* 028ADE60 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028ADE64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[9]);
|
|
/* 028ADE68 */ cpu->r[29] = cpu->r[29] + 0x00000014u;
|
|
/* 028ADE6C */ _t166 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADE6C */ _t167 = _t166 & 0x00000001u;
|
|
/* 028ADE6C */ if (_t167) goto L_028ADE10; else goto L_028ADE70;
|
|
L_028ADE70: ; // 0x28ade70
|
|
/* 028ADE70 */ goto L_028ADEC0;
|
|
L_028ADE74: ; // 0x28ade74
|
|
/* 028ADE74 */ _t168 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028ADE74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t168);
|
|
/* 028ADE78 */ cpu->r[4] = cpu->r[9] + cpu->r[0];
|
|
/* 028ADE7C */ _t169 = cpu->r[7] + 0x00000010u;
|
|
/* 028ADE7C */ rbrew_write32(cpu->mem, _t169, cpu->r[4]);
|
|
/* 028ADE80 */ _t170 = cpu->r[30] + 0x00000034u;
|
|
/* 028ADE80 */ cpu->r[7] = rbrew_read32(cpu->mem, _t170);
|
|
/* 028ADE84 */ _t171 = cpu->r[30] + 0x00000004u;
|
|
/* 028ADE84 */ cpu->r[3] = rbrew_read32(cpu->mem, _t171);
|
|
/* 028ADE88 */ cpu->r[6] = cpu->r[7] + cpu->r[29];
|
|
/* 028ADE8C */ _t172 = cpu->r[6] + 0x00000010u;
|
|
/* 028ADE8C */ cpu->r[5] = rbrew_read32(cpu->mem, _t172);
|
|
/* 028ADE90 */ cpu->r[27] = cpu->r[5] + 0x00000004u;
|
|
/* 028ADE94 */ Gambit_fn_028AA0E8(cpu);
|
|
/* 028ADE98 */ _t173 = cpu->r[3] + 0x00000008u;
|
|
/* 028ADE98 */ cpu->r[5] = rbrew_read32(cpu->mem, _t173);
|
|
/* 028ADE9C */ cpu->r[3] = cpu->r[30];
|
|
/* 028ADEA0 */ cpu->r[4] = cpu->r[27];
|
|
/* 028ADEA4 */ Gambit_fn_028AD690(cpu);
|
|
/* 028ADEA8 */ _t174 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADEA8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t174);
|
|
/* 028ADEAC */ _t175 = cpu->r[8] + 0x00000024u;
|
|
/* 028ADEAC */ cpu->r[9] = rbrew_read32(cpu->mem, _t175);
|
|
/* 028ADEB0 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028ADEB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[9]);
|
|
/* 028ADEB8 */ cpu->r[29] = cpu->r[29] + 0x00000014u;
|
|
/* 028ADEBC */ _t176 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADEBC */ _t177 = _t176 & 0x00000001u;
|
|
/* 028ADEBC */ if (_t177) goto L_028ADE10; else goto L_028ADEC0;
|
|
L_028ADEC0: ; // 0x28adec0
|
|
/* 028ADEC0 */ /* nop */
|
|
/* 028ADEC4 */ _t178 = cpu->r[1] + 0x00000034u;
|
|
/* 028ADEC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t178);
|
|
/* 028ADEC8 */ cpu->lr = cpu->r[0];
|
|
/* 028ADECC */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028ADED0 */ return;
|
|
}
|
|
|
|
// fn_028ADED4 @ 0x28aded4
|
|
void Gambit_fn_028ADED4(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_028ADED4: ; // 0x28aded4
|
|
/* 028ADED4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028ADED4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ADED4 */ cpu->r[1] = _t0;
|
|
/* 028ADED8 */ /* nop */
|
|
/* 028ADEDC */ cpu->r[0] = cpu->lr;
|
|
/* 028ADEE0 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028ADEE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028ADEE4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028ADEE8 */ _t2 = cpu->r[31] + 0x00000008u;
|
|
/* 028ADEE8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028ADEEC */ _t3 = cpu->r[11] + 0x00000004u;
|
|
/* 028ADEEC */ cpu->r[8] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028ADEF0 */ cpu->r[27] = 0x00000000u;
|
|
/* 028ADEF4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[8]);
|
|
/* 028ADEF8 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADEF8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028ADEF8 */ if (_t5) goto L_028ADEFC; else goto L_028ADFD0;
|
|
L_028ADEFC: ; // 0x28adefc
|
|
/* 028ADEFC */ cpu->r[29] = 0x00000001u;
|
|
/* 028ADF00 */ cpu->r[28] = 0x00000000u;
|
|
L_028ADF04: ; // 0x28adf04
|
|
/* 028ADF04 */ _t6 = cpu->r[31] + 0x00000018u;
|
|
/* 028ADF04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028ADF08 */ cpu->r[30] = cpu->r[10] + cpu->r[28];
|
|
/* 028ADF0C */ _t7 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028ADF0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028ADF10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ADF14 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADF14 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028ADF14 */ if (_t9) goto L_028ADFC0; else goto L_028ADF18;
|
|
L_028ADF18: ; // 0x28adf18
|
|
/* 028ADF18 */ _t10 = cpu->r[30] + 0x00000010u;
|
|
/* 028ADF18 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028ADF1C */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x00000005u, 0x00000000u, 0x0000001Au);
|
|
/* 028ADF20 */ cpu->r[3] = cpu->r[10] + cpu->r[5];
|
|
/* 028ADF24 */ Gambit_fn_028A8CC0(cpu);
|
|
/* 028ADF28 */ cpu->r[12] = cpu->r[3];
|
|
/* 028ADF28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028ADF2C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADF2C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028ADF2C */ if (_t12) goto L_028ADFB8; else goto L_028ADF30;
|
|
L_028ADF30: ; // 0x28adf30
|
|
/* 028ADF30 */ _t13 = cpu->r[12] + 0x00000010u;
|
|
/* 028ADF30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028ADF34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ADF38 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADF38 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028ADF38 */ if (_t15) goto L_028ADFB8; else goto L_028ADF3C;
|
|
L_028ADF3C: ; // 0x28adf3c
|
|
/* 028ADF3C */ _t16 = cpu->r[12] + 0x00000014u;
|
|
/* 028ADF3C */ cpu->r[8] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028ADF40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028ADF44 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028ADF48 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADF48 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028ADF48 */ if (_t18) goto L_028ADF64; else goto L_028ADF4C;
|
|
L_028ADF4C: ; // 0x28adf4c
|
|
/* 028ADF4C */ _t19 = cpu->r[31] + 0x00000004u;
|
|
/* 028ADF4C */ cpu->r[6] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028ADF50 */ _t20 = cpu->r[6] + 0x00000030u;
|
|
/* 028ADF50 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028ADF54 */ _t21 = cpu->r[11] + cpu->r[10];
|
|
/* 028ADF54 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028ADF58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028ADF5C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADF5C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028ADF5C */ if (_t23) goto L_028ADF60; else goto L_028ADF78;
|
|
L_028ADF60: ; // 0x28adf60
|
|
/* 028ADF60 */ goto L_028ADFB8;
|
|
L_028ADF64: ; // 0x28adf64
|
|
/* 028ADF64 */ _t24 = cpu->r[31] + 0x00000000u;
|
|
/* 028ADF64 */ cpu->r[9] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028ADF68 */ _t25 = cpu->r[9] + 0x00000034u;
|
|
/* 028ADF68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028ADF6C */ _t26 = cpu->r[11] + cpu->r[0];
|
|
/* 028ADF6C */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028ADF70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028ADF74 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADF74 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028ADF74 */ if (_t28) goto L_028ADFB8; else goto L_028ADF78;
|
|
L_028ADF78: ; // 0x28adf78
|
|
/* 028ADF78 */ _t29 = cpu->r[12] + 0x0000004Cu;
|
|
/* 028ADF78 */ cpu->r[5] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028ADF7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028ADF80 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADF80 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028ADF80 */ if (_t31) goto L_028ADF84; else goto L_028ADFB8;
|
|
L_028ADF84: ; // 0x28adf84
|
|
/* 028ADF84 */ _t32 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028ADF84 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028ADF88 */ cpu->r[7] = cpu->r[30];
|
|
/* 028ADF8C */ _t33 = cpu->r[7] + 0x00000000u;
|
|
/* 028ADF8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028ADF90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028ADF94 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ADF94 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028ADF94 */ if (_t35) goto L_028ADF98; else goto L_028ADFB8;
|
|
L_028ADF98: ; // 0x28adf98
|
|
/* 028ADF98 */ _t36 = cpu->r[7] + 0x00000008u;
|
|
/* 028ADF98 */ cpu->r[4] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028ADF9C */ cpu->r[3] = cpu->r[31];
|
|
/* 028ADFA0 */ Gambit_fn_028AD678(cpu);
|
|
/* 028ADFA4 */ cpu->r[4] = cpu->r[3];
|
|
/* 028ADFA8 */ cpu->r[3] = cpu->r[12];
|
|
/* 028ADFAC */ Gambit_fn_028A66E0(cpu);
|
|
/* 028ADFB0 */ _t37 = cpu->r[30] + 0x00000000u;
|
|
/* 028ADFB0 */ rbrew_write32(cpu->mem, _t37, cpu->r[29]);
|
|
/* 028ADFB4 */ _t38 = cpu->r[30] + 0x00000008u;
|
|
/* 028ADFB4 */ rbrew_write32(cpu->mem, _t38, cpu->r[3]);
|
|
L_028ADFB8: ; // 0x28adfb8
|
|
/* 028ADFB8 */ _t39 = cpu->r[31] + 0x00000008u;
|
|
/* 028ADFB8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028ADFBC */ _t40 = cpu->r[11] + 0x00000004u;
|
|
/* 028ADFBC */ cpu->r[8] = rbrew_read32(cpu->mem, _t40);
|
|
L_028ADFC0: ; // 0x28adfc0
|
|
/* 028ADFC0 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 028ADFC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[8]);
|
|
/* 028ADFC8 */ cpu->r[28] = cpu->r[28] + 0x00000020u;
|
|
/* 028ADFCC */ _t41 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028ADFCC */ _t42 = _t41 & 0x00000001u;
|
|
/* 028ADFCC */ if (_t42) goto L_028ADF04; else goto L_028ADFD0;
|
|
L_028ADFD0: ; // 0x28adfd0
|
|
/* 028ADFD0 */ /* nop */
|
|
/* 028ADFD4 */ _t43 = cpu->r[1] + 0x00000024u;
|
|
/* 028ADFD4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028ADFD8 */ cpu->lr = cpu->r[0];
|
|
/* 028ADFDC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028ADFE0 */ return;
|
|
}
|
|
|
|
// fn_028ADFE4 @ 0x28adfe4
|
|
void Gambit_fn_028ADFE4(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_028ADFE4: ; // 0x28adfe4
|
|
/* 028ADFE4 */ cpu->r[0] = cpu->lr;
|
|
/* 028ADFE8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028ADFE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ADFE8 */ cpu->r[1] = _t0;
|
|
/* 028ADFEC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ADFEC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028ADFF0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028ADFF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028ADFF4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028ADFF8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028ADFF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028ADFFC */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 028ADFFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AE000 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AE004 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE004 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028AE004 */ if (_t6) goto L_028AE0B8; else goto L_028AE008;
|
|
L_028AE008: ; // 0x28ae008
|
|
/* 028AE008 */ _t7 = cpu->r[10] + 0x00000000u;
|
|
/* 028AE008 */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AE00C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AE010 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE010 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028AE010 */ if (_t9) goto L_028AE014; else goto L_028AE08C;
|
|
L_028AE014: ; // 0x28ae014
|
|
/* 028AE014 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE018 */ Gambit_fn_028AD780(cpu);
|
|
/* 028AE01C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE020 */ Gambit_fn_028AD8CC(cpu);
|
|
/* 028AE024 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE028 */ Gambit_fn_028ADA1C(cpu);
|
|
/* 028AE02C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE030 */ Gambit_fn_028ADED4(cpu);
|
|
/* 028AE034 */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028AE034 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028AE038 */ cpu->r[30] = 0x00000000u;
|
|
/* 028AE03C */ _t11 = cpu->r[31] + 0x00000058u;
|
|
/* 028AE03C */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 028AE040 */ _t12 = cpu->r[12] + 0x00000004u;
|
|
/* 028AE040 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AE044 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[7]);
|
|
/* 028AE048 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE048 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AE048 */ if (_t14) goto L_028AE04C; else goto L_028AE08C;
|
|
L_028AE04C: ; // 0x28ae04c
|
|
/* 028AE04C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE050 */ cpu->r[4] = cpu->r[30];
|
|
/* 028AE054 */ Gambit_fn_028AD640(cpu);
|
|
/* 028AE058 */ cpu->r[4] = cpu->r[3];
|
|
/* 028AE05C */ _t15 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE05C */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE060 */ Gambit_fn_028A7CAC(cpu);
|
|
/* 028AE064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 028AE068 */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 028AE068 */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AE06C */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE06C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AE06C */ if (_t18) goto L_028AE070; else goto L_028AE07C;
|
|
L_028AE070: ; // 0x28ae070
|
|
/* 028AE070 */ _t19 = cpu->r[31] + 0x00000058u;
|
|
/* 028AE070 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AE074 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028AE078 */ _t20 = cpu->r[31] + 0x00000058u;
|
|
/* 028AE078 */ rbrew_write32(cpu->mem, _t20, cpu->r[8]);
|
|
L_028AE07C: ; // 0x28ae07c
|
|
/* 028AE07C */ _t21 = cpu->r[9] + 0x00000004u;
|
|
/* 028AE07C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AE080 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028AE084 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028AE088 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE088 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AE088 */ if (_t23) goto L_028AE04C; else goto L_028AE08C;
|
|
L_028AE08C: ; // 0x28ae08c
|
|
/* 028AE08C */ _t24 = cpu->r[31] + 0x00000060u;
|
|
/* 028AE08C */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AE090 */ _t25 = cpu->r[12] + 0x00000024u;
|
|
/* 028AE090 */ cpu->r[7] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AE094 */ cpu->ctr = cpu->r[7];
|
|
/* 028AE098 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE09C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AE0A0 */ _t26 = cpu->r[31] + 0x00000008u;
|
|
/* 028AE0A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AE0A4 */ _t27 = cpu->r[10] + 0x00000000u;
|
|
/* 028AE0A4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AE0A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AE0AC */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE0AC */ _t29 = _t28 & 0x00000001u;
|
|
/* 028AE0AC */ if (_t29) goto L_028AE0B0; else goto L_028AE0B8;
|
|
L_028AE0B0: ; // 0x28ae0b0
|
|
/* 028AE0B0 */ cpu->r[0] = 0x00000001u;
|
|
/* 028AE0B4 */ _t30 = cpu->r[10] + 0x00000000u;
|
|
/* 028AE0B4 */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
L_028AE0B8: ; // 0x28ae0b8
|
|
/* 028AE0B8 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE0B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AE0BC */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE0BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AE0C0 */ cpu->lr = cpu->r[0];
|
|
/* 028AE0C4 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE0C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028AE0C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AE0CC */ return;
|
|
}
|
|
|
|
// fn_028ADFE8 @ 0x28adfe8
|
|
void Gambit_fn_028ADFE8(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_028ADFE8: ; // 0x28adfe8
|
|
/* 028ADFE8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028ADFE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028ADFE8 */ cpu->r[1] = _t0;
|
|
/* 028ADFEC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ADFEC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028ADFF0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028ADFF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028ADFF4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028ADFF8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028ADFF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028ADFFC */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 028ADFFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AE000 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AE004 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE004 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028AE004 */ if (_t6) goto L_028AE0B8; else goto L_028AE008;
|
|
L_028AE008: ; // 0x28ae008
|
|
/* 028AE008 */ _t7 = cpu->r[10] + 0x00000000u;
|
|
/* 028AE008 */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AE00C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AE010 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE010 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028AE010 */ if (_t9) goto L_028AE014; else goto L_028AE08C;
|
|
L_028AE014: ; // 0x28ae014
|
|
/* 028AE014 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE018 */ Gambit_fn_028AD780(cpu);
|
|
/* 028AE01C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE020 */ Gambit_fn_028AD8CC(cpu);
|
|
/* 028AE024 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE028 */ Gambit_fn_028ADA1C(cpu);
|
|
/* 028AE02C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE030 */ Gambit_fn_028ADED4(cpu);
|
|
/* 028AE034 */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 028AE034 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028AE038 */ cpu->r[30] = 0x00000000u;
|
|
/* 028AE03C */ _t11 = cpu->r[31] + 0x00000058u;
|
|
/* 028AE03C */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 028AE040 */ _t12 = cpu->r[12] + 0x00000004u;
|
|
/* 028AE040 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AE044 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[7]);
|
|
/* 028AE048 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE048 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AE048 */ if (_t14) goto L_028AE04C; else goto L_028AE08C;
|
|
L_028AE04C: ; // 0x28ae04c
|
|
/* 028AE04C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE050 */ cpu->r[4] = cpu->r[30];
|
|
/* 028AE054 */ Gambit_fn_028AD640(cpu);
|
|
/* 028AE058 */ cpu->r[4] = cpu->r[3];
|
|
/* 028AE05C */ _t15 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE05C */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE060 */ Gambit_fn_028A7CAC(cpu);
|
|
/* 028AE064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 028AE068 */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 028AE068 */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AE06C */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE06C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AE06C */ if (_t18) goto L_028AE070; else goto L_028AE07C;
|
|
L_028AE070: ; // 0x28ae070
|
|
/* 028AE070 */ _t19 = cpu->r[31] + 0x00000058u;
|
|
/* 028AE070 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AE074 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028AE078 */ _t20 = cpu->r[31] + 0x00000058u;
|
|
/* 028AE078 */ rbrew_write32(cpu->mem, _t20, cpu->r[8]);
|
|
L_028AE07C: ; // 0x28ae07c
|
|
/* 028AE07C */ _t21 = cpu->r[9] + 0x00000004u;
|
|
/* 028AE07C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AE080 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028AE084 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028AE088 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE088 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AE088 */ if (_t23) goto L_028AE04C; else goto L_028AE08C;
|
|
L_028AE08C: ; // 0x28ae08c
|
|
/* 028AE08C */ _t24 = cpu->r[31] + 0x00000060u;
|
|
/* 028AE08C */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AE090 */ _t25 = cpu->r[12] + 0x00000024u;
|
|
/* 028AE090 */ cpu->r[7] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AE094 */ cpu->ctr = cpu->r[7];
|
|
/* 028AE098 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE09C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AE0A0 */ _t26 = cpu->r[31] + 0x00000008u;
|
|
/* 028AE0A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AE0A4 */ _t27 = cpu->r[10] + 0x00000000u;
|
|
/* 028AE0A4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AE0A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AE0AC */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE0AC */ _t29 = _t28 & 0x00000001u;
|
|
/* 028AE0AC */ if (_t29) goto L_028AE0B0; else goto L_028AE0B8;
|
|
L_028AE0B0: ; // 0x28ae0b0
|
|
/* 028AE0B0 */ cpu->r[0] = 0x00000001u;
|
|
/* 028AE0B4 */ _t30 = cpu->r[10] + 0x00000000u;
|
|
/* 028AE0B4 */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
L_028AE0B8: ; // 0x28ae0b8
|
|
/* 028AE0B8 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE0B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AE0BC */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE0BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AE0C0 */ cpu->lr = cpu->r[0];
|
|
/* 028AE0C4 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE0C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028AE0C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AE0CC */ return;
|
|
}
|
|
|
|
// fn_028AE0D0 @ 0x28ae0d0
|
|
void Gambit_fn_028AE0D0(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_028AE0D0: ; // 0x28ae0d0
|
|
/* 028AE0D0 */ cpu->r[0] = cpu->lr;
|
|
/* 028AE0D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AE0D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE0D4 */ cpu->r[1] = _t0;
|
|
/* 028AE0D8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE0D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AE0DC */ cpu->r[31] = cpu->r[3];
|
|
/* 028AE0E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE0E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028AE0E4 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE0E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AE0E8 */ _t4 = cpu->r[31] + 0x00000004u;
|
|
/* 028AE0E8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AE0EC */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028AE0EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE0F0 */ cpu->r[11] = 0x00000000u;
|
|
/* 028AE0F4 */ _t6 = cpu->r[9] + 0x00000004u;
|
|
/* 028AE0F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AE0F8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028AE0FC */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE0FC */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028AE100 */ _t8 = cpu->r[12] + 0x00000008u;
|
|
/* 028AE100 */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AE104 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE108 */ Gambit_fn_028B850C(cpu);
|
|
/* 028AE10C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE10C */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AE110 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AE114 */ cpu->r[4] = cpu->r[3];
|
|
/* 028AE118 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE118 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AE118 */ if (_t11) goto L_028AE124; else goto L_028AE11C;
|
|
L_028AE11C: ; // 0x28ae11c
|
|
/* 028AE11C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028AE120 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE120 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AE120 */ if (_t13) goto L_028AE124; else goto L_028AE140;
|
|
L_028AE124: ; // 0x28ae124
|
|
/* 028AE124 */ _t14 = cpu->r[30] + 0x00000010u;
|
|
/* 028AE124 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AE128 */ _t15 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE128 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE12C */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 028AE12C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028AE130 */ cpu->r[9] = 0x00000001u;
|
|
/* 028AE134 */ _t17 = cpu->r[12] + 0x00000000u;
|
|
/* 028AE134 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028AE138 */ _t18 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028AE138 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[9]);
|
|
/* 028AE13C */ goto L_028AE1A8;
|
|
L_028AE140: ; // 0x28ae140
|
|
/* 028AE140 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE144 */ Gambit_fn_028B84B0(cpu);
|
|
/* 028AE148 */ _t19 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AE148 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AE14C */ _t20 = cpu->r[31] + 0x00000038u;
|
|
/* 028AE14C */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 028AE150 */ _t21 = cpu->r[3] + 0x00000010u;
|
|
/* 028AE150 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AE154 */ _t22 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028AE154 */ rbrew_write32(cpu->mem, _t22, cpu->r[12]);
|
|
/* 028AE158 */ _t23 = cpu->r[3] + 0x00000020u;
|
|
/* 028AE158 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AE15C */ _t24 = cpu->r[31] + 0x00000040u;
|
|
/* 028AE15C */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028AE160 */ _t25 = cpu->r[3] + 0x00000028u;
|
|
/* 028AE160 */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AE164 */ _t26 = cpu->r[31] + 0x00000044u;
|
|
/* 028AE164 */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 028AE168 */ _t27 = cpu->r[3] + 0x00000014u;
|
|
/* 028AE168 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AE16C */ _t28 = cpu->r[31] + 0x00000048u;
|
|
/* 028AE16C */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 028AE170 */ _t29 = cpu->r[3] + 0x00000018u;
|
|
/* 028AE170 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AE174 */ _t30 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028AE174 */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
/* 028AE178 */ _t31 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028AE178 */ cpu->r[10] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AE17C */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE17C */ cpu->r[4] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AE180 */ _t33 = cpu->r[31] + 0x00000050u;
|
|
/* 028AE180 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028AE184 */ _t34 = cpu->r[3] + 0x00000024u;
|
|
/* 028AE184 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028AE188 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE18C */ cpu->r[5] = 0x00000000u;
|
|
/* 028AE190 */ _t35 = cpu->r[31] + 0x00000054u;
|
|
/* 028AE190 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
/* 028AE194 */ Gambit_fn_028AD388(cpu);
|
|
/* 028AE198 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE19C */ Gambit_fn_028ADFE4(cpu);
|
|
/* 028AE1A0 */ cpu->r[9] = 0x00000001u;
|
|
/* 028AE1A4 */ _t36 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028AE1A4 */ rbrew_write8(cpu->mem, _t36, (uint8_t)cpu->r[9]);
|
|
L_028AE1A8: ; // 0x28ae1a8
|
|
/* 028AE1A8 */ _t37 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE1A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AE1AC */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE1AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028AE1B0 */ cpu->lr = cpu->r[0];
|
|
/* 028AE1B4 */ _t39 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE1B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AE1B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AE1BC */ return;
|
|
}
|
|
|
|
// fn_028AE0D4 @ 0x28ae0d4
|
|
void Gambit_fn_028AE0D4(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_028AE0D4: ; // 0x28ae0d4
|
|
/* 028AE0D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AE0D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE0D4 */ cpu->r[1] = _t0;
|
|
/* 028AE0D8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE0D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AE0DC */ cpu->r[31] = cpu->r[3];
|
|
/* 028AE0E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE0E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028AE0E4 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE0E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028AE0E8 */ _t4 = cpu->r[31] + 0x00000004u;
|
|
/* 028AE0E8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AE0EC */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028AE0EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE0F0 */ cpu->r[11] = 0x00000000u;
|
|
/* 028AE0F4 */ _t6 = cpu->r[9] + 0x00000004u;
|
|
/* 028AE0F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AE0F8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028AE0FC */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE0FC */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028AE100 */ _t8 = cpu->r[12] + 0x00000008u;
|
|
/* 028AE100 */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AE104 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE108 */ Gambit_fn_028B850C(cpu);
|
|
/* 028AE10C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE10C */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AE110 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AE114 */ cpu->r[4] = cpu->r[3];
|
|
/* 028AE118 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE118 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AE118 */ if (_t11) goto L_028AE124; else goto L_028AE11C;
|
|
L_028AE11C: ; // 0x28ae11c
|
|
/* 028AE11C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028AE120 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE120 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AE120 */ if (_t13) goto L_028AE124; else goto L_028AE140;
|
|
L_028AE124: ; // 0x28ae124
|
|
/* 028AE124 */ _t14 = cpu->r[30] + 0x00000010u;
|
|
/* 028AE124 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028AE128 */ _t15 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE128 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE12C */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 028AE12C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028AE130 */ cpu->r[9] = 0x00000001u;
|
|
/* 028AE134 */ _t17 = cpu->r[12] + 0x00000000u;
|
|
/* 028AE134 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028AE138 */ _t18 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028AE138 */ rbrew_write8(cpu->mem, _t18, (uint8_t)cpu->r[9]);
|
|
/* 028AE13C */ goto L_028AE1A8;
|
|
L_028AE140: ; // 0x28ae140
|
|
/* 028AE140 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE144 */ Gambit_fn_028B84B0(cpu);
|
|
/* 028AE148 */ _t19 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AE148 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AE14C */ _t20 = cpu->r[31] + 0x00000038u;
|
|
/* 028AE14C */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 028AE150 */ _t21 = cpu->r[3] + 0x00000010u;
|
|
/* 028AE150 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AE154 */ _t22 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028AE154 */ rbrew_write32(cpu->mem, _t22, cpu->r[12]);
|
|
/* 028AE158 */ _t23 = cpu->r[3] + 0x00000020u;
|
|
/* 028AE158 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AE15C */ _t24 = cpu->r[31] + 0x00000040u;
|
|
/* 028AE15C */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028AE160 */ _t25 = cpu->r[3] + 0x00000028u;
|
|
/* 028AE160 */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AE164 */ _t26 = cpu->r[31] + 0x00000044u;
|
|
/* 028AE164 */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 028AE168 */ _t27 = cpu->r[3] + 0x00000014u;
|
|
/* 028AE168 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AE16C */ _t28 = cpu->r[31] + 0x00000048u;
|
|
/* 028AE16C */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 028AE170 */ _t29 = cpu->r[3] + 0x00000018u;
|
|
/* 028AE170 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AE174 */ _t30 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028AE174 */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
/* 028AE178 */ _t31 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028AE178 */ cpu->r[10] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AE17C */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE17C */ cpu->r[4] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AE180 */ _t33 = cpu->r[31] + 0x00000050u;
|
|
/* 028AE180 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
/* 028AE184 */ _t34 = cpu->r[3] + 0x00000024u;
|
|
/* 028AE184 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028AE188 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE18C */ cpu->r[5] = 0x00000000u;
|
|
/* 028AE190 */ _t35 = cpu->r[31] + 0x00000054u;
|
|
/* 028AE190 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
/* 028AE194 */ Gambit_fn_028AD388(cpu);
|
|
/* 028AE198 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE19C */ Gambit_fn_028ADFE4(cpu);
|
|
/* 028AE1A0 */ cpu->r[9] = 0x00000001u;
|
|
/* 028AE1A4 */ _t36 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028AE1A4 */ rbrew_write8(cpu->mem, _t36, (uint8_t)cpu->r[9]);
|
|
L_028AE1A8: ; // 0x28ae1a8
|
|
/* 028AE1A8 */ _t37 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE1A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AE1AC */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE1AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028AE1B0 */ cpu->lr = cpu->r[0];
|
|
/* 028AE1B4 */ _t39 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE1B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AE1B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AE1BC */ return;
|
|
}
|
|
|
|
// fn_028AE1C0 @ 0x28ae1c0
|
|
void Gambit_fn_028AE1C0(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_028AE1C0: ; // 0x28ae1c0
|
|
/* 028AE1C0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AE1C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE1C0 */ cpu->r[1] = _t0;
|
|
/* 028AE1C4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE1C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AE1C8 */ _t2 = cpu->r[3] + 0x00000008u;
|
|
/* 028AE1C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028AE1CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AE1D0 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE1D0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AE1D0 */ if (_t4) goto L_028AE264; else goto L_028AE1D4;
|
|
L_028AE1D4: ; // 0x28ae1d4
|
|
/* 028AE1D4 */ _t5 = cpu->r[3] + 0x00000018u;
|
|
/* 028AE1D4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE1D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AE1DC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE1DC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AE1DC */ if (_t7) goto L_028AE264; else goto L_028AE1E0;
|
|
L_028AE1E0: ; // 0x28ae1e0
|
|
/* 028AE1E0 */ _t8 = cpu->r[12] + 0x00000004u;
|
|
/* 028AE1E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AE1E4 */ cpu->r[6] = 0x00000000u;
|
|
/* 028AE1E8 */ cpu->r[7] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028AE1EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[7]);
|
|
/* 028AE1F0 */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AE1F0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028AE1F0 */ if (_t10) goto L_028AE264; else goto L_028AE1F4;
|
|
L_028AE1F4: ; // 0x28ae1f4
|
|
/* 028AE1F4 */ _t11 = cpu->r[3] + 0x00000014u;
|
|
/* 028AE1F4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
L_028AE1F8: ; // 0x28ae1f8
|
|
/* 028AE1F8 */ cpu->r[11] = cpu->r[6] + cpu->r[7];
|
|
/* 028AE1FC */ /* nop */
|
|
/* 028AE200 */ cpu->r[8] = cpu->r[12];
|
|
/* 028AE204 */ cpu->r[11] = rbrew_rlwinm(cpu->r[8], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 028AE208 */ _t12 = cpu->r[11] + cpu->r[9];
|
|
/* 028AE208 */ cpu->r[12] = rbrew_read16(cpu->mem, _t12);
|
|
/* 028AE20C */ cpu->r[11] = rbrew_rlwinm(cpu->r[12], 0x00000005u, 0x00000000u, 0x0000001Au);
|
|
/* 028AE210 */ cpu->r[3] = cpu->r[10] + cpu->r[11];
|
|
/* 028AE210 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AE214 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE214 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AE214 */ if (_t14) goto L_028AE264; else goto L_028AE218;
|
|
L_028AE218: ; // 0x28ae218
|
|
/* 028AE218 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028AE218 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE21C */ cpu->r[31] = cpu->r[4] + 0xFFFFFFFFu;
|
|
/* 028AE220 */ cpu->r[5] = cpu->r[12] + 0xFFFFFFFFu;
|
|
L_028AE224: ; // 0x28ae224
|
|
/* 028AE224 */ _t16 = cpu->r[31] + 0x00000001u;
|
|
/* 028AE224 */ cpu->r[11] = rbrew_read8(cpu->mem, _t16);
|
|
/* 028AE224 */ cpu->r[31] = _t16;
|
|
/* 028AE228 */ _t17 = cpu->r[5] + 0x00000001u;
|
|
/* 028AE228 */ cpu->r[12] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028AE228 */ cpu->r[5] = _t17;
|
|
/* 028AE22C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 028AE230 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE230 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AE230 */ if (_t19) goto L_028AE234; else goto L_028AE23C;
|
|
L_028AE234: ; // 0x28ae234
|
|
/* 028AE234 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000000u);
|
|
/* 028AE238 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE238 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028AE238 */ if (_t21) goto L_028AE23C; else goto L_028AE224;
|
|
L_028AE23C: ; // 0x28ae23c
|
|
/* 028AE23C */ cpu->r[12] = cpu->r[11] - cpu->r[12];
|
|
/* 028AE23C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AE240 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE240 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AE240 */ if (_t23) goto L_028AE258; else goto L_028AE244;
|
|
L_028AE244: ; // 0x28ae244
|
|
/* 028AE244 */ _t24 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AE244 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028AE244 */ if (_t25) goto L_028AE248; else goto L_028AE268;
|
|
L_028AE248: ; // 0x28ae248
|
|
/* 028AE248 */ cpu->r[6] = cpu->r[8] + 0x00000001u;
|
|
/* 028AE24C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[7]);
|
|
/* 028AE250 */ _t26 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AE250 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028AE250 */ if (_t27) goto L_028AE254; else goto L_028AE1F8;
|
|
L_028AE254: ; // 0x28ae254
|
|
/* 028AE254 */ goto L_028AE264;
|
|
L_028AE258: ; // 0x28ae258
|
|
/* 028AE258 */ cpu->r[7] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 028AE25C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[7]);
|
|
/* 028AE260 */ _t28 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AE260 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028AE260 */ if (_t29) goto L_028AE264; else goto L_028AE1F8;
|
|
L_028AE264: ; // 0x28ae264
|
|
/* 028AE264 */ cpu->r[3] = 0x00000000u;
|
|
L_028AE268: ; // 0x28ae268
|
|
/* 028AE268 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE268 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AE26C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AE270 */ return;
|
|
}
|
|
|
|
// fn_028AE274 @ 0x28ae274
|
|
void Gambit_fn_028AE274(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028AE274: ; // 0x28ae274
|
|
/* 028AE274 */ cpu->r[0] = cpu->lr;
|
|
/* 028AE278 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AE278 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE278 */ cpu->r[1] = _t0;
|
|
/* 028AE27C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE27C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AE280 */ cpu->r[31] = cpu->r[4];
|
|
/* 028AE284 */ cpu->r[4] = cpu->r[5];
|
|
/* 028AE288 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE288 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028AE28C */ Gambit_fn_028AE1C0(cpu);
|
|
/* 028AE290 */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028AE290 */ rbrew_write32(cpu->mem, _t3, cpu->r[3]);
|
|
/* 028AE294 */ cpu->r[0] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028AE298 */ cpu->r[3] = cpu->r[3] - cpu->r[0];
|
|
/* 028AE29C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE29C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AE2A0 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE2A0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE2A4 */ cpu->lr = cpu->r[0];
|
|
/* 028AE2A8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AE2AC */ return;
|
|
}
|
|
|
|
// fn_028AE278 @ 0x28ae278
|
|
void Gambit_fn_028AE278(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028AE278: ; // 0x28ae278
|
|
/* 028AE278 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AE278 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE278 */ cpu->r[1] = _t0;
|
|
/* 028AE27C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE27C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AE280 */ cpu->r[31] = cpu->r[4];
|
|
/* 028AE284 */ cpu->r[4] = cpu->r[5];
|
|
/* 028AE288 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE288 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028AE28C */ Gambit_fn_028AE1C0(cpu);
|
|
/* 028AE290 */ _t3 = cpu->r[31] + 0x00000004u;
|
|
/* 028AE290 */ rbrew_write32(cpu->mem, _t3, cpu->r[3]);
|
|
/* 028AE294 */ cpu->r[0] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028AE298 */ cpu->r[3] = cpu->r[3] - cpu->r[0];
|
|
/* 028AE29C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE29C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AE2A0 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE2A0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE2A4 */ cpu->lr = cpu->r[0];
|
|
/* 028AE2A8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AE2AC */ return;
|
|
}
|
|
|
|
// fn_028AE2B4 @ 0x28ae2b4
|
|
void Gambit_fn_028AE2B4(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_028AE2B4: ; // 0x28ae2b4
|
|
/* 028AE2B4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028AE2B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE2B4 */ cpu->r[1] = _t0;
|
|
/* 028AE2B8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE2B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AE2BC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE2BC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AE2C0 */ _t3 = cpu->r[4] + 0x00000004u;
|
|
/* 028AE2C0 */ cpu->r[12] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t3);
|
|
/* 028AE2C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AE2C8 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE2C8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028AE2C8 */ if (_t5) goto L_028AE350; else goto L_028AE2CC;
|
|
L_028AE2CC: ; // 0x28ae2cc
|
|
/* 028AE2CC */ _t6 = cpu->r[3] + 0x00000024u;
|
|
/* 028AE2CC */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AE2D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AE2D4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE2D4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AE2D4 */ if (_t8) goto L_028AE350; else goto L_028AE2D8;
|
|
L_028AE2D8: ; // 0x28ae2d8
|
|
/* 028AE2D8 */ _t9 = cpu->r[4] + 0x00000006u;
|
|
/* 028AE2D8 */ cpu->r[10] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t9);
|
|
/* 028AE2DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[10]);
|
|
/* 028AE2E0 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AE2E0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AE2E0 */ if (_t11) goto L_028AE350; else goto L_028AE2E4;
|
|
L_028AE2E4: ; // 0x28ae2e4
|
|
/* 028AE2E4 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000000Cu);
|
|
L_028AE2E8: ; // 0x28ae2e8
|
|
/* 028AE2E8 */ _t12 = cpu->r[9] + cpu->r[7];
|
|
/* 028AE2E8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AE2EC */ cpu->r[31] = cpu->r[5] + 0xFFFFFFFFu;
|
|
/* 028AE2F0 */ cpu->r[11] = cpu->r[9] + cpu->r[7];
|
|
/* 028AE2F4 */ cpu->r[30] = cpu->r[8] + 0xFFFFFFFFu;
|
|
L_028AE2F8: ; // 0x28ae2f8
|
|
/* 028AE2F8 */ _t13 = cpu->r[30] + 0x00000001u;
|
|
/* 028AE2F8 */ cpu->r[4] = rbrew_read8(cpu->mem, _t13);
|
|
/* 028AE2F8 */ cpu->r[30] = _t13;
|
|
/* 028AE2FC */ _t14 = cpu->r[31] + 0x00000001u;
|
|
/* 028AE2FC */ cpu->r[8] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028AE2FC */ cpu->r[31] = _t14;
|
|
/* 028AE300 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[8]);
|
|
/* 028AE304 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE304 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028AE304 */ if (_t16) goto L_028AE308; else goto L_028AE310;
|
|
L_028AE308: ; // 0x28ae308
|
|
/* 028AE308 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000000u);
|
|
/* 028AE30C */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE30C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AE30C */ if (_t18) goto L_028AE310; else goto L_028AE2F8;
|
|
L_028AE310: ; // 0x28ae310
|
|
/* 028AE310 */ cpu->r[8] = cpu->r[4] - cpu->r[8];
|
|
/* 028AE310 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AE314 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE314 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028AE314 */ if (_t20) goto L_028AE318; else goto L_028AE340;
|
|
L_028AE318: ; // 0x28ae318
|
|
/* 028AE318 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AE31C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE31C */ _t22 = _t21 & 0x00000001u;
|
|
/* 028AE31C */ if (_t22) goto L_028AE32C; else goto L_028AE320;
|
|
L_028AE320: ; // 0x28ae320
|
|
/* 028AE320 */ _t23 = cpu->r[6] + 0x00000000u;
|
|
/* 028AE320 */ rbrew_write32(cpu->mem, _t23, cpu->r[12]);
|
|
/* 028AE324 */ _t24 = cpu->r[3] + 0x00000024u;
|
|
/* 028AE324 */ cpu->r[9] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AE328 */ cpu->r[11] = cpu->r[9] + cpu->r[7];
|
|
L_028AE32C: ; // 0x28ae32c
|
|
/* 028AE32C */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE32C */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AE330 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE330 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AE334 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AE338 */ cpu->r[3] = cpu->r[11];
|
|
/* 028AE33C */ return;
|
|
L_028AE340: ; // 0x28ae340
|
|
/* 028AE340 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028AE344 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[10]);
|
|
/* 028AE348 */ cpu->r[7] = cpu->r[7] + 0x0000000Cu;
|
|
/* 028AE34C */ _t27 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AE34C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028AE34C */ if (_t28) goto L_028AE350; else goto L_028AE2E8;
|
|
L_028AE350: ; // 0x28ae350
|
|
/* 028AE350 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE350 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AE354 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE354 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AE358 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028AE35C */ cpu->r[3] = 0x00000000u;
|
|
/* 028AE360 */ return;
|
|
}
|
|
|
|
// fn_028AE364 @ 0x28ae364
|
|
void Gambit_fn_028AE364(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028AE364: ; // 0x28ae364
|
|
/* 028AE364 */ _t0 = cpu->r[3] + 0x00000028u;
|
|
/* 028AE364 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AE368 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AE36C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE36C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028AE36C */ if (_t2) goto L_028AE388; else goto L_028AE370;
|
|
L_028AE370: ; // 0x28ae370
|
|
/* 028AE370 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028AE374 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE374 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AE374 */ if (_t4) goto L_028AE388; else goto L_028AE378;
|
|
L_028AE378: ; // 0x28ae378
|
|
/* 028AE378 */ _t5 = cpu->r[3] + 0x00000008u;
|
|
/* 028AE378 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE37C */ _t6 = cpu->r[11] + 0x00000018u;
|
|
/* 028AE37C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AE380 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[0]);
|
|
/* 028AE384 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE384 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AE384 */ if (_t8) goto L_028AE390; else goto L_028AE388;
|
|
L_028AE388: ; // 0x28ae388
|
|
/* 028AE388 */ cpu->r[3] = 0x00000000u;
|
|
/* 028AE38C */ return;
|
|
L_028AE390: ; // 0x28ae390
|
|
/* 028AE390 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000001Cu);
|
|
/* 028AE394 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028AE398 */ return;
|
|
}
|
|
|
|
// fn_028AE39C @ 0x28ae39c
|
|
void Gambit_fn_028AE39C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028AE39C: ; // 0x28ae39c
|
|
/* 028AE39C */ _t0 = cpu->r[3] + 0x00000030u;
|
|
/* 028AE39C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AE3A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AE3A4 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE3A4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028AE3A4 */ if (_t2) goto L_028AE3C0; else goto L_028AE3A8;
|
|
L_028AE3A8: ; // 0x28ae3a8
|
|
/* 028AE3A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028AE3AC */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE3AC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AE3AC */ if (_t4) goto L_028AE3C0; else goto L_028AE3B0;
|
|
L_028AE3B0: ; // 0x28ae3b0
|
|
/* 028AE3B0 */ _t5 = cpu->r[3] + 0x00000008u;
|
|
/* 028AE3B0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE3B4 */ _t6 = cpu->r[11] + 0x00000020u;
|
|
/* 028AE3B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AE3B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[0]);
|
|
/* 028AE3BC */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE3BC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AE3BC */ if (_t8) goto L_028AE3C8; else goto L_028AE3C0;
|
|
L_028AE3C0: ; // 0x28ae3c0
|
|
/* 028AE3C0 */ cpu->r[3] = 0x00000000u;
|
|
/* 028AE3C4 */ return;
|
|
L_028AE3C8: ; // 0x28ae3c8
|
|
/* 028AE3C8 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x00000018u);
|
|
/* 028AE3CC */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028AE3D0 */ return;
|
|
}
|
|
|
|
// fn_028AE3D4 @ 0x28ae3d4
|
|
void Gambit_fn_028AE3D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028AE3D4: ; // 0x28ae3d4
|
|
/* 028AE3D4 */ _t0 = cpu->r[3] + 0x00000034u;
|
|
/* 028AE3D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AE3D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AE3DC */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE3DC */ _t2 = _t1 & 0x00000001u;
|
|
/* 028AE3DC */ if (_t2) goto L_028AE3F8; else goto L_028AE3E0;
|
|
L_028AE3E0: ; // 0x28ae3e0
|
|
/* 028AE3E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028AE3E4 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE3E4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AE3E4 */ if (_t4) goto L_028AE3F8; else goto L_028AE3E8;
|
|
L_028AE3E8: ; // 0x28ae3e8
|
|
/* 028AE3E8 */ _t5 = cpu->r[3] + 0x00000008u;
|
|
/* 028AE3E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE3EC */ _t6 = cpu->r[11] + 0x00000024u;
|
|
/* 028AE3EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AE3F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[0]);
|
|
/* 028AE3F4 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE3F4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AE3F4 */ if (_t8) goto L_028AE400; else goto L_028AE3F8;
|
|
L_028AE3F8: ; // 0x28ae3f8
|
|
/* 028AE3F8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028AE3FC */ return;
|
|
L_028AE400: ; // 0x28ae400
|
|
/* 028AE400 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x00000014u);
|
|
/* 028AE404 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 028AE408 */ return;
|
|
}
|
|
|
|
// fn_028AE40C @ 0x28ae40c
|
|
void Gambit_fn_028AE40C(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_028AE40C: ; // 0x28ae40c
|
|
/* 028AE40C */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028AE40C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE40C */ cpu->r[1] = _t0;
|
|
/* 028AE410 */ /* nop */
|
|
/* 028AE414 */ cpu->r[0] = cpu->lr;
|
|
/* 028AE418 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028AE418 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028AE41C */ cpu->r[29] = cpu->r[3];
|
|
/* 028AE420 */ cpu->r[30] = cpu->r[4];
|
|
/* 028AE424 */ _t2 = cpu->r[30] + 0x00000014u;
|
|
/* 028AE424 */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028AE428 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AE428 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AE42C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE42C */ _t4 = _t3 & 0x00000001u;
|
|
/* 028AE42C */ if (_t4) goto L_028AE4CC; else goto L_028AE430;
|
|
L_028AE430: ; // 0x28ae430
|
|
/* 028AE430 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE434 */ cpu->r[26] = 0x00000000u;
|
|
/* 028AE438 */ Gambit_fn_028A8CA4(cpu);
|
|
/* 028AE43C */ cpu->r[27] = cpu->r[3];
|
|
/* 028AE43C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028AE440 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE440 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028AE440 */ if (_t6) goto L_028AE498; else goto L_028AE444;
|
|
L_028AE444: ; // 0x28ae444
|
|
/* 028AE444 */ _t7 = cpu->r[27] + 0x00000004u;
|
|
/* 028AE444 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028AE448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AE44C */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE44C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028AE44C */ if (_t9) goto L_028AE498; else goto L_028AE450;
|
|
L_028AE450: ; // 0x28ae450
|
|
/* 028AE450 */ _t10 = cpu->r[27] + 0x00000008u;
|
|
/* 028AE450 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028AE454 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AE458 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE458 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028AE458 */ if (_t12) goto L_028AE498; else goto L_028AE45C;
|
|
L_028AE45C: ; // 0x28ae45c
|
|
/* 028AE45C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[11]);
|
|
/* 028AE460 */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AE460 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AE460 */ if (_t14) goto L_028AE498; else goto L_028AE464;
|
|
L_028AE464: ; // 0x28ae464
|
|
/* 028AE464 */ cpu->r[28] = rbrew_rlwinm(cpu->r[31], 0x00000005u, 0x00000000u, 0x0000001Au);
|
|
L_028AE468: ; // 0x28ae468
|
|
/* 028AE468 */ _t15 = cpu->r[29] + 0x00000018u;
|
|
/* 028AE468 */ cpu->r[6] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE46C */ cpu->r[3] = cpu->r[29];
|
|
/* 028AE470 */ cpu->r[4] = cpu->r[6] + cpu->r[28];
|
|
/* 028AE474 */ Gambit_fn_028AE40C(cpu);
|
|
/* 028AE478 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AE47C */ _t16 = cpu->r[27] + 0x00000008u;
|
|
/* 028AE47C */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AE480 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE480 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AE480 */ if (_t18) goto L_028AE488; else goto L_028AE484;
|
|
L_028AE484: ; // 0x28ae484
|
|
/* 028AE484 */ cpu->r[26] = 0x00000001u;
|
|
L_028AE488: ; // 0x28ae488
|
|
/* 028AE488 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028AE48C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 028AE490 */ cpu->r[28] = cpu->r[28] + 0x00000020u;
|
|
/* 028AE494 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AE494 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028AE494 */ if (_t20) goto L_028AE498; else goto L_028AE468;
|
|
L_028AE498: ; // 0x28ae498
|
|
/* 028AE498 */ _t21 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AE498 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AE49C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AE4A0 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE4A0 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AE4A0 */ if (_t23) goto L_028AE4AC; else goto L_028AE4A4;
|
|
L_028AE4A4: ; // 0x28ae4a4
|
|
/* 028AE4A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028AE4A8 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE4A8 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028AE4A8 */ if (_t25) goto L_028AE4C0; else goto L_028AE4AC;
|
|
L_028AE4AC: ; // 0x28ae4ac
|
|
/* 028AE4AC */ _t26 = cpu->r[30] + 0x00000014u;
|
|
/* 028AE4AC */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AE4B0 */ cpu->r[9] = cpu->r[9] | 0x00000010u;
|
|
/* 028AE4B4 */ cpu->r[3] = rbrew_rlwinm(cpu->r[9], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AE4B8 */ _t27 = cpu->r[30] + 0x00000014u;
|
|
/* 028AE4B8 */ rbrew_write32(cpu->mem, _t27, cpu->r[9]);
|
|
/* 028AE4BC */ goto L_028AE4FC;
|
|
L_028AE4C0: ; // 0x28ae4c0
|
|
/* 028AE4C0 */ _t28 = cpu->r[30] + 0x00000014u;
|
|
/* 028AE4C0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AE4C4 */ cpu->r[9] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Cu, 0x0000001Au);
|
|
/* 028AE4C8 */ goto L_028AE4F4;
|
|
L_028AE4CC: ; // 0x28ae4cc
|
|
/* 028AE4CC */ cpu->r[10] = rbrew_rlwinm(cpu->r[9], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AE4CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AE4D0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE4D0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028AE4D0 */ if (_t30) goto L_028AE4D4; else goto L_028AE4E0;
|
|
L_028AE4D4: ; // 0x28ae4d4
|
|
/* 028AE4D4 */ _t31 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AE4D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AE4D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AE4DC */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE4DC */ _t33 = _t32 & 0x00000001u;
|
|
/* 028AE4DC */ if (_t33) goto L_028AE4E0; else goto L_028AE4F0;
|
|
L_028AE4E0: ; // 0x28ae4e0
|
|
/* 028AE4E0 */ cpu->r[9] = cpu->r[9] | 0x00000010u;
|
|
/* 028AE4E4 */ cpu->r[3] = rbrew_rlwinm(cpu->r[9], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AE4E8 */ _t34 = cpu->r[30] + 0x00000014u;
|
|
/* 028AE4E8 */ rbrew_write32(cpu->mem, _t34, cpu->r[9]);
|
|
/* 028AE4EC */ goto L_028AE4FC;
|
|
L_028AE4F0: ; // 0x28ae4f0
|
|
/* 028AE4F0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Cu, 0x0000001Au);
|
|
L_028AE4F4: ; // 0x28ae4f4
|
|
/* 028AE4F4 */ cpu->r[3] = rbrew_rlwinm(cpu->r[9], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AE4F8 */ _t35 = cpu->r[30] + 0x00000014u;
|
|
/* 028AE4F8 */ rbrew_write32(cpu->mem, _t35, cpu->r[9]);
|
|
L_028AE4FC: ; // 0x28ae4fc
|
|
/* 028AE4FC */ /* nop */
|
|
/* 028AE500 */ _t36 = cpu->r[1] + 0x00000024u;
|
|
/* 028AE500 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028AE504 */ cpu->lr = cpu->r[0];
|
|
/* 028AE508 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028AE50C */ return;
|
|
}
|
|
|
|
// fn_028AE510 @ 0x28ae510
|
|
void Gambit_fn_028AE510(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_028AE510: ; // 0x28ae510
|
|
/* 028AE510 */ cpu->r[0] = cpu->lr;
|
|
/* 028AE514 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AE514 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE514 */ cpu->r[1] = _t0;
|
|
/* 028AE518 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE518 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028AE51C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE51C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028AE520 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE520 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AE524 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE524 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AE528 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AE52C */ _t5 = cpu->r[29] + 0x00000018u;
|
|
/* 028AE52C */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AE534 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE534 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AE534 */ if (_t7) goto L_028AE58C; else goto L_028AE538;
|
|
L_028AE538: ; // 0x28ae538
|
|
/* 028AE538 */ _t8 = cpu->r[29] + 0x00000008u;
|
|
/* 028AE538 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AE53C */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028AE53C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AE540 */ cpu->r[30] = 0x00000000u;
|
|
/* 028AE544 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028AE548 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE548 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AE548 */ if (_t11) goto L_028AE54C; else goto L_028AE58C;
|
|
L_028AE54C: ; // 0x28ae54c
|
|
/* 028AE54C */ cpu->r[31] = 0x00000000u;
|
|
L_028AE550: ; // 0x28ae550
|
|
/* 028AE550 */ cpu->r[8] = cpu->r[11] + cpu->r[31];
|
|
/* 028AE554 */ _t12 = cpu->r[8] + 0x00000010u;
|
|
/* 028AE554 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AE558 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AE55C */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE55C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AE55C */ if (_t14) goto L_028AE560; else goto L_028AE574;
|
|
L_028AE560: ; // 0x28ae560
|
|
/* 028AE560 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AE564 */ cpu->r[4] = cpu->r[11] + cpu->r[31];
|
|
/* 028AE568 */ Gambit_fn_028AE40C(cpu);
|
|
/* 028AE56C */ _t15 = cpu->r[29] + 0x00000008u;
|
|
/* 028AE56C */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE570 */ _t16 = cpu->r[12] + 0x00000004u;
|
|
/* 028AE570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
L_028AE574: ; // 0x28ae574
|
|
/* 028AE574 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028AE578 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028AE57C */ cpu->r[31] = cpu->r[31] + 0x00000020u;
|
|
/* 028AE580 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE580 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AE580 */ if (_t18) goto L_028AE584; else goto L_028AE58C;
|
|
L_028AE584: ; // 0x28ae584
|
|
/* 028AE584 */ _t19 = cpu->r[29] + 0x00000018u;
|
|
/* 028AE584 */ cpu->r[11] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AE588 */ goto L_028AE550;
|
|
L_028AE58C: ; // 0x28ae58c
|
|
/* 028AE58C */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE58C */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AE590 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE590 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AE594 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE594 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AE598 */ cpu->lr = cpu->r[0];
|
|
/* 028AE59C */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE59C */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AE5A0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AE5A4 */ return;
|
|
}
|
|
|
|
// fn_028AE514 @ 0x28ae514
|
|
void Gambit_fn_028AE514(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_028AE514: ; // 0x28ae514
|
|
/* 028AE514 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AE514 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE514 */ cpu->r[1] = _t0;
|
|
/* 028AE518 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE518 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028AE51C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE51C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028AE520 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE520 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AE524 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE524 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AE528 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AE52C */ _t5 = cpu->r[29] + 0x00000018u;
|
|
/* 028AE52C */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AE530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AE534 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE534 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AE534 */ if (_t7) goto L_028AE58C; else goto L_028AE538;
|
|
L_028AE538: ; // 0x28ae538
|
|
/* 028AE538 */ _t8 = cpu->r[29] + 0x00000008u;
|
|
/* 028AE538 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AE53C */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 028AE53C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AE540 */ cpu->r[30] = 0x00000000u;
|
|
/* 028AE544 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028AE548 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE548 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AE548 */ if (_t11) goto L_028AE54C; else goto L_028AE58C;
|
|
L_028AE54C: ; // 0x28ae54c
|
|
/* 028AE54C */ cpu->r[31] = 0x00000000u;
|
|
L_028AE550: ; // 0x28ae550
|
|
/* 028AE550 */ cpu->r[8] = cpu->r[11] + cpu->r[31];
|
|
/* 028AE554 */ _t12 = cpu->r[8] + 0x00000010u;
|
|
/* 028AE554 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AE558 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AE55C */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE55C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AE55C */ if (_t14) goto L_028AE560; else goto L_028AE574;
|
|
L_028AE560: ; // 0x28ae560
|
|
/* 028AE560 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AE564 */ cpu->r[4] = cpu->r[11] + cpu->r[31];
|
|
/* 028AE568 */ Gambit_fn_028AE40C(cpu);
|
|
/* 028AE56C */ _t15 = cpu->r[29] + 0x00000008u;
|
|
/* 028AE56C */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE570 */ _t16 = cpu->r[12] + 0x00000004u;
|
|
/* 028AE570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
L_028AE574: ; // 0x28ae574
|
|
/* 028AE574 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028AE578 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028AE57C */ cpu->r[31] = cpu->r[31] + 0x00000020u;
|
|
/* 028AE580 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE580 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AE580 */ if (_t18) goto L_028AE584; else goto L_028AE58C;
|
|
L_028AE584: ; // 0x28ae584
|
|
/* 028AE584 */ _t19 = cpu->r[29] + 0x00000018u;
|
|
/* 028AE584 */ cpu->r[11] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AE588 */ goto L_028AE550;
|
|
L_028AE58C: ; // 0x28ae58c
|
|
/* 028AE58C */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE58C */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AE590 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE590 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AE594 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE594 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AE598 */ cpu->lr = cpu->r[0];
|
|
/* 028AE59C */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE59C */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AE5A0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AE5A4 */ return;
|
|
}
|
|
|
|
// fn_028AE5A8 @ 0x28ae5a8
|
|
void Gambit_fn_028AE5A8(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_028AE5A8: ; // 0x28ae5a8
|
|
/* 028AE5A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AE5AC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE5AC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028AE5AC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AE5AC */ goto L_028AE5B0;
|
|
L_028AE5B0: ; // 0x28ae5b0
|
|
/* 028AE5B0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AE5B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AE5B4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE5B4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AE5B4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028AE5B4 */ goto L_028AE5B8;
|
|
L_028AE5B8: ; // 0x28ae5b8
|
|
/* 028AE5B8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028AE5BC @ 0x28ae5bc
|
|
void Gambit_fn_028AE5BC(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028AE5BC: ; // 0x28ae5bc
|
|
/* 028AE5BC */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AE5BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AE5C0 */ return;
|
|
}
|
|
|
|
// fn_028AE5C4 @ 0x28ae5c4
|
|
void Gambit_fn_028AE5C4(CPUState* cpu) {
|
|
L_028AE5C4: ; // 0x28ae5c4
|
|
/* 028AE5C4 */ return;
|
|
}
|
|
|
|
// fn_028AE5C8 @ 0x28ae5c8
|
|
void Gambit_fn_028AE5C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028AE5C8: ; // 0x28ae5c8
|
|
/* 028AE5C8 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028AE5C8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AE5CC */ goto L_028B253C;
|
|
L_028B253C: ; // 0x28b253c
|
|
/* 028B253C */ cpu->r[0] = cpu->lr;
|
|
/* 028B2540 */ _t1 = cpu->r[1] + 0x00000004u;
|
|
/* 028B2540 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B2544 */ _t2 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B2544 */ rbrew_write32(cpu->mem, _t2, cpu->r[1]);
|
|
/* 028B2544 */ cpu->r[1] = _t2;
|
|
/* 028B2548 */ Gambit_fn_028B2530(cpu);
|
|
/* 028B254C */ Gambit_fn_028B2CAC(cpu);
|
|
/* 028B2550 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2550 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B2554 */ cpu->lr = cpu->r[0];
|
|
/* 028B2558 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B255C */ return;
|
|
}
|
|
|
|
// fn_028AE5D0 @ 0x28ae5d0
|
|
void Gambit_fn_028AE5D0(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;
|
|
|
|
L_028AE5D0: ; // 0x28ae5d0
|
|
/* 028AE5D0 */ _t0 = cpu->r[1] + 0xFFFFFF18u;
|
|
/* 028AE5D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE5D0 */ cpu->r[1] = _t0;
|
|
/* 028AE5D4 */ _t1 = cpu->r[1] + 0x000000B4u;
|
|
/* 028AE5D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028AE5D8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AE5DC */ _t2 = cpu->r[1] + 0x000000ACu;
|
|
/* 028AE5DC */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AE5E0 */ _t3 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AE5E0 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[30]);
|
|
/* 028AE5E4 */ cpu->r[0] = cpu->lr;
|
|
/* 028AE5E8 */ _t4 = cpu->r[1] + 0x000000A8u;
|
|
/* 028AE5E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[28]);
|
|
/* 028AE5EC */ /* nop */
|
|
/* 028AE5F0 */ _t5 = cpu->r[1] + 0x000000B8u;
|
|
/* 028AE5F0 */ rbrew_write_f64(cpu->mem, _t5, cpu->f[29]);
|
|
/* 028AE5F4 */ _t6 = cpu->r[1] + 0x000000D8u;
|
|
/* 028AE5F4 */ rbrew_write_f64(cpu->mem, _t6, cpu->f[31]);
|
|
/* 028AE5F8 */ /* nop */
|
|
/* 028AE5FC */ _t7 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AE5FC */ rbrew_write_f32(cpu->mem, _t7, cpu->f[30]);
|
|
/* 028AE600 */ /* nop */
|
|
/* 028AE604 */ _t8 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AE604 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[29]);
|
|
/* 028AE608 */ _t9 = cpu->r[1] + 0x000000E0u;
|
|
/* 028AE608 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[31]);
|
|
/* 028AE60C */ _t10 = cpu->r[1] + 0x000000B0u;
|
|
/* 028AE60C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028AE610 */ _t11 = cpu->r[1] + 0x000000ECu;
|
|
/* 028AE610 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028AE614 */ cpu->r[29] = cpu->r[5];
|
|
/* 028AE618 */ _t12 = cpu->r[31] + 0x00000010u;
|
|
/* 028AE618 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AE61C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AE620 */ cpu->r[28] = cpu->r[4];
|
|
/* 028AE624 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE624 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AE624 */ if (_t14) goto L_028AE78C; else goto L_028AE628;
|
|
L_028AE628: ; // 0x28ae628
|
|
/* 028AE628 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE62C */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AE630 */ _t15 = cpu->r[31] + 0x00000010u;
|
|
/* 028AE630 */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE634 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AE638 */ _t16 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE638 */ cpu->r[5] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AE63C */ Gambit_fn_028B0E08(cpu);
|
|
/* 028AE640 */ _t17 = cpu->r[31] + 0x00000010u;
|
|
/* 028AE640 */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AE644 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE648 */ _t18 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE648 */ cpu->r[5] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AE64C */ cpu->f[29] = cpu->f[1];
|
|
/* 028AE650 */ Gambit_fn_028B0E78(cpu);
|
|
/* 028AE654 */ _t19 = cpu->r[31] + 0x00000010u;
|
|
/* 028AE654 */ cpu->r[4] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AE658 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE65C */ _t20 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE65C */ cpu->r[5] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AE660 */ cpu->f[30] = cpu->f[1];
|
|
/* 028AE664 */ Gambit_fn_028B0EE8(cpu);
|
|
/* 028AE668 */ _t21 = cpu->r[31] + 0x00000010u;
|
|
/* 028AE668 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AE66C */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE670 */ _t22 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE670 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AE674 */ cpu->f[31] = cpu->f[1];
|
|
/* 028AE678 */ Gambit_fn_028B0F58(cpu);
|
|
/* 028AE67C */ _t23 = cpu->r[31] + 0x00000010u;
|
|
/* 028AE67C */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AE680 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE680 */ rbrew_write_f32(cpu->mem, _t24, cpu->f[31]);
|
|
/* 028AE684 */ _t25 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE684 */ cpu->r[5] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AE688 */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE688 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[30]);
|
|
/* 028AE68C */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE690 */ _t27 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE690 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[1]);
|
|
/* 028AE694 */ Gambit_fn_028B0FC8(cpu);
|
|
/* 028AE698 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE69C */ _t28 = cpu->r[31] + 0x00000010u;
|
|
/* 028AE69C */ cpu->r[4] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AE6A0 */ _t29 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE6A0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AE6A4 */ cpu->f[30] = cpu->f[1];
|
|
/* 028AE6A8 */ Gambit_fn_028B1038(cpu);
|
|
/* 028AE6AC */ _t30 = cpu->r[31] + 0x00000010u;
|
|
/* 028AE6AC */ cpu->r[4] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AE6B0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AE6B4 */ _t31 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AE6B4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AE6B8 */ cpu->f[31] = cpu->f[1];
|
|
/* 028AE6BC */ Gambit_fn_028B10A8(cpu);
|
|
/* 028AE6C0 */ _t32 = cpu->r[29] + 0x00000000u;
|
|
/* 028AE6C0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028AE6C4 */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE6C4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028AE6C8 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE6C8 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[30]);
|
|
/* 028AE6CC */ _t35 = cpu->r[29] + 0x00000004u;
|
|
/* 028AE6CC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028AE6D0 */ cpu->f[11] = cpu->f[12] * cpu->f[13];
|
|
/* 028AE6D4 */ _t36 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE6D4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t36);
|
|
/* 028AE6D8 */ _t37 = cpu->r[1] + 0x00000018u;
|
|
/* 028AE6D8 */ rbrew_write_f32(cpu->mem, _t37, cpu->f[31]);
|
|
/* 028AE6DC */ _t38 = cpu->r[1] + 0x00000020u;
|
|
/* 028AE6DC */ rbrew_write_f32(cpu->mem, _t38, cpu->f[11]);
|
|
/* 028AE6E0 */ cpu->f[0] = cpu->f[12] * cpu->f[0];
|
|
/* 028AE6E4 */ _t39 = cpu->r[29] + 0x00000008u;
|
|
/* 028AE6E4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028AE6E8 */ /* nop */
|
|
/* 028AE6EC */ cpu->f[10] = cpu->f[12] * cpu->f[29];
|
|
/* 028AE6F0 */ _t40 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE6F0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028AE6F4 */ _t41 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE6F4 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[1]);
|
|
/* 028AE6F8 */ /* nop */
|
|
/* 028AE6FC */ _t42 = cpu->r[1] + 0x00000024u;
|
|
/* 028AE6FC */ rbrew_write_f32(cpu->mem, _t42, cpu->f[0]);
|
|
/* 028AE700 */ /* nop */
|
|
/* 028AE704 */ _t43 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AE704 */ cpu->r[10] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028AE708 */ _t44 = cpu->r[1] + 0x00000034u;
|
|
/* 028AE708 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[10]);
|
|
/* 028AE70C */ _t45 = cpu->r[1] + 0x00000034u;
|
|
/* 028AE70C */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028AE710 */ _t46 = cpu->r[1] + 0x00000038u;
|
|
/* 028AE710 */ rbrew_write32(cpu->mem, _t46, cpu->r[10]);
|
|
/* 028AE714 */ cpu->f[10] = cpu->f[11] * cpu->f[12];
|
|
/* 028AE718 */ _t47 = cpu->r[1] + 0x00000040u;
|
|
/* 028AE718 */ rbrew_write32(cpu->mem, _t47, cpu->r[0]);
|
|
/* 028AE71C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028AE720 */ _t48 = cpu->r[1] + 0x00000030u;
|
|
/* 028AE720 */ cpu->r[11] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028AE724 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028AE728 */ cpu->r[6] = cpu->r[1] + 0x00000020u;
|
|
/* 028AE72C */ _t49 = cpu->r[1] + 0x00000028u;
|
|
/* 028AE72C */ rbrew_write_f32(cpu->mem, _t49, cpu->f[10]);
|
|
/* 028AE730 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 028AE734 */ _t50 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028AE734 */ rbrew_write32(cpu->mem, _t50, cpu->r[11]);
|
|
/* 028AE738 */ Gambit_fn_0200FC4C(cpu);
|
|
/* 028AE73C */ cpu->r[5] = cpu->r[1] + 0x00000074u;
|
|
/* 028AE740 */ cpu->r[4] = cpu->r[1] + 0x00000044u;
|
|
/* 028AE744 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AE748 */ Gambit_fn_02C69544(cpu);
|
|
/* 028AE74C */ _t51 = cpu->r[31] + 0x00000024u;
|
|
/* 028AE74C */ cpu->r[12] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028AE750 */ _t52 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AE750 */ cpu->r[0] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028AE754 */ cpu->ctr = cpu->r[0];
|
|
/* 028AE758 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AE75C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AE760 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AE764 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE764 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028AE764 */ if (_t54) goto L_028AE78C; else goto L_028AE768;
|
|
L_028AE768: ; // 0x28ae768
|
|
/* 028AE768 */ _t55 = cpu->r[31] + 0x00000034u;
|
|
/* 028AE768 */ cpu->r[3] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028AE76C */ _t56 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028AE76C */ cpu->r[0] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028AE770 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AE774 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE774 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028AE774 */ if (_t58) goto L_028AE78C; else goto L_028AE778;
|
|
L_028AE778: ; // 0x28ae778
|
|
/* 028AE778 */ _t59 = cpu->r[3] + 0x00000004u;
|
|
/* 028AE778 */ cpu->r[9] = rbrew_read8(cpu->mem, _t59);
|
|
/* 028AE77C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AE780 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE780 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028AE780 */ if (_t61) goto L_028AE78C; else goto L_028AE784;
|
|
L_028AE784: ; // 0x28ae784
|
|
/* 028AE784 */ cpu->r[4] = cpu->r[1] + 0x00000074u;
|
|
/* 028AE788 */ Gambit_fn_02A39D84(cpu);
|
|
L_028AE78C: ; // 0x28ae78c
|
|
/* 028AE78C */ _t62 = cpu->r[31] + 0x00000028u;
|
|
/* 028AE78C */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028AE790 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028AE794 */ _t63 = cpu->r[31] + 0x00000028u;
|
|
/* 028AE794 */ rbrew_write32(cpu->mem, _t63, cpu->r[0]);
|
|
/* 028AE798 */ _t64 = cpu->r[1] + 0x000000A8u;
|
|
/* 028AE798 */ cpu->r[28] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028AE79C */ _t65 = cpu->r[1] + 0x000000ACu;
|
|
/* 028AE79C */ cpu->r[29] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028AE7A0 */ _t66 = cpu->r[1] + 0x000000E0u;
|
|
/* 028AE7A0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 028AE7A4 */ _t67 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AE7A4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 028AE7A8 */ _t68 = cpu->r[1] + 0x000000D8u;
|
|
/* 028AE7A8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t68);
|
|
/* 028AE7AC */ _t69 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AE7AC */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028AE7B0 */ _t70 = cpu->r[1] + 0x000000B8u;
|
|
/* 028AE7B0 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t70);
|
|
/* 028AE7B4 */ _t71 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AE7B4 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t71);
|
|
/* 028AE7B8 */ _t72 = cpu->r[1] + 0x000000B4u;
|
|
/* 028AE7B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028AE7BC */ _t73 = cpu->r[1] + 0x000000B0u;
|
|
/* 028AE7BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028AE7C0 */ _t74 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE7C0 */ _t75 = _t74 & 0x00000001u;
|
|
/* 028AE7C0 */ if (_t75) goto L_028AE7C4; // else: addr-0 trap, fall-through
|
|
L_028AE7C4: ; // 0x28ae7c4
|
|
/* 028AE7C4 */ _t76 = cpu->r[1] + 0x000000ECu;
|
|
/* 028AE7C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028AE7C8 */ cpu->lr = cpu->r[0];
|
|
/* 028AE7CC */ cpu->r[1] = cpu->r[1] + 0x000000E8u;
|
|
/* 028AE7D0 */ return;
|
|
}
|
|
|
|
// fn_028AE7D4 @ 0x28ae7d4
|
|
void Gambit_fn_028AE7D4(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;
|
|
|
|
L_028AE7D4: ; // 0x28ae7d4
|
|
/* 028AE7D4 */ _t0 = cpu->r[1] + 0xFFFFFF18u;
|
|
/* 028AE7D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE7D4 */ cpu->r[1] = _t0;
|
|
/* 028AE7D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028AE7DC */ _t1 = cpu->r[1] + 0x000000D8u;
|
|
/* 028AE7DC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028AE7E0 */ /* nop */
|
|
/* 028AE7E4 */ _t2 = cpu->r[1] + 0x000000ACu;
|
|
/* 028AE7E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AE7E8 */ _t3 = cpu->r[1] + 0x000000E0u;
|
|
/* 028AE7E8 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 028AE7EC */ _t4 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AE7EC */ rbrew_write_f64(cpu->mem, _t4, cpu->f[30]);
|
|
/* 028AE7F0 */ _t5 = cpu->r[1] + 0x000000B8u;
|
|
/* 028AE7F0 */ rbrew_write_f64(cpu->mem, _t5, cpu->f[29]);
|
|
/* 028AE7F4 */ _t6 = cpu->r[1] + 0x000000B4u;
|
|
/* 028AE7F4 */ rbrew_write32(cpu->mem, _t6, cpu->r[31]);
|
|
/* 028AE7F8 */ /* nop */
|
|
/* 028AE7FC */ _t7 = cpu->r[1] + 0x000000ECu;
|
|
/* 028AE7FC */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028AE800 */ /* nop */
|
|
/* 028AE804 */ _t8 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AE804 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[29]);
|
|
/* 028AE808 */ _t9 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AE808 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[30]);
|
|
/* 028AE80C */ _t10 = cpu->r[1] + 0x000000B0u;
|
|
/* 028AE80C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028AE810 */ _t11 = cpu->r[1] + 0x000000A8u;
|
|
/* 028AE810 */ rbrew_write32(cpu->mem, _t11, cpu->r[28]);
|
|
/* 028AE814 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AE818 */ _t12 = cpu->r[29] + 0x00000010u;
|
|
/* 028AE818 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AE81C */ cpu->r[31] = cpu->r[5];
|
|
/* 028AE820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AE824 */ cpu->r[30] = cpu->r[4];
|
|
/* 028AE828 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE828 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AE828 */ if (_t14) goto L_028AE9A4; else goto L_028AE82C;
|
|
L_028AE82C: ; // 0x28ae82c
|
|
/* 028AE82C */ cpu->r[3] = cpu->r[29];
|
|
/* 028AE830 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AE834 */ _t15 = cpu->r[29] + 0x00000010u;
|
|
/* 028AE834 */ cpu->r[4] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AE838 */ cpu->r[28] = cpu->r[3];
|
|
/* 028AE83C */ _t16 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028AE83C */ cpu->r[5] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AE840 */ Gambit_fn_028B0E08(cpu);
|
|
/* 028AE844 */ _t17 = cpu->r[29] + 0x00000010u;
|
|
/* 028AE844 */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AE848 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AE84C */ _t18 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028AE84C */ cpu->r[5] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028AE850 */ cpu->f[29] = cpu->f[1];
|
|
/* 028AE854 */ Gambit_fn_028B0E78(cpu);
|
|
/* 028AE858 */ _t19 = cpu->r[29] + 0x00000010u;
|
|
/* 028AE858 */ cpu->r[4] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AE85C */ cpu->r[3] = cpu->r[28];
|
|
/* 028AE860 */ _t20 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028AE860 */ cpu->r[5] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AE864 */ cpu->f[30] = cpu->f[1];
|
|
/* 028AE868 */ Gambit_fn_028B0EE8(cpu);
|
|
/* 028AE86C */ _t21 = cpu->r[29] + 0x00000010u;
|
|
/* 028AE86C */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AE870 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AE874 */ _t22 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028AE874 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AE878 */ cpu->f[31] = cpu->f[1];
|
|
/* 028AE87C */ Gambit_fn_028B0F58(cpu);
|
|
/* 028AE880 */ _t23 = cpu->r[29] + 0x00000010u;
|
|
/* 028AE880 */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AE884 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE884 */ rbrew_write_f32(cpu->mem, _t24, cpu->f[31]);
|
|
/* 028AE888 */ _t25 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028AE888 */ cpu->r[5] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AE88C */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE88C */ rbrew_write_f32(cpu->mem, _t26, cpu->f[30]);
|
|
/* 028AE890 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AE894 */ _t27 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE894 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[1]);
|
|
/* 028AE898 */ Gambit_fn_028B0FC8(cpu);
|
|
/* 028AE89C */ cpu->r[3] = cpu->r[28];
|
|
/* 028AE8A0 */ _t28 = cpu->r[29] + 0x00000010u;
|
|
/* 028AE8A0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AE8A4 */ _t29 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028AE8A4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AE8A8 */ cpu->f[30] = cpu->f[1];
|
|
/* 028AE8AC */ Gambit_fn_028B1038(cpu);
|
|
/* 028AE8B0 */ _t30 = cpu->r[29] + 0x00000010u;
|
|
/* 028AE8B0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AE8B4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AE8B8 */ _t31 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028AE8B8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AE8BC */ cpu->f[31] = cpu->f[1];
|
|
/* 028AE8C0 */ Gambit_fn_028B10A8(cpu);
|
|
/* 028AE8C4 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE8C4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028AE8C8 */ _t33 = cpu->r[31] + 0x00000000u;
|
|
/* 028AE8C8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028AE8CC */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028AE8CC */ rbrew_write_f32(cpu->mem, _t34, cpu->f[30]);
|
|
/* 028AE8D0 */ _t35 = cpu->r[31] + 0x00000004u;
|
|
/* 028AE8D0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028AE8D4 */ cpu->f[10] = cpu->f[10] * cpu->f[12];
|
|
/* 028AE8D8 */ /* nop */
|
|
/* 028AE8DC */ _t36 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE8DC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t36);
|
|
/* 028AE8E0 */ /* nop */
|
|
/* 028AE8E4 */ _t37 = cpu->r[1] + 0x00000020u;
|
|
/* 028AE8E4 */ rbrew_write_f32(cpu->mem, _t37, cpu->f[10]);
|
|
/* 028AE8E8 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AE8E8 */ rbrew_write_f32(cpu->mem, _t38, cpu->f[1]);
|
|
/* 028AE8EC */ /* nop */
|
|
/* 028AE8F0 */ cpu->f[13] = cpu->f[0] * cpu->f[11];
|
|
/* 028AE8F4 */ _t39 = cpu->r[31] + 0x00000008u;
|
|
/* 028AE8F4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028AE8F8 */ _t40 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AE8F8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028AE8FC */ _t41 = cpu->r[1] + 0x00000024u;
|
|
/* 028AE8FC */ rbrew_write_f32(cpu->mem, _t41, cpu->f[13]);
|
|
/* 028AE900 */ _t42 = cpu->r[1] + 0x00000030u;
|
|
/* 028AE900 */ cpu->r[10] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028AE904 */ cpu->f[0] = cpu->f[11] * cpu->f[29];
|
|
/* 028AE908 */ _t43 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE908 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028AE90C */ _t44 = cpu->r[1] + 0x00000018u;
|
|
/* 028AE90C */ rbrew_write_f32(cpu->mem, _t44, cpu->f[31]);
|
|
/* 028AE910 */ _t45 = cpu->r[1] + 0x00000034u;
|
|
/* 028AE910 */ rbrew_write_f32(cpu->mem, _t45, cpu->f[0]);
|
|
/* 028AE914 */ _t46 = cpu->r[1] + 0x00000034u;
|
|
/* 028AE914 */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028AE918 */ cpu->r[3] = cpu->r[1] + 0x00000074u;
|
|
/* 028AE91C */ _t47 = cpu->r[1] + 0x00000038u;
|
|
/* 028AE91C */ rbrew_write32(cpu->mem, _t47, cpu->r[8]);
|
|
/* 028AE920 */ cpu->f[0] = cpu->f[10] * cpu->f[11];
|
|
/* 028AE924 */ _t48 = cpu->r[1] + 0x00000040u;
|
|
/* 028AE924 */ rbrew_write32(cpu->mem, _t48, cpu->r[0]);
|
|
/* 028AE928 */ cpu->r[6] = cpu->r[1] + 0x00000020u;
|
|
/* 028AE92C */ _t49 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028AE92C */ rbrew_write32(cpu->mem, _t49, cpu->r[10]);
|
|
/* 028AE930 */ _t50 = cpu->r[1] + 0x00000028u;
|
|
/* 028AE930 */ rbrew_write_f32(cpu->mem, _t50, cpu->f[0]);
|
|
/* 028AE934 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028AE938 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 028AE93C */ Gambit_fn_0200FC4C(cpu);
|
|
/* 028AE940 */ _t51 = cpu->r[30] + 0x00000004u;
|
|
/* 028AE940 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 028AE944 */ _t52 = cpu->r[30] + 0x00000000u;
|
|
/* 028AE944 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028AE948 */ _t53 = cpu->r[30] + 0x00000008u;
|
|
/* 028AE948 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t53);
|
|
/* 028AE94C */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028AE950 */ Gambit_fn_02C69840(cpu);
|
|
/* 028AE954 */ cpu->r[3] = cpu->r[1] + 0x00000044u;
|
|
/* 028AE958 */ cpu->r[4] = cpu->r[1] + 0x00000074u;
|
|
/* 028AE95C */ cpu->r[5] = cpu->r[3];
|
|
/* 028AE960 */ Gambit_fn_02C69544(cpu);
|
|
/* 028AE964 */ _t54 = cpu->r[29] + 0x00000024u;
|
|
/* 028AE964 */ cpu->r[9] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028AE968 */ _t55 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028AE968 */ cpu->r[12] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028AE96C */ cpu->ctr = cpu->r[12];
|
|
/* 028AE970 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AE974 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AE978 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AE97C */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE97C */ _t57 = _t56 & 0x00000001u;
|
|
/* 028AE97C */ if (_t57) goto L_028AE9A4; else goto L_028AE980;
|
|
L_028AE980: ; // 0x28ae980
|
|
/* 028AE980 */ _t58 = cpu->r[29] + 0x00000034u;
|
|
/* 028AE980 */ cpu->r[3] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028AE984 */ _t59 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028AE984 */ cpu->r[7] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028AE988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028AE98C */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE98C */ _t61 = _t60 & 0x00000001u;
|
|
/* 028AE98C */ if (_t61) goto L_028AE9A4; else goto L_028AE990;
|
|
L_028AE990: ; // 0x28ae990
|
|
/* 028AE990 */ _t62 = cpu->r[3] + 0x00000004u;
|
|
/* 028AE990 */ cpu->r[9] = rbrew_read8(cpu->mem, _t62);
|
|
/* 028AE994 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AE998 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AE998 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028AE998 */ if (_t64) goto L_028AE9A4; else goto L_028AE99C;
|
|
L_028AE99C: ; // 0x28ae99c
|
|
/* 028AE99C */ cpu->r[4] = cpu->r[1] + 0x00000044u;
|
|
/* 028AE9A0 */ Gambit_fn_02A39D84(cpu);
|
|
L_028AE9A4: ; // 0x28ae9a4
|
|
/* 028AE9A4 */ _t65 = cpu->r[29] + 0x00000028u;
|
|
/* 028AE9A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028AE9A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028AE9AC */ _t66 = cpu->r[29] + 0x00000028u;
|
|
/* 028AE9AC */ rbrew_write32(cpu->mem, _t66, cpu->r[0]);
|
|
/* 028AE9B0 */ _t67 = cpu->r[1] + 0x000000A8u;
|
|
/* 028AE9B0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028AE9B4 */ _t68 = cpu->r[1] + 0x000000ACu;
|
|
/* 028AE9B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028AE9B8 */ _t69 = cpu->r[1] + 0x000000E0u;
|
|
/* 028AE9B8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 028AE9BC */ _t70 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AE9BC */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 028AE9C0 */ _t71 = cpu->r[1] + 0x000000D8u;
|
|
/* 028AE9C0 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t71);
|
|
/* 028AE9C4 */ _t72 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AE9C4 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 028AE9C8 */ _t73 = cpu->r[1] + 0x000000B8u;
|
|
/* 028AE9C8 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t73);
|
|
/* 028AE9CC */ _t74 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AE9CC */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t74);
|
|
/* 028AE9D0 */ _t75 = cpu->r[1] + 0x000000B4u;
|
|
/* 028AE9D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028AE9D4 */ _t76 = cpu->r[1] + 0x000000B0u;
|
|
/* 028AE9D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028AE9D8 */ _t77 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AE9D8 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028AE9D8 */ if (_t78) goto L_028AE9DC; // else: addr-0 trap, fall-through
|
|
L_028AE9DC: ; // 0x28ae9dc
|
|
/* 028AE9DC */ _t79 = cpu->r[1] + 0x000000ECu;
|
|
/* 028AE9DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028AE9E0 */ cpu->lr = cpu->r[0];
|
|
/* 028AE9E4 */ cpu->r[1] = cpu->r[1] + 0x000000E8u;
|
|
/* 028AE9E8 */ return;
|
|
}
|
|
|
|
// fn_028AE9EC @ 0x28ae9ec
|
|
void Gambit_fn_028AE9EC(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;
|
|
|
|
L_028AE9EC: ; // 0x28ae9ec
|
|
/* 028AE9EC */ cpu->r[0] = cpu->lr;
|
|
/* 028AE9F0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AE9F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE9F0 */ cpu->r[1] = _t0;
|
|
/* 028AE9F4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE9F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AE9F8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE9F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028AE9FC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE9FC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028AEA00 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028AEA00 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028AEA04 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AEA04 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028AEA08 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AEA0C */ _t6 = cpu->r[5] + 0x00000000u;
|
|
/* 028AEA0C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AEA10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AEA14 */ cpu->r[30] = cpu->r[4];
|
|
/* 028AEA18 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA18 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AEA18 */ if (_t8) goto L_028AEC6C; else goto L_028AEA1C;
|
|
L_028AEA1C: ; // 0x28aea1c
|
|
/* 028AEA1C */ _t9 = cpu->r[29] + 0x00000034u;
|
|
/* 028AEA1C */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AEA20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028AEA24 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA24 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AEA24 */ if (_t11) goto L_028AEC6C; else goto L_028AEA28;
|
|
L_028AEA28: ; // 0x28aea28
|
|
/* 028AEA28 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEA28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEA2C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA2C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AEA2C */ if (_t13) goto L_028AEA54; else goto L_028AEA30;
|
|
L_028AEA30: ; // 0x28aea30
|
|
/* 028AEA30 */ _t14 = cpu->r[30] + 0x00000000u;
|
|
/* 028AEA30 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028AEA34 */ _t15 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEA34 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AEA38 */ _t16 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028AEA38 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[12]);
|
|
/* 028AEA3C */ _t17 = cpu->r[30] + 0x00000004u;
|
|
/* 028AEA3C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028AEA40 */ cpu->r[12] = cpu->r[12] | 0x00000004u;
|
|
/* 028AEA44 */ _t18 = cpu->r[29] + 0x00000040u;
|
|
/* 028AEA44 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028AEA48 */ _t19 = cpu->r[30] + 0x00000008u;
|
|
/* 028AEA48 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028AEA4C */ _t20 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEA4C */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028AEA50 */ _t21 = cpu->r[29] + 0x00000044u;
|
|
/* 028AEA50 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[12]);
|
|
L_028AEA54: ; // 0x28aea54
|
|
/* 028AEA54 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEA54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEA58 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA58 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AEA58 */ if (_t23) goto L_028AEA70; else goto L_028AEA5C;
|
|
L_028AEA5C: ; // 0x28aea5c
|
|
/* 028AEA5C */ _t24 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEA5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AEA60 */ _t25 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AEA60 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028AEA64 */ cpu->r[0] = cpu->r[0] | 0x00000008u;
|
|
/* 028AEA68 */ _t26 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEA68 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028AEA6C */ _t27 = cpu->r[29] + 0x00000048u;
|
|
/* 028AEA6C */ rbrew_write_f32(cpu->mem, _t27, cpu->f[0]);
|
|
L_028AEA70: ; // 0x28aea70
|
|
/* 028AEA70 */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEA70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AEA74 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA74 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028AEA74 */ if (_t29) goto L_028AEA88; else goto L_028AEA78;
|
|
L_028AEA78: ; // 0x28aea78
|
|
/* 028AEA78 */ cpu->r[5] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AEA7C */ cpu->r[4] = cpu->r[30] + 0x00000028u;
|
|
/* 028AEA80 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AEA84 */ Gambit_fn_028AE5D0(cpu);
|
|
L_028AEA88: ; // 0x28aea88
|
|
/* 028AEA88 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEA88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEA8C */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA8C */ _t31 = _t30 & 0x00000001u;
|
|
/* 028AEA8C */ if (_t31) goto L_028AEAA0; else goto L_028AEA90;
|
|
L_028AEA90: ; // 0x28aea90
|
|
/* 028AEA90 */ cpu->r[5] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AEA94 */ cpu->r[4] = cpu->r[30] + 0x00000010u;
|
|
/* 028AEA98 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AEA9C */ Gambit_fn_028AE7D4(cpu);
|
|
L_028AEAA0: ; // 0x28aeaa0
|
|
/* 028AEAA0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AEAA4 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAA4 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028AEAA4 */ if (_t33) goto L_028AEAB0; else goto L_028AEAA8;
|
|
L_028AEAA8: ; // 0x28aeaa8
|
|
/* 028AEAA8 */ cpu->r[5] = 0x00000000u;
|
|
/* 028AEAAC */ _t34 = cpu->r[28] + 0x00000001u;
|
|
/* 028AEAAC */ rbrew_write8(cpu->mem, _t34, (uint8_t)cpu->r[5]);
|
|
L_028AEAB0: ; // 0x28aeab0
|
|
/* 028AEAB0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[31], 0x0000001Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028AEAB4 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAB4 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028AEAB4 */ if (_t36) goto L_028AEAC0; else goto L_028AEAB8;
|
|
L_028AEAB8: ; // 0x28aeab8
|
|
/* 028AEAB8 */ _t37 = cpu->r[30] + 0x00000058u;
|
|
/* 028AEAB8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AEABC */ _t38 = cpu->r[28] + 0x00000128u;
|
|
/* 028AEABC */ rbrew_write32(cpu->mem, _t38, cpu->r[12]);
|
|
L_028AEAC0: ; // 0x28aeac0
|
|
/* 028AEAC0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x0000001Au, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEAC4 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAC4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028AEAC4 */ if (_t40) goto L_028AEAD4; else goto L_028AEAC8;
|
|
L_028AEAC8: ; // 0x28aeac8
|
|
/* 028AEAC8 */ _t41 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028AEAC8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028AEACC */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEAD0 */ Gambit_fn_02A3A038(cpu);
|
|
L_028AEAD4: ; // 0x28aead4
|
|
/* 028AEAD4 */ cpu->r[5] = rbrew_rlwinm(cpu->r[31], 0x00000019u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AEAD8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAD8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028AEAD8 */ if (_t43) goto L_028AEAE8; else goto L_028AEADC;
|
|
L_028AEADC: ; // 0x28aeadc
|
|
/* 028AEADC */ _t44 = cpu->r[30] + 0x00000060u;
|
|
/* 028AEADC */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028AEAE0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEAE4 */ Gambit_fn_02A3A054(cpu);
|
|
L_028AEAE8: ; // 0x28aeae8
|
|
/* 028AEAE8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000018u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AEAEC */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAEC */ _t46 = _t45 & 0x00000001u;
|
|
/* 028AEAEC */ if (_t46) goto L_028AEAFC; else goto L_028AEAF0;
|
|
L_028AEAF0: ; // 0x28aeaf0
|
|
/* 028AEAF0 */ _t47 = cpu->r[30] + 0x00000064u;
|
|
/* 028AEAF0 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028AEAF4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEAF8 */ Gambit_fn_02A3A070(cpu);
|
|
L_028AEAFC: ; // 0x28aeafc
|
|
/* 028AEAFC */ cpu->r[9] = rbrew_rlwinm(cpu->r[31], 0x00000017u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AEB00 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB00 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028AEB00 */ if (_t49) goto L_028AEB14; else goto L_028AEB04;
|
|
L_028AEB04: ; // 0x28aeb04
|
|
/* 028AEB04 */ _t50 = cpu->r[30] + 0x00000068u;
|
|
/* 028AEB04 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028AEB08 */ _t51 = cpu->r[28] + 0x000000E4u;
|
|
/* 028AEB08 */ rbrew_write_f32(cpu->mem, _t51, cpu->f[0]);
|
|
/* 028AEB0C */ _t52 = cpu->r[30] + 0x0000006Cu;
|
|
/* 028AEB0C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028AEB10 */ _t53 = cpu->r[28] + 0x000000E8u;
|
|
/* 028AEB10 */ rbrew_write_f32(cpu->mem, _t53, cpu->f[13]);
|
|
L_028AEB14: ; // 0x28aeb14
|
|
/* 028AEB14 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x00000016u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEB18 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB18 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028AEB18 */ if (_t55) goto L_028AEB44; else goto L_028AEB1C;
|
|
L_028AEB1C: ; // 0x28aeb1c
|
|
/* 028AEB1C */ _t56 = cpu->r[30] + 0x00000070u;
|
|
/* 028AEB1C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028AEB20 */ _t57 = cpu->r[28] + 0x000000B0u;
|
|
/* 028AEB20 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028AEB24 */ _t58 = cpu->r[28] + 0x000000D8u;
|
|
/* 028AEB24 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[12]);
|
|
/* 028AEB28 */ _t59 = cpu->r[30] + 0x00000074u;
|
|
/* 028AEB28 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028AEB2C */ cpu->f[12] = cpu->f[12] * cpu->f[0];
|
|
/* 028AEB30 */ _t60 = cpu->r[28] + 0x000000B4u;
|
|
/* 028AEB30 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028AEB34 */ _t61 = cpu->r[28] + 0x000000DCu;
|
|
/* 028AEB34 */ rbrew_write_f32(cpu->mem, _t61, cpu->f[13]);
|
|
/* 028AEB38 */ cpu->f[13] = cpu->f[13] * cpu->f[0];
|
|
/* 028AEB3C */ _t62 = cpu->r[28] + 0x000000F0u;
|
|
/* 028AEB3C */ rbrew_write_f32(cpu->mem, _t62, cpu->f[12]);
|
|
/* 028AEB40 */ _t63 = cpu->r[28] + 0x000000F4u;
|
|
/* 028AEB40 */ rbrew_write_f32(cpu->mem, _t63, cpu->f[13]);
|
|
L_028AEB44: ; // 0x28aeb44
|
|
/* 028AEB44 */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x00000015u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AEB48 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB48 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028AEB48 */ if (_t65) goto L_028AEB58; else goto L_028AEB4C;
|
|
L_028AEB4C: ; // 0x28aeb4c
|
|
/* 028AEB4C */ _t66 = cpu->r[30] + 0x00000078u;
|
|
/* 028AEB4C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 028AEB50 */ _t67 = cpu->r[28] + 0x000000E4u;
|
|
/* 028AEB50 */ rbrew_write_f32(cpu->mem, _t67, cpu->f[0]);
|
|
/* 028AEB54 */ _t68 = cpu->r[28] + 0x000000E8u;
|
|
/* 028AEB54 */ rbrew_write_f32(cpu->mem, _t68, cpu->f[0]);
|
|
L_028AEB58: ; // 0x28aeb58
|
|
/* 028AEB58 */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x00000014u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AEB5C */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB5C */ _t70 = _t69 & 0x00000001u;
|
|
/* 028AEB5C */ if (_t70) goto L_028AEB68; else goto L_028AEB60;
|
|
L_028AEB60: ; // 0x28aeb60
|
|
/* 028AEB60 */ _t71 = cpu->r[30] + 0x0000007Cu;
|
|
/* 028AEB60 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 028AEB64 */ _t72 = cpu->r[28] + 0x0000013Cu;
|
|
/* 028AEB64 */ rbrew_write_f32(cpu->mem, _t72, cpu->f[12]);
|
|
L_028AEB68: ; // 0x28aeb68
|
|
/* 028AEB68 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000013u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AEB6C */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB6C */ _t74 = _t73 & 0x00000001u;
|
|
/* 028AEB6C */ if (_t74) goto L_028AEB78; else goto L_028AEB70;
|
|
L_028AEB70: ; // 0x28aeb70
|
|
/* 028AEB70 */ _t75 = cpu->r[30] + 0x00000080u;
|
|
/* 028AEB70 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 028AEB74 */ _t76 = cpu->r[28] + 0x00000140u;
|
|
/* 028AEB74 */ rbrew_write_f32(cpu->mem, _t76, cpu->f[13]);
|
|
L_028AEB78: ; // 0x28aeb78
|
|
/* 028AEB78 */ cpu->r[5] = rbrew_rlwinm(cpu->r[31], 0x00000012u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AEB7C */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB7C */ _t78 = _t77 & 0x00000001u;
|
|
/* 028AEB7C */ if (_t78) goto L_028AEB98; else goto L_028AEB80;
|
|
L_028AEB80: ; // 0x28aeb80
|
|
/* 028AEB80 */ _t79 = cpu->r[30] + 0x00000084u;
|
|
/* 028AEB80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028AEB84 */ _t80 = cpu->r[28] + 0x00000144u;
|
|
/* 028AEB84 */ rbrew_write32(cpu->mem, _t80, cpu->r[0]);
|
|
/* 028AEB88 */ _t81 = cpu->r[30] + 0x00000088u;
|
|
/* 028AEB88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028AEB8C */ _t82 = cpu->r[28] + 0x00000148u;
|
|
/* 028AEB8C */ rbrew_write32(cpu->mem, _t82, cpu->r[0]);
|
|
/* 028AEB90 */ _t83 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028AEB90 */ cpu->r[8] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028AEB94 */ _t84 = cpu->r[28] + 0x0000014Cu;
|
|
/* 028AEB94 */ rbrew_write32(cpu->mem, _t84, cpu->r[8]);
|
|
L_028AEB98: ; // 0x28aeb98
|
|
/* 028AEB98 */ cpu->r[9] = rbrew_rlwinm(cpu->r[31], 0x00000011u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AEB9C */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB9C */ _t86 = _t85 & 0x00000001u;
|
|
/* 028AEB9C */ if (_t86) goto L_028AEBA8; else goto L_028AEBA0;
|
|
L_028AEBA0: ; // 0x28aeba0
|
|
/* 028AEBA0 */ _t87 = cpu->r[30] + 0x00000090u;
|
|
/* 028AEBA0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t87);
|
|
/* 028AEBA4 */ _t88 = cpu->r[28] + 0x0000015Cu;
|
|
/* 028AEBA4 */ rbrew_write_f32(cpu->mem, _t88, cpu->f[12]);
|
|
L_028AEBA8: ; // 0x28aeba8
|
|
/* 028AEBA8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEBA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AEBAC */ _t89 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEBAC */ _t90 = _t89 & 0x00000001u;
|
|
/* 028AEBAC */ if (_t90) goto L_028AEBD0; else goto L_028AEBB0;
|
|
L_028AEBB0: ; // 0x28aebb0
|
|
/* 028AEBB0 */ _t91 = cpu->r[30] + 0x00000094u;
|
|
/* 028AEBB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028AEBB4 */ _t92 = cpu->r[28] + 0x00000160u;
|
|
/* 028AEBB4 */ rbrew_write32(cpu->mem, _t92, cpu->r[0]);
|
|
/* 028AEBB8 */ _t93 = cpu->r[30] + 0x00000098u;
|
|
/* 028AEBB8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028AEBBC */ cpu->r[5] = 0x00000001u;
|
|
/* 028AEBC0 */ _t94 = cpu->r[28] + 0x00000164u;
|
|
/* 028AEBC0 */ rbrew_write32(cpu->mem, _t94, cpu->r[9]);
|
|
/* 028AEBC4 */ _t95 = cpu->r[30] + 0x0000009Cu;
|
|
/* 028AEBC4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028AEBC8 */ _t96 = cpu->r[28] + 0x00000005u;
|
|
/* 028AEBC8 */ rbrew_write8(cpu->mem, _t96, (uint8_t)cpu->r[5]);
|
|
/* 028AEBCC */ _t97 = cpu->r[28] + 0x00000168u;
|
|
/* 028AEBCC */ rbrew_write32(cpu->mem, _t97, cpu->r[11]);
|
|
L_028AEBD0: ; // 0x28aebd0
|
|
/* 028AEBD0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[31], 0x0000000Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEBD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028AEBD4 */ _t98 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEBD4 */ _t99 = _t98 & 0x00000001u;
|
|
/* 028AEBD4 */ if (_t99) goto L_028AEBF0; else goto L_028AEBD8;
|
|
L_028AEBD8: ; // 0x28aebd8
|
|
/* 028AEBD8 */ _t100 = cpu->r[30] + 0x000000A0u;
|
|
/* 028AEBD8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028AEBDC */ _t101 = cpu->r[28] + 0x000000CCu;
|
|
/* 028AEBDC */ rbrew_write32(cpu->mem, _t101, cpu->r[8]);
|
|
/* 028AEBE0 */ _t102 = cpu->r[30] + 0x000000A4u;
|
|
/* 028AEBE0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028AEBE4 */ _t103 = cpu->r[28] + 0x000000D0u;
|
|
/* 028AEBE4 */ rbrew_write32(cpu->mem, _t103, cpu->r[9]);
|
|
/* 028AEBE8 */ _t104 = cpu->r[30] + 0x000000A8u;
|
|
/* 028AEBE8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028AEBEC */ _t105 = cpu->r[28] + 0x000000D4u;
|
|
/* 028AEBEC */ rbrew_write32(cpu->mem, _t105, cpu->r[11]);
|
|
L_028AEBF0: ; // 0x28aebf0
|
|
/* 028AEBF0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x0000000Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEBF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AEBF4 */ _t106 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEBF4 */ _t107 = _t106 & 0x00000001u;
|
|
/* 028AEBF4 */ if (_t107) goto L_028AEC04; else goto L_028AEBF8;
|
|
L_028AEBF8: ; // 0x28aebf8
|
|
/* 028AEBF8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEBFC */ cpu->r[4] = cpu->r[30] + 0x000000ACu;
|
|
/* 028AEC00 */ Gambit_fn_02A3A4D4(cpu);
|
|
L_028AEC04: ; // 0x28aec04
|
|
/* 028AEC04 */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x0000000Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AEC08 */ _t108 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC08 */ _t109 = _t108 & 0x00000001u;
|
|
/* 028AEC08 */ if (_t109) goto L_028AEC18; else goto L_028AEC0C;
|
|
L_028AEC0C: ; // 0x28aec0c
|
|
/* 028AEC0C */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEC10 */ cpu->r[4] = cpu->r[30] + 0x000000BCu;
|
|
/* 028AEC14 */ Gambit_fn_02A3A510(cpu);
|
|
L_028AEC18: ; // 0x28aec18
|
|
/* 028AEC18 */ cpu->r[8] = rbrew_rlwinm(cpu->r[31], 0x0000000Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AEC1C */ _t110 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC1C */ _t111 = _t110 & 0x00000001u;
|
|
/* 028AEC1C */ if (_t111) goto L_028AEC38; else goto L_028AEC20;
|
|
L_028AEC20: ; // 0x28aec20
|
|
/* 028AEC20 */ _t112 = cpu->r[30] + 0x000000CCu;
|
|
/* 028AEC20 */ cpu->r[4] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028AEC24 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEC28 */ Gambit_fn_02A3AC34(cpu);
|
|
/* 028AEC2C */ _t113 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEC2C */ cpu->r[9] = rbrew_read32(cpu->mem, _t113);
|
|
/* 028AEC30 */ cpu->r[9] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Cu, 0x0000001Au);
|
|
/* 028AEC34 */ _t114 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEC34 */ rbrew_write32(cpu->mem, _t114, cpu->r[9]);
|
|
L_028AEC38: ; // 0x28aec38
|
|
/* 028AEC38 */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x0000000Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AEC3C */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC3C */ _t116 = _t115 & 0x00000001u;
|
|
/* 028AEC3C */ if (_t116) goto L_028AEC48; else goto L_028AEC40;
|
|
L_028AEC40: ; // 0x28aec40
|
|
/* 028AEC40 */ _t117 = cpu->r[30] + 0x000000D0u;
|
|
/* 028AEC40 */ cpu->r[12] = rbrew_read8(cpu->mem, _t117);
|
|
/* 028AEC44 */ _t118 = cpu->r[28] + 0x00000006u;
|
|
/* 028AEC44 */ rbrew_write8(cpu->mem, _t118, (uint8_t)cpu->r[12]);
|
|
L_028AEC48: ; // 0x28aec48
|
|
/* 028AEC48 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x0000000Au, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AEC4C */ _t119 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC4C */ _t120 = _t119 & 0x00000001u;
|
|
/* 028AEC4C */ if (_t120) goto L_028AEC5C; else goto L_028AEC50;
|
|
L_028AEC50: ; // 0x28aec50
|
|
/* 028AEC50 */ _t121 = cpu->r[30] + 0x000000D4u;
|
|
/* 028AEC50 */ cpu->r[4] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028AEC54 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEC58 */ Gambit_fn_02A3A08C(cpu);
|
|
L_028AEC5C: ; // 0x28aec5c
|
|
/* 028AEC5C */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x00000009u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AEC60 */ _t122 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC60 */ _t123 = _t122 & 0x00000001u;
|
|
/* 028AEC60 */ if (_t123) goto L_028AEC6C; else goto L_028AEC64;
|
|
L_028AEC64: ; // 0x28aec64
|
|
/* 028AEC64 */ _t124 = cpu->r[30] + 0x000000E0u;
|
|
/* 028AEC64 */ cpu->r[7] = rbrew_read8(cpu->mem, _t124);
|
|
/* 028AEC68 */ _t125 = cpu->r[28] + 0x00000009u;
|
|
/* 028AEC68 */ rbrew_write8(cpu->mem, _t125, (uint8_t)cpu->r[7]);
|
|
L_028AEC6C: ; // 0x28aec6c
|
|
/* 028AEC6C */ _t126 = cpu->r[1] + 0x00000008u;
|
|
/* 028AEC6C */ cpu->r[28] = rbrew_read32(cpu->mem, _t126);
|
|
/* 028AEC70 */ _t127 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AEC70 */ cpu->r[29] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028AEC74 */ _t128 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AEC74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028AEC78 */ _t129 = cpu->r[1] + 0x00000010u;
|
|
/* 028AEC78 */ cpu->r[30] = rbrew_read32(cpu->mem, _t129);
|
|
/* 028AEC7C */ cpu->lr = cpu->r[0];
|
|
/* 028AEC80 */ _t130 = cpu->r[1] + 0x00000014u;
|
|
/* 028AEC80 */ cpu->r[31] = rbrew_read32(cpu->mem, _t130);
|
|
/* 028AEC84 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AEC88 */ return;
|
|
}
|
|
|
|
// fn_028AE9F0 @ 0x28ae9f0
|
|
void Gambit_fn_028AE9F0(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;
|
|
|
|
L_028AE9F0: ; // 0x28ae9f0
|
|
/* 028AE9F0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028AE9F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AE9F0 */ cpu->r[1] = _t0;
|
|
/* 028AE9F4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028AE9F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AE9F8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028AE9F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028AE9FC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AE9FC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028AEA00 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028AEA00 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028AEA04 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AEA04 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028AEA08 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AEA0C */ _t6 = cpu->r[5] + 0x00000000u;
|
|
/* 028AEA0C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028AEA10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AEA14 */ cpu->r[30] = cpu->r[4];
|
|
/* 028AEA18 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA18 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028AEA18 */ if (_t8) goto L_028AEC6C; else goto L_028AEA1C;
|
|
L_028AEA1C: ; // 0x28aea1c
|
|
/* 028AEA1C */ _t9 = cpu->r[29] + 0x00000034u;
|
|
/* 028AEA1C */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AEA20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028AEA24 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA24 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AEA24 */ if (_t11) goto L_028AEC6C; else goto L_028AEA28;
|
|
L_028AEA28: ; // 0x28aea28
|
|
/* 028AEA28 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEA28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEA2C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA2C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AEA2C */ if (_t13) goto L_028AEA54; else goto L_028AEA30;
|
|
L_028AEA30: ; // 0x28aea30
|
|
/* 028AEA30 */ _t14 = cpu->r[30] + 0x00000000u;
|
|
/* 028AEA30 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028AEA34 */ _t15 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEA34 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AEA38 */ _t16 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028AEA38 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[12]);
|
|
/* 028AEA3C */ _t17 = cpu->r[30] + 0x00000004u;
|
|
/* 028AEA3C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028AEA40 */ cpu->r[12] = cpu->r[12] | 0x00000004u;
|
|
/* 028AEA44 */ _t18 = cpu->r[29] + 0x00000040u;
|
|
/* 028AEA44 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[13]);
|
|
/* 028AEA48 */ _t19 = cpu->r[30] + 0x00000008u;
|
|
/* 028AEA48 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028AEA4C */ _t20 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEA4C */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 028AEA50 */ _t21 = cpu->r[29] + 0x00000044u;
|
|
/* 028AEA50 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[12]);
|
|
L_028AEA54: ; // 0x28aea54
|
|
/* 028AEA54 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEA54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEA58 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA58 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028AEA58 */ if (_t23) goto L_028AEA70; else goto L_028AEA5C;
|
|
L_028AEA5C: ; // 0x28aea5c
|
|
/* 028AEA5C */ _t24 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEA5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AEA60 */ _t25 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AEA60 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 028AEA64 */ cpu->r[0] = cpu->r[0] | 0x00000008u;
|
|
/* 028AEA68 */ _t26 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEA68 */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028AEA6C */ _t27 = cpu->r[29] + 0x00000048u;
|
|
/* 028AEA6C */ rbrew_write_f32(cpu->mem, _t27, cpu->f[0]);
|
|
L_028AEA70: ; // 0x28aea70
|
|
/* 028AEA70 */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEA70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AEA74 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA74 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028AEA74 */ if (_t29) goto L_028AEA88; else goto L_028AEA78;
|
|
L_028AEA78: ; // 0x28aea78
|
|
/* 028AEA78 */ cpu->r[5] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AEA7C */ cpu->r[4] = cpu->r[30] + 0x00000028u;
|
|
/* 028AEA80 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AEA84 */ Gambit_fn_028AE5D0(cpu);
|
|
L_028AEA88: ; // 0x28aea88
|
|
/* 028AEA88 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEA88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEA8C */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEA8C */ _t31 = _t30 & 0x00000001u;
|
|
/* 028AEA8C */ if (_t31) goto L_028AEAA0; else goto L_028AEA90;
|
|
L_028AEA90: ; // 0x28aea90
|
|
/* 028AEA90 */ cpu->r[5] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AEA94 */ cpu->r[4] = cpu->r[30] + 0x00000010u;
|
|
/* 028AEA98 */ cpu->r[3] = cpu->r[29];
|
|
/* 028AEA9C */ Gambit_fn_028AE7D4(cpu);
|
|
L_028AEAA0: ; // 0x28aeaa0
|
|
/* 028AEAA0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AEAA4 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAA4 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028AEAA4 */ if (_t33) goto L_028AEAB0; else goto L_028AEAA8;
|
|
L_028AEAA8: ; // 0x28aeaa8
|
|
/* 028AEAA8 */ cpu->r[5] = 0x00000000u;
|
|
/* 028AEAAC */ _t34 = cpu->r[28] + 0x00000001u;
|
|
/* 028AEAAC */ rbrew_write8(cpu->mem, _t34, (uint8_t)cpu->r[5]);
|
|
L_028AEAB0: ; // 0x28aeab0
|
|
/* 028AEAB0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[31], 0x0000001Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028AEAB4 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAB4 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028AEAB4 */ if (_t36) goto L_028AEAC0; else goto L_028AEAB8;
|
|
L_028AEAB8: ; // 0x28aeab8
|
|
/* 028AEAB8 */ _t37 = cpu->r[30] + 0x00000058u;
|
|
/* 028AEAB8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AEABC */ _t38 = cpu->r[28] + 0x00000128u;
|
|
/* 028AEABC */ rbrew_write32(cpu->mem, _t38, cpu->r[12]);
|
|
L_028AEAC0: ; // 0x28aeac0
|
|
/* 028AEAC0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x0000001Au, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEAC4 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAC4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028AEAC4 */ if (_t40) goto L_028AEAD4; else goto L_028AEAC8;
|
|
L_028AEAC8: ; // 0x28aeac8
|
|
/* 028AEAC8 */ _t41 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028AEAC8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 028AEACC */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEAD0 */ Gambit_fn_02A3A038(cpu);
|
|
L_028AEAD4: ; // 0x28aead4
|
|
/* 028AEAD4 */ cpu->r[5] = rbrew_rlwinm(cpu->r[31], 0x00000019u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AEAD8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAD8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028AEAD8 */ if (_t43) goto L_028AEAE8; else goto L_028AEADC;
|
|
L_028AEADC: ; // 0x28aeadc
|
|
/* 028AEADC */ _t44 = cpu->r[30] + 0x00000060u;
|
|
/* 028AEADC */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 028AEAE0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEAE4 */ Gambit_fn_02A3A054(cpu);
|
|
L_028AEAE8: ; // 0x28aeae8
|
|
/* 028AEAE8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000018u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AEAEC */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEAEC */ _t46 = _t45 & 0x00000001u;
|
|
/* 028AEAEC */ if (_t46) goto L_028AEAFC; else goto L_028AEAF0;
|
|
L_028AEAF0: ; // 0x28aeaf0
|
|
/* 028AEAF0 */ _t47 = cpu->r[30] + 0x00000064u;
|
|
/* 028AEAF0 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 028AEAF4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEAF8 */ Gambit_fn_02A3A070(cpu);
|
|
L_028AEAFC: ; // 0x28aeafc
|
|
/* 028AEAFC */ cpu->r[9] = rbrew_rlwinm(cpu->r[31], 0x00000017u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEAFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AEB00 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB00 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028AEB00 */ if (_t49) goto L_028AEB14; else goto L_028AEB04;
|
|
L_028AEB04: ; // 0x28aeb04
|
|
/* 028AEB04 */ _t50 = cpu->r[30] + 0x00000068u;
|
|
/* 028AEB04 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028AEB08 */ _t51 = cpu->r[28] + 0x000000E4u;
|
|
/* 028AEB08 */ rbrew_write_f32(cpu->mem, _t51, cpu->f[0]);
|
|
/* 028AEB0C */ _t52 = cpu->r[30] + 0x0000006Cu;
|
|
/* 028AEB0C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 028AEB10 */ _t53 = cpu->r[28] + 0x000000E8u;
|
|
/* 028AEB10 */ rbrew_write_f32(cpu->mem, _t53, cpu->f[13]);
|
|
L_028AEB14: ; // 0x28aeb14
|
|
/* 028AEB14 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x00000016u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AEB18 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB18 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028AEB18 */ if (_t55) goto L_028AEB44; else goto L_028AEB1C;
|
|
L_028AEB1C: ; // 0x28aeb1c
|
|
/* 028AEB1C */ _t56 = cpu->r[30] + 0x00000070u;
|
|
/* 028AEB1C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028AEB20 */ _t57 = cpu->r[28] + 0x000000B0u;
|
|
/* 028AEB20 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028AEB24 */ _t58 = cpu->r[28] + 0x000000D8u;
|
|
/* 028AEB24 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[12]);
|
|
/* 028AEB28 */ _t59 = cpu->r[30] + 0x00000074u;
|
|
/* 028AEB28 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028AEB2C */ cpu->f[12] = cpu->f[12] * cpu->f[0];
|
|
/* 028AEB30 */ _t60 = cpu->r[28] + 0x000000B4u;
|
|
/* 028AEB30 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 028AEB34 */ _t61 = cpu->r[28] + 0x000000DCu;
|
|
/* 028AEB34 */ rbrew_write_f32(cpu->mem, _t61, cpu->f[13]);
|
|
/* 028AEB38 */ cpu->f[13] = cpu->f[13] * cpu->f[0];
|
|
/* 028AEB3C */ _t62 = cpu->r[28] + 0x000000F0u;
|
|
/* 028AEB3C */ rbrew_write_f32(cpu->mem, _t62, cpu->f[12]);
|
|
/* 028AEB40 */ _t63 = cpu->r[28] + 0x000000F4u;
|
|
/* 028AEB40 */ rbrew_write_f32(cpu->mem, _t63, cpu->f[13]);
|
|
L_028AEB44: ; // 0x28aeb44
|
|
/* 028AEB44 */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x00000015u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AEB48 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB48 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028AEB48 */ if (_t65) goto L_028AEB58; else goto L_028AEB4C;
|
|
L_028AEB4C: ; // 0x28aeb4c
|
|
/* 028AEB4C */ _t66 = cpu->r[30] + 0x00000078u;
|
|
/* 028AEB4C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 028AEB50 */ _t67 = cpu->r[28] + 0x000000E4u;
|
|
/* 028AEB50 */ rbrew_write_f32(cpu->mem, _t67, cpu->f[0]);
|
|
/* 028AEB54 */ _t68 = cpu->r[28] + 0x000000E8u;
|
|
/* 028AEB54 */ rbrew_write_f32(cpu->mem, _t68, cpu->f[0]);
|
|
L_028AEB58: ; // 0x28aeb58
|
|
/* 028AEB58 */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x00000014u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AEB5C */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB5C */ _t70 = _t69 & 0x00000001u;
|
|
/* 028AEB5C */ if (_t70) goto L_028AEB68; else goto L_028AEB60;
|
|
L_028AEB60: ; // 0x28aeb60
|
|
/* 028AEB60 */ _t71 = cpu->r[30] + 0x0000007Cu;
|
|
/* 028AEB60 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 028AEB64 */ _t72 = cpu->r[28] + 0x0000013Cu;
|
|
/* 028AEB64 */ rbrew_write_f32(cpu->mem, _t72, cpu->f[12]);
|
|
L_028AEB68: ; // 0x28aeb68
|
|
/* 028AEB68 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000013u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AEB6C */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB6C */ _t74 = _t73 & 0x00000001u;
|
|
/* 028AEB6C */ if (_t74) goto L_028AEB78; else goto L_028AEB70;
|
|
L_028AEB70: ; // 0x28aeb70
|
|
/* 028AEB70 */ _t75 = cpu->r[30] + 0x00000080u;
|
|
/* 028AEB70 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 028AEB74 */ _t76 = cpu->r[28] + 0x00000140u;
|
|
/* 028AEB74 */ rbrew_write_f32(cpu->mem, _t76, cpu->f[13]);
|
|
L_028AEB78: ; // 0x28aeb78
|
|
/* 028AEB78 */ cpu->r[5] = rbrew_rlwinm(cpu->r[31], 0x00000012u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028AEB7C */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB7C */ _t78 = _t77 & 0x00000001u;
|
|
/* 028AEB7C */ if (_t78) goto L_028AEB98; else goto L_028AEB80;
|
|
L_028AEB80: ; // 0x28aeb80
|
|
/* 028AEB80 */ _t79 = cpu->r[30] + 0x00000084u;
|
|
/* 028AEB80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028AEB84 */ _t80 = cpu->r[28] + 0x00000144u;
|
|
/* 028AEB84 */ rbrew_write32(cpu->mem, _t80, cpu->r[0]);
|
|
/* 028AEB88 */ _t81 = cpu->r[30] + 0x00000088u;
|
|
/* 028AEB88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028AEB8C */ _t82 = cpu->r[28] + 0x00000148u;
|
|
/* 028AEB8C */ rbrew_write32(cpu->mem, _t82, cpu->r[0]);
|
|
/* 028AEB90 */ _t83 = cpu->r[30] + 0x0000008Cu;
|
|
/* 028AEB90 */ cpu->r[8] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028AEB94 */ _t84 = cpu->r[28] + 0x0000014Cu;
|
|
/* 028AEB94 */ rbrew_write32(cpu->mem, _t84, cpu->r[8]);
|
|
L_028AEB98: ; // 0x28aeb98
|
|
/* 028AEB98 */ cpu->r[9] = rbrew_rlwinm(cpu->r[31], 0x00000011u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEB98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AEB9C */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEB9C */ _t86 = _t85 & 0x00000001u;
|
|
/* 028AEB9C */ if (_t86) goto L_028AEBA8; else goto L_028AEBA0;
|
|
L_028AEBA0: ; // 0x28aeba0
|
|
/* 028AEBA0 */ _t87 = cpu->r[30] + 0x00000090u;
|
|
/* 028AEBA0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t87);
|
|
/* 028AEBA4 */ _t88 = cpu->r[28] + 0x0000015Cu;
|
|
/* 028AEBA4 */ rbrew_write_f32(cpu->mem, _t88, cpu->f[12]);
|
|
L_028AEBA8: ; // 0x28aeba8
|
|
/* 028AEBA8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEBA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AEBAC */ _t89 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEBAC */ _t90 = _t89 & 0x00000001u;
|
|
/* 028AEBAC */ if (_t90) goto L_028AEBD0; else goto L_028AEBB0;
|
|
L_028AEBB0: ; // 0x28aebb0
|
|
/* 028AEBB0 */ _t91 = cpu->r[30] + 0x00000094u;
|
|
/* 028AEBB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028AEBB4 */ _t92 = cpu->r[28] + 0x00000160u;
|
|
/* 028AEBB4 */ rbrew_write32(cpu->mem, _t92, cpu->r[0]);
|
|
/* 028AEBB8 */ _t93 = cpu->r[30] + 0x00000098u;
|
|
/* 028AEBB8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028AEBBC */ cpu->r[5] = 0x00000001u;
|
|
/* 028AEBC0 */ _t94 = cpu->r[28] + 0x00000164u;
|
|
/* 028AEBC0 */ rbrew_write32(cpu->mem, _t94, cpu->r[9]);
|
|
/* 028AEBC4 */ _t95 = cpu->r[30] + 0x0000009Cu;
|
|
/* 028AEBC4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028AEBC8 */ _t96 = cpu->r[28] + 0x00000005u;
|
|
/* 028AEBC8 */ rbrew_write8(cpu->mem, _t96, (uint8_t)cpu->r[5]);
|
|
/* 028AEBCC */ _t97 = cpu->r[28] + 0x00000168u;
|
|
/* 028AEBCC */ rbrew_write32(cpu->mem, _t97, cpu->r[11]);
|
|
L_028AEBD0: ; // 0x28aebd0
|
|
/* 028AEBD0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[31], 0x0000000Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEBD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028AEBD4 */ _t98 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEBD4 */ _t99 = _t98 & 0x00000001u;
|
|
/* 028AEBD4 */ if (_t99) goto L_028AEBF0; else goto L_028AEBD8;
|
|
L_028AEBD8: ; // 0x28aebd8
|
|
/* 028AEBD8 */ _t100 = cpu->r[30] + 0x000000A0u;
|
|
/* 028AEBD8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028AEBDC */ _t101 = cpu->r[28] + 0x000000CCu;
|
|
/* 028AEBDC */ rbrew_write32(cpu->mem, _t101, cpu->r[8]);
|
|
/* 028AEBE0 */ _t102 = cpu->r[30] + 0x000000A4u;
|
|
/* 028AEBE0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028AEBE4 */ _t103 = cpu->r[28] + 0x000000D0u;
|
|
/* 028AEBE4 */ rbrew_write32(cpu->mem, _t103, cpu->r[9]);
|
|
/* 028AEBE8 */ _t104 = cpu->r[30] + 0x000000A8u;
|
|
/* 028AEBE8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028AEBEC */ _t105 = cpu->r[28] + 0x000000D4u;
|
|
/* 028AEBEC */ rbrew_write32(cpu->mem, _t105, cpu->r[11]);
|
|
L_028AEBF0: ; // 0x28aebf0
|
|
/* 028AEBF0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x0000000Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEBF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AEBF4 */ _t106 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEBF4 */ _t107 = _t106 & 0x00000001u;
|
|
/* 028AEBF4 */ if (_t107) goto L_028AEC04; else goto L_028AEBF8;
|
|
L_028AEBF8: ; // 0x28aebf8
|
|
/* 028AEBF8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEBFC */ cpu->r[4] = cpu->r[30] + 0x000000ACu;
|
|
/* 028AEC00 */ Gambit_fn_02A3A4D4(cpu);
|
|
L_028AEC04: ; // 0x28aec04
|
|
/* 028AEC04 */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x0000000Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AEC08 */ _t108 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC08 */ _t109 = _t108 & 0x00000001u;
|
|
/* 028AEC08 */ if (_t109) goto L_028AEC18; else goto L_028AEC0C;
|
|
L_028AEC0C: ; // 0x28aec0c
|
|
/* 028AEC0C */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEC10 */ cpu->r[4] = cpu->r[30] + 0x000000BCu;
|
|
/* 028AEC14 */ Gambit_fn_02A3A510(cpu);
|
|
L_028AEC18: ; // 0x28aec18
|
|
/* 028AEC18 */ cpu->r[8] = rbrew_rlwinm(cpu->r[31], 0x0000000Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AEC1C */ _t110 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC1C */ _t111 = _t110 & 0x00000001u;
|
|
/* 028AEC1C */ if (_t111) goto L_028AEC38; else goto L_028AEC20;
|
|
L_028AEC20: ; // 0x28aec20
|
|
/* 028AEC20 */ _t112 = cpu->r[30] + 0x000000CCu;
|
|
/* 028AEC20 */ cpu->r[4] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028AEC24 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEC28 */ Gambit_fn_02A3AC34(cpu);
|
|
/* 028AEC2C */ _t113 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEC2C */ cpu->r[9] = rbrew_read32(cpu->mem, _t113);
|
|
/* 028AEC30 */ cpu->r[9] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Cu, 0x0000001Au);
|
|
/* 028AEC34 */ _t114 = cpu->r[29] + 0x00000028u;
|
|
/* 028AEC34 */ rbrew_write32(cpu->mem, _t114, cpu->r[9]);
|
|
L_028AEC38: ; // 0x28aec38
|
|
/* 028AEC38 */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x0000000Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AEC3C */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC3C */ _t116 = _t115 & 0x00000001u;
|
|
/* 028AEC3C */ if (_t116) goto L_028AEC48; else goto L_028AEC40;
|
|
L_028AEC40: ; // 0x28aec40
|
|
/* 028AEC40 */ _t117 = cpu->r[30] + 0x000000D0u;
|
|
/* 028AEC40 */ cpu->r[12] = rbrew_read8(cpu->mem, _t117);
|
|
/* 028AEC44 */ _t118 = cpu->r[28] + 0x00000006u;
|
|
/* 028AEC44 */ rbrew_write8(cpu->mem, _t118, (uint8_t)cpu->r[12]);
|
|
L_028AEC48: ; // 0x28aec48
|
|
/* 028AEC48 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x0000000Au, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AEC4C */ _t119 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC4C */ _t120 = _t119 & 0x00000001u;
|
|
/* 028AEC4C */ if (_t120) goto L_028AEC5C; else goto L_028AEC50;
|
|
L_028AEC50: ; // 0x28aec50
|
|
/* 028AEC50 */ _t121 = cpu->r[30] + 0x000000D4u;
|
|
/* 028AEC50 */ cpu->r[4] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028AEC54 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AEC58 */ Gambit_fn_02A3A08C(cpu);
|
|
L_028AEC5C: ; // 0x28aec5c
|
|
/* 028AEC5C */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x00000009u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AEC5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028AEC60 */ _t122 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEC60 */ _t123 = _t122 & 0x00000001u;
|
|
/* 028AEC60 */ if (_t123) goto L_028AEC6C; else goto L_028AEC64;
|
|
L_028AEC64: ; // 0x28aec64
|
|
/* 028AEC64 */ _t124 = cpu->r[30] + 0x000000E0u;
|
|
/* 028AEC64 */ cpu->r[7] = rbrew_read8(cpu->mem, _t124);
|
|
/* 028AEC68 */ _t125 = cpu->r[28] + 0x00000009u;
|
|
/* 028AEC68 */ rbrew_write8(cpu->mem, _t125, (uint8_t)cpu->r[7]);
|
|
L_028AEC6C: ; // 0x28aec6c
|
|
/* 028AEC6C */ _t126 = cpu->r[1] + 0x00000008u;
|
|
/* 028AEC6C */ cpu->r[28] = rbrew_read32(cpu->mem, _t126);
|
|
/* 028AEC70 */ _t127 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AEC70 */ cpu->r[29] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028AEC74 */ _t128 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AEC74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028AEC78 */ _t129 = cpu->r[1] + 0x00000010u;
|
|
/* 028AEC78 */ cpu->r[30] = rbrew_read32(cpu->mem, _t129);
|
|
/* 028AEC7C */ cpu->lr = cpu->r[0];
|
|
/* 028AEC80 */ _t130 = cpu->r[1] + 0x00000014u;
|
|
/* 028AEC80 */ cpu->r[31] = rbrew_read32(cpu->mem, _t130);
|
|
/* 028AEC84 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028AEC88 */ return;
|
|
}
|
|
|
|
// fn_028AEC8C @ 0x28aec8c
|
|
void Gambit_fn_028AEC8C(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_028AEC8C: ; // 0x28aec8c
|
|
/* 028AEC8C */ _t0 = cpu->r[1] + 0xFFFFFEC0u;
|
|
/* 028AEC8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AEC8C */ cpu->r[1] = _t0;
|
|
/* 028AEC90 */ /* nop */
|
|
/* 028AEC94 */ cpu->r[0] = cpu->lr;
|
|
/* 028AEC98 */ _t1 = cpu->r[1] + 0x00000144u;
|
|
/* 028AEC98 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028AEC9C */ cpu->r[31] = 0x101D0000u;
|
|
/* 028AECA0 */ _t2 = cpu->r[31] + 0xFFFF9A5Cu;
|
|
/* 028AECA0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028AECA0 */ cpu->r[31] = _t2;
|
|
/* 028AECA4 */ cpu->r[28] = cpu->r[3];
|
|
/* 028AECA8 */ _t3 = cpu->r[7] + 0x00000068u;
|
|
/* 028AECA8 */ cpu->r[26] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028AECAC */ _t4 = cpu->r[28] + 0x00000010u;
|
|
/* 028AECAC */ cpu->r[25] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028AECB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028AECB4 */ _t5 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028AECB4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AECB8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AECB8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AECB8 */ if (_t7) goto L_028AECF0; else goto L_028AECBC;
|
|
L_028AECBC: ; // 0x28aecbc
|
|
/* 028AECBC */ _t8 = cpu->r[1] + 0x00000020u;
|
|
/* 028AECBC */ rbrew_write32(cpu->mem, _t8, cpu->r[25]);
|
|
/* 028AECC0 */ cpu->r[8] = 0x00000000u;
|
|
/* 028AECC4 */ _t9 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AECC4 */ rbrew_write32(cpu->mem, _t9, cpu->r[28]);
|
|
/* 028AECC8 */ _t10 = cpu->r[1] + 0x00000028u;
|
|
/* 028AECC8 */ rbrew_write32(cpu->mem, _t10, cpu->r[8]);
|
|
/* 028AECCC */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 028AECCC */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 028AECD0 */ _t12 = cpu->r[26] + 0x00000000u;
|
|
/* 028AECD0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AECD4 */ _t13 = cpu->r[9] + 0x00000024u;
|
|
/* 028AECD4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028AECD8 */ cpu->ctr = cpu->r[6];
|
|
/* 028AECDC */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 028AECE0 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AECE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AECE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AECEC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AECEC */ _t15 = _t14 & 0x00000001u;
|
|
/* 028AECEC */ if (_t15) goto L_028AECF0; else goto L_028AF13C;
|
|
L_028AECF0: ; // 0x28aecf0
|
|
/* 028AECF0 */ _t16 = cpu->r[30] + 0x00000060u;
|
|
/* 028AECF0 */ cpu->r[27] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AECF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028AECF8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AECF8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AECF8 */ if (_t18) goto L_028AED30; else goto L_028AECFC;
|
|
L_028AECFC: ; // 0x28aecfc
|
|
/* 028AECFC */ _t19 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028AECFC */ rbrew_write32(cpu->mem, _t19, cpu->r[25]);
|
|
/* 028AED00 */ cpu->r[0] = 0x00000000u;
|
|
/* 028AED04 */ _t20 = cpu->r[1] + 0x00000048u;
|
|
/* 028AED04 */ rbrew_write32(cpu->mem, _t20, cpu->r[28]);
|
|
/* 028AED08 */ _t21 = cpu->r[1] + 0x00000044u;
|
|
/* 028AED08 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028AED0C */ _t22 = cpu->r[1] + 0x00000040u;
|
|
/* 028AED0C */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028AED10 */ _t23 = cpu->r[27] + 0x00000000u;
|
|
/* 028AED10 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AED14 */ _t24 = cpu->r[12] + 0x00000024u;
|
|
/* 028AED14 */ cpu->r[5] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AED18 */ cpu->ctr = cpu->r[5];
|
|
/* 028AED1C */ cpu->r[4] = cpu->r[1] + 0x00000034u;
|
|
/* 028AED20 */ cpu->r[3] = cpu->r[27];
|
|
/* 028AED24 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AED28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AED2C */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AED2C */ _t26 = _t25 & 0x00000001u;
|
|
/* 028AED2C */ if (_t26) goto L_028AED30; else goto L_028AF13C;
|
|
L_028AED30: ; // 0x28aed30
|
|
/* 028AED30 */ _t27 = cpu->r[31] + 0x00000000u;
|
|
/* 028AED30 */ cpu->r[7] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AED34 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AED38 */ _t28 = cpu->r[7] + 0x00000060u;
|
|
/* 028AED38 */ cpu->r[22] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AED3C */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AED40 */ _t29 = cpu->r[28] + 0x00000010u;
|
|
/* 028AED40 */ cpu->r[4] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AED44 */ cpu->r[24] = cpu->r[3];
|
|
/* 028AED48 */ Gambit_fn_028B0A2C(cpu);
|
|
/* 028AED4C */ cpu->r[29] = 0x10110000u;
|
|
/* 028AED50 */ cpu->r[11] = 0x00000080u;
|
|
/* 028AED54 */ _t30 = cpu->r[29] + 0x00007399u;
|
|
/* 028AED54 */ cpu->r[29] = rbrew_read8(cpu->mem, _t30);
|
|
/* 028AED58 */ cpu->r[12] = 0x10140000u;
|
|
/* 028AED5C */ cpu->r[31] = cpu->r[1] + 0x0000008Cu;
|
|
/* 028AED60 */ cpu->r[10] = 0x10140000u;
|
|
/* 028AED64 */ _t31 = cpu->r[1] + 0x00000088u;
|
|
/* 028AED64 */ rbrew_write32(cpu->mem, _t31, cpu->r[11]);
|
|
/* 028AED68 */ cpu->r[12] = cpu->r[12] + 0xFFFF8300u;
|
|
/* 028AED6C */ _t32 = cpu->r[1] + 0x0000008Cu;
|
|
/* 028AED6C */ rbrew_write8(cpu->mem, _t32, (uint8_t)cpu->r[29]);
|
|
/* 028AED70 */ cpu->r[9] = cpu->r[3];
|
|
/* 028AED70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AED74 */ _t33 = cpu->r[1] + 0x00000084u;
|
|
/* 028AED74 */ rbrew_write32(cpu->mem, _t33, cpu->r[12]);
|
|
/* 028AED78 */ cpu->r[10] = cpu->r[10] + 0xFFFF82B8u;
|
|
/* 028AED7C */ _t34 = cpu->r[1] + 0x0000010Bu;
|
|
/* 028AED7C */ rbrew_write8(cpu->mem, _t34, (uint8_t)cpu->r[29]);
|
|
/* 028AED80 */ _t35 = cpu->r[1] + 0x00000080u;
|
|
/* 028AED80 */ rbrew_write32(cpu->mem, _t35, cpu->r[31]);
|
|
/* 028AED84 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AED84 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028AED84 */ if (_t37) goto L_028AEE8C; else goto L_028AED88;
|
|
L_028AED88: ; // 0x28aed88
|
|
/* 028AED88 */ _t38 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AED88 */ rbrew_write32(cpu->mem, _t38, cpu->r[10]);
|
|
/* 028AED8C */ cpu->r[3] = cpu->r[1] + 0x00000080u;
|
|
/* 028AED90 */ _t39 = cpu->r[1] + 0x00000008u;
|
|
/* 028AED90 */ rbrew_write32(cpu->mem, _t39, cpu->r[9]);
|
|
/* 028AED94 */ Gambit_fn_028B0598(cpu);
|
|
/* 028AED98 */ _t40 = cpu->r[1] + 0x00000080u;
|
|
/* 028AED98 */ cpu->r[9] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028AED9C */ _t41 = cpu->r[9] + 0x00000000u;
|
|
/* 028AED9C */ cpu->r[0] = rbrew_read8(cpu->mem, _t41);
|
|
/* 028AEDA0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028AEDA4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[29]);
|
|
/* 028AEDA8 */ cpu->r[0] = 0x00080000u;
|
|
/* 028AEDAC */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEDAC */ _t43 = _t42 & 0x00000001u;
|
|
/* 028AEDAC */ if (_t43) goto L_028AEDD4; else goto L_028AEDB0;
|
|
L_028AEDB0: ; // 0x28aedb0
|
|
/* 028AEDB0 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028AEDB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028AEDB8 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 028AEDBC */ _t44 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AEDBC */ _t45 = _t44 & 0x00000001u;
|
|
/* 028AEDBC */ if (_t45) goto L_028AEDD0; else goto L_028AEDC0;
|
|
L_028AEDC0: ; // 0x28aedc0
|
|
/* 028AEDC0 */ _t46 = cpu->r[9] + 0x00000000u;
|
|
/* 028AEDC0 */ cpu->r[5] = rbrew_read8(cpu->mem, _t46);
|
|
/* 028AEDC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[29]);
|
|
/* 028AEDC8 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEDC8 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028AEDC8 */ if (_t48) goto L_028AEDCC; else goto L_028AEDB0;
|
|
L_028AEDCC: ; // 0x28aedcc
|
|
/* 028AEDCC */ goto L_028AEDD4;
|
|
L_028AEDD0: ; // 0x28aedd0
|
|
/* 028AEDD0 */ cpu->r[30] = 0x00000000u;
|
|
L_028AEDD4: ; // 0x28aedd4
|
|
/* 028AEDD4 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AEDD4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028AEDD8 */ cpu->r[21] = cpu->r[30];
|
|
/* 028AEDD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028AEDDC */ _t50 = cpu->r[6] + 0x00000014u;
|
|
/* 028AEDDC */ cpu->r[7] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028AEDE0 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AEDE0 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028AEDE0 */ if (_t52) goto L_028AEDE4; else goto L_028AEDE8;
|
|
L_028AEDE4: ; // 0x28aede4
|
|
/* 028AEDE4 */ cpu->r[21] = 0x00000000u;
|
|
L_028AEDE8: ; // 0x28aede8
|
|
/* 028AEDE8 */ cpu->ctr = cpu->r[7];
|
|
/* 028AEDEC */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028AEDF0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AEDF4 */ _t53 = cpu->r[1] + 0x00000008u;
|
|
/* 028AEDF4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028AEDF8 */ _t54 = cpu->r[6] + 0x00000000u;
|
|
/* 028AEDF8 */ cpu->r[8] = rbrew_read8(cpu->mem, _t54);
|
|
/* 028AEDFC */ cpu->r[23] = 0x00000000u;
|
|
/* 028AEE00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[29]);
|
|
/* 028AEE04 */ cpu->r[8] = 0x00080000u;
|
|
/* 028AEE08 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEE08 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028AEE08 */ if (_t56) goto L_028AEE30; else goto L_028AEE0C;
|
|
L_028AEE0C: ; // 0x28aee0c
|
|
/* 028AEE0C */ cpu->r[23] = cpu->r[23] + 0x00000001u;
|
|
/* 028AEE10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], cpu->r[8]);
|
|
/* 028AEE14 */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 028AEE18 */ _t57 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AEE18 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028AEE18 */ if (_t58) goto L_028AEE2C; else goto L_028AEE1C;
|
|
L_028AEE1C: ; // 0x28aee1c
|
|
/* 028AEE1C */ _t59 = cpu->r[6] + 0x00000000u;
|
|
/* 028AEE1C */ cpu->r[9] = rbrew_read8(cpu->mem, _t59);
|
|
/* 028AEE20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[29]);
|
|
/* 028AEE24 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEE24 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028AEE24 */ if (_t61) goto L_028AEE28; else goto L_028AEE0C;
|
|
L_028AEE28: ; // 0x28aee28
|
|
/* 028AEE28 */ goto L_028AEE30;
|
|
L_028AEE2C: ; // 0x28aee2c
|
|
/* 028AEE2C */ cpu->r[23] = 0x00000000u;
|
|
L_028AEE30: ; // 0x28aee30
|
|
/* 028AEE30 */ _t62 = cpu->r[1] + 0x00000088u;
|
|
/* 028AEE30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028AEE34 */ cpu->r[11] = cpu->r[0] - cpu->r[21];
|
|
/* 028AEE38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], cpu->r[11]);
|
|
/* 028AEE3C */ _t63 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AEE3C */ _t64 = _t63 & 0x00000001u;
|
|
/* 028AEE3C */ if (_t64) goto L_028AEE44; else goto L_028AEE40;
|
|
L_028AEE40: ; // 0x28aee40
|
|
/* 028AEE40 */ cpu->r[23] = cpu->r[11] + 0xFFFFFFFFu;
|
|
L_028AEE44: ; // 0x28aee44
|
|
/* 028AEE44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 028AEE48 */ _t65 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AEE48 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028AEE48 */ if (_t66) goto L_028AEE4C; else goto L_028AEE88;
|
|
L_028AEE4C: ; // 0x28aee4c
|
|
/* 028AEE4C */ _t67 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AEE4C */ cpu->r[11] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028AEE50 */ _t68 = cpu->r[11] + 0x00000014u;
|
|
/* 028AEE50 */ cpu->r[12] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028AEE54 */ cpu->ctr = cpu->r[12];
|
|
/* 028AEE58 */ cpu->r[20] = cpu->r[31] + cpu->r[21];
|
|
/* 028AEE5C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028AEE60 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AEE64 */ _t69 = cpu->r[1] + 0x00000008u;
|
|
/* 028AEE64 */ cpu->r[4] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028AEE68 */ cpu->r[6] = 0x00000000u;
|
|
/* 028AEE6C */ cpu->r[5] = cpu->r[23];
|
|
/* 028AEE70 */ cpu->r[3] = cpu->r[20];
|
|
/* 028AEE74 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028AEE78 */ cpu->r[0] = cpu->r[21] + cpu->r[23];
|
|
/* 028AEE7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[30]);
|
|
/* 028AEE80 */ _t70 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AEE80 */ _t71 = _t70 & 0x00000001u;
|
|
/* 028AEE80 */ if (_t71) goto L_028AEE84; else goto L_028AEE88;
|
|
L_028AEE84: ; // 0x28aee84
|
|
/* 028AEE84 */ _t72 = cpu->r[31] + cpu->r[0];
|
|
/* 028AEE84 */ rbrew_write8(cpu->mem, _t72, (uint8_t)cpu->r[29]);
|
|
L_028AEE88: ; // 0x28aee88
|
|
/* 028AEE88 */ _t73 = cpu->r[1] + 0x00000080u;
|
|
/* 028AEE88 */ cpu->r[31] = rbrew_read32(cpu->mem, _t73);
|
|
L_028AEE8C: ; // 0x28aee8c
|
|
/* 028AEE8C */ _t74 = cpu->r[31] + 0x00000000u;
|
|
/* 028AEE8C */ cpu->r[0] = rbrew_read8(cpu->mem, _t74);
|
|
/* 028AEE90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[29]);
|
|
/* 028AEE94 */ _t75 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEE94 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028AEE94 */ if (_t76) goto L_028AF13C; else goto L_028AEE98;
|
|
L_028AEE98: ; // 0x28aee98
|
|
/* 028AEE98 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028AEE9C */ _t77 = cpu->r[30] + 0xFFFF9A60u;
|
|
/* 028AEE9C */ cpu->r[30] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028AEEA0 */ _t78 = cpu->r[30] + 0x00000000u;
|
|
/* 028AEEA0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028AEEA4 */ _t79 = cpu->r[5] + 0x00000014u;
|
|
/* 028AEEA4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028AEEA8 */ cpu->ctr = cpu->r[7];
|
|
/* 028AEEAC */ cpu->r[3] = cpu->r[30];
|
|
/* 028AEEB0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AEEB4 */ cpu->r[3] = cpu->r[24];
|
|
/* 028AEEB8 */ cpu->r[4] = cpu->r[25];
|
|
/* 028AEEBC */ Gambit_fn_028B0AB4(cpu);
|
|
/* 028AEEC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x000000FFu);
|
|
/* 028AEEC4 */ cpu->r[20] = cpu->r[3];
|
|
/* 028AEEC8 */ _t80 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEEC8 */ _t81 = _t80 & 0x00000001u;
|
|
/* 028AEEC8 */ if (_t81) goto L_028AEECC; else goto L_028AEED4;
|
|
L_028AEECC: ; // 0x28aeecc
|
|
/* 028AEECC */ _t82 = cpu->r[28] + 0x00000008u;
|
|
/* 028AEECC */ cpu->r[6] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028AEED0 */ _t83 = cpu->r[6] + 0x0000004Eu;
|
|
/* 028AEED0 */ cpu->r[20] = rbrew_read8(cpu->mem, _t83);
|
|
L_028AEED4: ; // 0x28aeed4
|
|
/* 028AEED4 */ cpu->r[4] = cpu->r[25];
|
|
/* 028AEED8 */ cpu->r[3] = cpu->r[24];
|
|
/* 028AEEDC */ Gambit_fn_028B0A78(cpu);
|
|
/* 028AEEE0 */ _t84 = cpu->r[1] + 0x00000010u;
|
|
/* 028AEEE0 */ rbrew_write32(cpu->mem, _t84, cpu->r[3]);
|
|
/* 028AEEE4 */ cpu->r[23] = 0x101D0000u;
|
|
/* 028AEEE8 */ _t85 = cpu->r[1] + 0x00000012u;
|
|
/* 028AEEE8 */ cpu->r[29] = rbrew_read16(cpu->mem, _t85);
|
|
/* 028AEEEC */ _t86 = cpu->r[23] + 0xFFFF98A8u;
|
|
/* 028AEEEC */ cpu->r[3] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028AEEEC */ cpu->r[23] = _t86;
|
|
/* 028AEEF0 */ _t87 = cpu->r[1] + 0x00000010u;
|
|
/* 028AEEF0 */ cpu->r[31] = rbrew_read16(cpu->mem, _t87);
|
|
/* 028AEEF4 */ Gambit_fn_0281DFD8(cpu);
|
|
/* 028AEEF8 */ cpu->r[21] = cpu->r[28] + 0x00000034u;
|
|
/* 028AEEFC */ cpu->r[8] = 0x00000000u;
|
|
/* 028AEF00 */ cpu->r[3] = cpu->r[22];
|
|
/* 028AEF04 */ cpu->r[6] = cpu->r[31];
|
|
/* 028AEF08 */ cpu->r[9] = cpu->r[8];
|
|
/* 028AEF0C */ cpu->r[7] = cpu->r[20];
|
|
/* 028AEF10 */ cpu->r[4] = cpu->r[21];
|
|
/* 028AEF14 */ cpu->r[5] = cpu->r[29];
|
|
/* 028AEF18 */ Gambit_fn_02A4675C(cpu);
|
|
/* 028AEF1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AEF20 */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEF20 */ _t89 = _t88 & 0x00000001u;
|
|
/* 028AEF20 */ if (_t89) goto L_028AF00C; else goto L_028AEF24;
|
|
L_028AEF24: ; // 0x28aef24
|
|
/* 028AEF24 */ _t90 = cpu->r[21] + 0x00000000u;
|
|
/* 028AEF24 */ cpu->r[3] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028AEF28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AEF2C */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEF2C */ _t92 = _t91 & 0x00000001u;
|
|
/* 028AEF2C */ if (_t92) goto L_028AF00C; else goto L_028AEF30;
|
|
L_028AEF30: ; // 0x28aef30
|
|
/* 028AEF30 */ _t93 = cpu->r[21] + 0x00000004u;
|
|
/* 028AEF30 */ cpu->r[6] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028AEF34 */ _t94 = cpu->r[3] + 0x00000014u;
|
|
/* 028AEF34 */ cpu->r[7] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028AEF38 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[7]);
|
|
/* 028AEF3C */ _t95 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEF3C */ _t96 = _t95 & 0x00000001u;
|
|
/* 028AEF3C */ if (_t96) goto L_028AEF40; else goto L_028AF00C;
|
|
L_028AEF40: ; // 0x28aef40
|
|
/* 028AEF40 */ cpu->r[9] = 0x101D0000u;
|
|
/* 028AEF44 */ _t97 = cpu->r[9] + 0xFFFFD554u;
|
|
/* 028AEF44 */ cpu->r[8] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028AEF44 */ cpu->r[9] = _t97;
|
|
/* 028AEF48 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028AEF4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AEF50 */ cpu->r[12] = cpu->r[12] + 0x00000EE4u;
|
|
/* 028AEF54 */ _t98 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEF54 */ _t99 = _t98 & 0x00000001u;
|
|
/* 028AEF54 */ if (_t99) goto L_028AEF58; else goto L_028AEFA4;
|
|
L_028AEF58: ; // 0x28aef58
|
|
/* 028AEF58 */ cpu->r[8] = 0x10140000u;
|
|
/* 028AEF5C */ cpu->r[11] = 0x00000001u;
|
|
/* 028AEF60 */ _t100 = cpu->r[8] + 0xFFFF831Cu;
|
|
/* 028AEF60 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 028AEF64 */ _t101 = cpu->r[9] + 0x00000000u;
|
|
/* 028AEF64 */ rbrew_write32(cpu->mem, _t101, cpu->r[11]);
|
|
/* 028AEF68 */ _t102 = cpu->r[12] + 0x00000008u;
|
|
/* 028AEF68 */ rbrew_write_f32(cpu->mem, _t102, cpu->f[0]);
|
|
/* 028AEF6C */ _t103 = cpu->r[12] + 0x00000010u;
|
|
/* 028AEF6C */ rbrew_write_f32(cpu->mem, _t103, cpu->f[0]);
|
|
/* 028AEF70 */ _t104 = cpu->r[12] + 0x00000018u;
|
|
/* 028AEF70 */ rbrew_write_f32(cpu->mem, _t104, cpu->f[0]);
|
|
/* 028AEF74 */ _t105 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028AEF74 */ rbrew_write_f32(cpu->mem, _t105, cpu->f[0]);
|
|
/* 028AEF78 */ cpu->r[6] = 0x10140000u;
|
|
/* 028AEF7C */ _t106 = cpu->r[12] + 0x00000004u;
|
|
/* 028AEF7C */ rbrew_write_f32(cpu->mem, _t106, cpu->f[0]);
|
|
/* 028AEF80 */ _t107 = cpu->r[6] + 0xFFFF8318u;
|
|
/* 028AEF80 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t107);
|
|
/* 028AEF84 */ _t108 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AEF84 */ rbrew_write_f32(cpu->mem, _t108, cpu->f[0]);
|
|
/* 028AEF88 */ _t109 = cpu->r[12] + 0x00000000u;
|
|
/* 028AEF88 */ rbrew_write_f32(cpu->mem, _t109, cpu->f[13]);
|
|
/* 028AEF8C */ _t110 = cpu->r[12] + 0x00000020u;
|
|
/* 028AEF8C */ rbrew_write_f32(cpu->mem, _t110, cpu->f[0]);
|
|
/* 028AEF90 */ _t111 = cpu->r[12] + 0x00000014u;
|
|
/* 028AEF90 */ rbrew_write_f32(cpu->mem, _t111, cpu->f[13]);
|
|
/* 028AEF94 */ _t112 = cpu->r[12] + 0x00000024u;
|
|
/* 028AEF94 */ rbrew_write_f32(cpu->mem, _t112, cpu->f[0]);
|
|
/* 028AEF98 */ _t113 = cpu->r[12] + 0x00000028u;
|
|
/* 028AEF98 */ rbrew_write_f32(cpu->mem, _t113, cpu->f[13]);
|
|
/* 028AEF9C */ _t114 = cpu->r[12] + 0x0000002Cu;
|
|
/* 028AEF9C */ rbrew_write_f32(cpu->mem, _t114, cpu->f[0]);
|
|
/* 028AEFA0 */ _t115 = cpu->r[21] + 0x00000000u;
|
|
/* 028AEFA0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t115);
|
|
L_028AEFA4: ; // 0x28aefa4
|
|
/* 028AEFA4 */ cpu->r[5] = cpu->r[1] + 0x00000050u;
|
|
/* 028AEFA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[5]);
|
|
/* 028AEFAC */ _t116 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AEFAC */ _t117 = _t116 & 0x00000001u;
|
|
/* 028AEFAC */ if (_t117) goto L_028AEFE4; else goto L_028AEFB0;
|
|
L_028AEFB0: ; // 0x28aefb0
|
|
/* 028AEFB0 */ cpu->r[0] = 0x00000003u;
|
|
/* 028AEFB4 */ cpu->r[6] = cpu->r[12] + 0xFFFFFFFCu;
|
|
/* 028AEFB8 */ cpu->ctr = cpu->r[0];
|
|
/* 028AEFBC */ cpu->r[7] = cpu->r[1] + 0x0000004Cu;
|
|
L_028AEFC0: ; // 0x28aefc0
|
|
/* 028AEFC0 */ _t118 = cpu->r[6] + 0x00000004u;
|
|
/* 028AEFC0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t118);
|
|
/* 028AEFC4 */ _t119 = cpu->r[7] + 0x00000004u;
|
|
/* 028AEFC4 */ rbrew_write32(cpu->mem, _t119, cpu->r[10]);
|
|
/* 028AEFC8 */ _t120 = cpu->r[6] + 0x00000008u;
|
|
/* 028AEFC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t120);
|
|
/* 028AEFCC */ _t121 = cpu->r[7] + 0x00000008u;
|
|
/* 028AEFCC */ rbrew_write32(cpu->mem, _t121, cpu->r[0]);
|
|
/* 028AEFD0 */ _t122 = cpu->r[6] + 0x0000000Cu;
|
|
/* 028AEFD0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028AEFD4 */ _t123 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028AEFD4 */ rbrew_write32(cpu->mem, _t123, cpu->r[12]);
|
|
/* 028AEFD8 */ _t124 = cpu->r[6] + 0x00000010u;
|
|
/* 028AEFD8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t124);
|
|
/* 028AEFD8 */ cpu->r[6] = _t124;
|
|
/* 028AEFDC */ _t125 = cpu->r[7] + 0x00000010u;
|
|
/* 028AEFDC */ rbrew_write32(cpu->mem, _t125, cpu->r[5]);
|
|
/* 028AEFDC */ cpu->r[7] = _t125;
|
|
/* 028AEFE0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028AEFE0 */ _t126 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028AEFE0 */ _t127 = _t126 >> (0x00000002u & 31u);
|
|
/* 028AEFE0 */ _t128 = _t127 & 0x00000001u;
|
|
/* 028AEFE0 */ if (_t128) goto L_028AEFC0; else goto L_028AEFE4;
|
|
L_028AEFE4: ; // 0x28aefe4
|
|
/* 028AEFE4 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028AEFE8 */ cpu->r[12] = cpu->r[12] + 0x00006338u;
|
|
/* 028AEFEC */ _t129 = cpu->r[12] + 0x00000004u;
|
|
/* 028AEFEC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t129);
|
|
/* 028AEFF0 */ _t130 = cpu->r[12] + 0x00000000u;
|
|
/* 028AEFF0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t130);
|
|
/* 028AEFF4 */ _t131 = cpu->r[12] + 0x00000008u;
|
|
/* 028AEFF4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t131);
|
|
/* 028AEFF8 */ _t132 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AEFF8 */ rbrew_write_f32(cpu->mem, _t132, cpu->f[13]);
|
|
/* 028AEFFC */ _t133 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028AEFFC */ rbrew_write_f32(cpu->mem, _t133, cpu->f[12]);
|
|
/* 028AF000 */ cpu->r[4] = cpu->r[1] + 0x00000050u;
|
|
/* 028AF004 */ _t134 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028AF004 */ rbrew_write_f32(cpu->mem, _t134, cpu->f[0]);
|
|
/* 028AF008 */ Gambit_fn_02A39D84(cpu);
|
|
L_028AF00C: ; // 0x28af00c
|
|
/* 028AF00C */ _t135 = cpu->r[23] + 0x00000000u;
|
|
/* 028AF00C */ cpu->r[3] = rbrew_read32(cpu->mem, _t135);
|
|
/* 028AF010 */ Gambit_fn_0281E0AC(cpu);
|
|
/* 028AF014 */ cpu->r[4] = cpu->r[25];
|
|
/* 028AF018 */ cpu->r[3] = cpu->r[24];
|
|
/* 028AF01C */ Gambit_fn_028B0C04(cpu);
|
|
/* 028AF020 */ _t136 = cpu->r[28] + 0x00000028u;
|
|
/* 028AF020 */ cpu->r[10] = rbrew_read32(cpu->mem, _t136);
|
|
/* 028AF024 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AF028 */ _t137 = cpu->r[28] + 0x00000024u;
|
|
/* 028AF028 */ cpu->r[12] = rbrew_read32(cpu->mem, _t137);
|
|
/* 028AF02C */ _t138 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF02C */ _t139 = _t138 & 0x00000001u;
|
|
/* 028AF02C */ if (_t139) goto L_028AF030; else goto L_028AF058;
|
|
L_028AF030: ; // 0x28af030
|
|
/* 028AF030 */ cpu->r[5] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028AF034 */ cpu->r[0] = cpu->r[5] | 0x0000000Cu;
|
|
/* 028AF038 */ _t140 = cpu->r[28] + 0x00000028u;
|
|
/* 028AF038 */ rbrew_write32(cpu->mem, _t140, cpu->r[0]);
|
|
/* 028AF03C */ _t141 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AF03C */ cpu->r[0] = rbrew_read32(cpu->mem, _t141);
|
|
/* 028AF040 */ cpu->ctr = cpu->r[0];
|
|
/* 028AF044 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AF048 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AF04C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AF050 */ _t142 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF050 */ _t143 = _t142 & 0x00000001u;
|
|
/* 028AF050 */ if (_t143) goto L_028AF094; else goto L_028AF054;
|
|
L_028AF054: ; // 0x28af054
|
|
/* 028AF054 */ goto L_028AF078;
|
|
L_028AF058: ; // 0x28af058
|
|
/* 028AF058 */ cpu->r[0] = cpu->r[10] | 0x0000000Du;
|
|
/* 028AF05C */ _t144 = cpu->r[28] + 0x00000028u;
|
|
/* 028AF05C */ rbrew_write32(cpu->mem, _t144, cpu->r[0]);
|
|
/* 028AF060 */ _t145 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AF060 */ cpu->r[0] = rbrew_read32(cpu->mem, _t145);
|
|
/* 028AF064 */ cpu->ctr = cpu->r[0];
|
|
/* 028AF068 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AF06C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AF070 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AF074 */ _t146 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF074 */ _t147 = _t146 & 0x00000001u;
|
|
/* 028AF074 */ if (_t147) goto L_028AF094; else goto L_028AF078;
|
|
L_028AF078: ; // 0x28af078
|
|
/* 028AF078 */ _t148 = cpu->r[28] + 0x00000008u;
|
|
/* 028AF078 */ cpu->r[10] = rbrew_read32(cpu->mem, _t148);
|
|
/* 028AF07C */ cpu->r[3] = cpu->r[28];
|
|
/* 028AF080 */ _t149 = cpu->r[10] + 0x00000130u;
|
|
/* 028AF080 */ cpu->r[7] = rbrew_read32(cpu->mem, _t149);
|
|
/* 028AF084 */ cpu->r[4] = cpu->r[10] + 0x00000054u;
|
|
/* 028AF088 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028AF08C */ _t150 = cpu->r[1] + 0x00000014u;
|
|
/* 028AF08C */ rbrew_write32(cpu->mem, _t150, cpu->r[7]);
|
|
/* 028AF090 */ Gambit_fn_028AE9EC(cpu);
|
|
L_028AF094: ; // 0x28af094
|
|
/* 028AF094 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028AF098 */ _t151 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF098 */ _t152 = _t151 & 0x00000001u;
|
|
/* 028AF098 */ if (_t152) goto L_028AF0B8; else goto L_028AF09C;
|
|
L_028AF09C: ; // 0x28af09c
|
|
/* 028AF09C */ _t153 = cpu->r[1] + 0x00000028u;
|
|
/* 028AF09C */ rbrew_write32(cpu->mem, _t153, cpu->r[21]);
|
|
/* 028AF0A0 */ _t154 = cpu->r[26] + 0x00000000u;
|
|
/* 028AF0A0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t154);
|
|
/* 028AF0A4 */ _t155 = cpu->r[8] + 0x0000002Cu;
|
|
/* 028AF0A4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t155);
|
|
/* 028AF0A8 */ cpu->ctr = cpu->r[11];
|
|
/* 028AF0AC */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF0B0 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 028AF0B4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AF0B8: ; // 0x28af0b8
|
|
/* 028AF0B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028AF0BC */ _t156 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF0BC */ _t157 = _t156 & 0x00000001u;
|
|
/* 028AF0BC */ if (_t157) goto L_028AF0DC; else goto L_028AF0C0;
|
|
L_028AF0C0: ; // 0x28af0c0
|
|
/* 028AF0C0 */ _t158 = cpu->r[1] + 0x00000044u;
|
|
/* 028AF0C0 */ rbrew_write32(cpu->mem, _t158, cpu->r[21]);
|
|
/* 028AF0C4 */ _t159 = cpu->r[27] + 0x00000000u;
|
|
/* 028AF0C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t159);
|
|
/* 028AF0C8 */ _t160 = cpu->r[12] + 0x0000002Cu;
|
|
/* 028AF0C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t160);
|
|
/* 028AF0CC */ cpu->ctr = cpu->r[0];
|
|
/* 028AF0D0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028AF0D4 */ cpu->r[4] = cpu->r[1] + 0x00000034u;
|
|
/* 028AF0D8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AF0DC: ; // 0x28af0dc
|
|
/* 028AF0DC */ _t161 = cpu->r[28] + 0x00000024u;
|
|
/* 028AF0DC */ cpu->r[5] = rbrew_read32(cpu->mem, _t161);
|
|
/* 028AF0E0 */ _t162 = cpu->r[5] + 0x0000001Cu;
|
|
/* 028AF0E0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t162);
|
|
/* 028AF0E4 */ cpu->ctr = cpu->r[6];
|
|
/* 028AF0E8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AF0EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AF0F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AF0F4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AF0F8 */ _t163 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF0F8 */ _t164 = _t163 & 0x00000001u;
|
|
/* 028AF0F8 */ if (_t164) goto L_028AF12C; else goto L_028AF0FC;
|
|
L_028AF0FC: ; // 0x28af0fc
|
|
/* 028AF0FC */ cpu->r[31] = 0x00000001u;
|
|
/* 028AF100 */ _t165 = cpu->r[28] + 0x00000030u;
|
|
/* 028AF100 */ rbrew_write8(cpu->mem, _t165, (uint8_t)cpu->r[31]);
|
|
/* 028AF104 */ _t166 = cpu->r[30] + 0x00000000u;
|
|
/* 028AF104 */ cpu->r[7] = rbrew_read32(cpu->mem, _t166);
|
|
/* 028AF108 */ _t167 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028AF108 */ cpu->r[8] = rbrew_read32(cpu->mem, _t167);
|
|
/* 028AF10C */ cpu->ctr = cpu->r[8];
|
|
/* 028AF110 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AF114 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AF118 */ /* nop */
|
|
/* 028AF11C */ _t168 = cpu->r[1] + 0x00000144u;
|
|
/* 028AF11C */ cpu->r[0] = rbrew_read32(cpu->mem, _t168);
|
|
/* 028AF120 */ cpu->lr = cpu->r[0];
|
|
/* 028AF124 */ cpu->r[1] = cpu->r[1] + 0x00000140u;
|
|
/* 028AF128 */ return;
|
|
L_028AF12C: ; // 0x28af12c
|
|
/* 028AF12C */ _t169 = cpu->r[30] + 0x00000000u;
|
|
/* 028AF12C */ cpu->r[9] = rbrew_read32(cpu->mem, _t169);
|
|
/* 028AF130 */ _t170 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028AF130 */ cpu->r[0] = rbrew_read32(cpu->mem, _t170);
|
|
/* 028AF134 */ cpu->ctr = cpu->r[0];
|
|
/* 028AF138 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AF13C: ; // 0x28af13c
|
|
/* 028AF13C */ /* nop */
|
|
/* 028AF140 */ _t171 = cpu->r[1] + 0x00000144u;
|
|
/* 028AF140 */ cpu->r[0] = rbrew_read32(cpu->mem, _t171);
|
|
/* 028AF144 */ cpu->lr = cpu->r[0];
|
|
/* 028AF148 */ cpu->r[1] = cpu->r[1] + 0x00000140u;
|
|
/* 028AF14C */ cpu->r[3] = 0x00000000u;
|
|
/* 028AF150 */ return;
|
|
}
|
|
|
|
// fn_028AF154 @ 0x28af154
|
|
void Gambit_fn_028AF154(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028AF154: ; // 0x28af154
|
|
/* 028AF154 */ _t0 = cpu->r[3] + 0x00000034u;
|
|
/* 028AF154 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AF158 */ cpu->r[0] = 0x00000000u;
|
|
/* 028AF15C */ _t1 = cpu->r[12] + 0x00000002u;
|
|
/* 028AF15C */ rbrew_write8(cpu->mem, _t1, (uint8_t)cpu->r[0]);
|
|
/* 028AF160 */ _t2 = cpu->r[12] + 0x00000003u;
|
|
/* 028AF160 */ rbrew_write8(cpu->mem, _t2, (uint8_t)cpu->r[0]);
|
|
/* 028AF164 */ return;
|
|
}
|
|
|
|
// fn_028AF168 @ 0x28af168
|
|
void Gambit_fn_028AF168(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028AF168: ; // 0x28af168
|
|
/* 028AF168 */ _t0 = cpu->r[3] + 0x00000034u;
|
|
/* 028AF168 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028AF16C */ cpu->r[0] = 0x00000001u;
|
|
/* 028AF170 */ _t1 = cpu->r[12] + 0x00000002u;
|
|
/* 028AF170 */ rbrew_write8(cpu->mem, _t1, (uint8_t)cpu->r[0]);
|
|
/* 028AF174 */ _t2 = cpu->r[12] + 0x00000003u;
|
|
/* 028AF174 */ rbrew_write8(cpu->mem, _t2, (uint8_t)cpu->r[0]);
|
|
/* 028AF178 */ return;
|
|
}
|
|
|
|
// fn_028AF17C @ 0x28af17c
|
|
void Gambit_fn_028AF17C(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, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _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;
|
|
double _ft79, _ft80, _ft90, _ft91, _ft101, _ft102;
|
|
|
|
L_028AF17C: ; // 0x28af17c
|
|
/* 028AF17C */ _t0 = cpu->r[1] + 0xFFFFFEA8u;
|
|
/* 028AF17C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AF17C */ cpu->r[1] = _t0;
|
|
/* 028AF180 */ cpu->r[0] = cpu->lr;
|
|
/* 028AF184 */ /* nop */
|
|
/* 028AF188 */ cpu->r[28] = cpu->r[4];
|
|
/* 028AF18C */ cpu->r[30] = cpu->r[6];
|
|
/* 028AF190 */ _t1 = cpu->r[1] + 0x0000015Cu;
|
|
/* 028AF190 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028AF194 */ cpu->r[29] = cpu->r[5];
|
|
/* 028AF198 */ cpu->r[27] = cpu->r[3];
|
|
/* 028AF19C */ cpu->r[3] = cpu->r[29];
|
|
/* 028AF1A0 */ cpu->r[31] = cpu->r[7];
|
|
/* 028AF1A4 */ Gambit_fn_028B2530(cpu);
|
|
/* 028AF1A8 */ Gambit_fn_028B2CAC(cpu);
|
|
/* 028AF1AC */ cpu->r[6] = cpu->r[29];
|
|
/* 028AF1B0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF1B4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028AF1B8 */ cpu->r[26] = cpu->r[3];
|
|
/* 028AF1BC */ Gambit_fn_028B1424(cpu);
|
|
/* 028AF1C0 */ cpu->r[6] = cpu->r[29];
|
|
/* 028AF1C4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF1C8 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF1CC */ cpu->r[5] = cpu->r[30];
|
|
/* 028AF1D0 */ _t2 = cpu->r[1] + 0x00000080u;
|
|
/* 028AF1D0 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[1]);
|
|
/* 028AF1D4 */ Gambit_fn_028B14C4(cpu);
|
|
/* 028AF1D8 */ cpu->r[6] = cpu->r[29];
|
|
/* 028AF1DC */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF1E0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF1E4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028AF1E8 */ _t3 = cpu->r[1] + 0x00000068u;
|
|
/* 028AF1E8 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[1]);
|
|
/* 028AF1EC */ Gambit_fn_028B1564(cpu);
|
|
/* 028AF1F0 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF1F4 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF1F8 */ cpu->r[6] = cpu->r[29];
|
|
/* 028AF1FC */ cpu->r[5] = cpu->r[30];
|
|
/* 028AF200 */ _t4 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028AF200 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[1]);
|
|
/* 028AF204 */ Gambit_fn_028B1604(cpu);
|
|
/* 028AF208 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF20C */ cpu->r[6] = cpu->r[29];
|
|
/* 028AF210 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF214 */ cpu->r[5] = cpu->r[30];
|
|
/* 028AF218 */ _t5 = cpu->r[1] + 0x00000070u;
|
|
/* 028AF218 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[1]);
|
|
/* 028AF21C */ Gambit_fn_028B16A4(cpu);
|
|
/* 028AF220 */ cpu->r[6] = cpu->r[29];
|
|
/* 028AF224 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF228 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF22C */ cpu->r[5] = cpu->r[30];
|
|
/* 028AF230 */ _t6 = cpu->r[1] + 0x00000074u;
|
|
/* 028AF230 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[1]);
|
|
/* 028AF234 */ Gambit_fn_028B1744(cpu);
|
|
/* 028AF238 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF23C */ _t7 = cpu->r[1] + 0x00000078u;
|
|
/* 028AF23C */ rbrew_write_f32(cpu->mem, _t7, cpu->f[1]);
|
|
/* 028AF240 */ cpu->r[5] = cpu->r[30];
|
|
/* 028AF244 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF248 */ cpu->r[6] = cpu->r[29];
|
|
/* 028AF24C */ Gambit_fn_028B17E4(cpu);
|
|
/* 028AF250 */ _t8 = cpu->r[28] + 0x00000004u;
|
|
/* 028AF250 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AF254 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028AF258 */ _t9 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028AF258 */ cpu->r[24] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028AF25C */ cpu->r[7] = cpu->r[24] + cpu->r[0];
|
|
/* 028AF260 */ _t10 = cpu->r[1] + 0x0000007Cu;
|
|
/* 028AF260 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[1]);
|
|
/* 028AF264 */ _t11 = cpu->r[7] + 0x00000004u;
|
|
/* 028AF264 */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AF268 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AF26C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF26C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028AF26C */ if (_t13) goto L_028AF294; else goto L_028AF270;
|
|
L_028AF270: ; // 0x28af270
|
|
/* 028AF270 */ _t14 = cpu->r[12] + 0x00000000u;
|
|
/* 028AF270 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 028AF274 */ cpu->r[3] = cpu->r[1] + 0x000000D8u;
|
|
/* 028AF278 */ _t15 = cpu->r[12] + 0x00000004u;
|
|
/* 028AF278 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 028AF27C */ _t16 = cpu->r[12] + 0x00000008u;
|
|
/* 028AF27C */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 028AF280 */ Gambit_fn_02C69840(cpu);
|
|
/* 028AF284 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AF288 */ cpu->r[25] = cpu->r[1] + 0x000000D8u;
|
|
/* 028AF28C */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF28C */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AF28C */ if (_t18) goto L_028AF2C8; else goto L_028AF290;
|
|
L_028AF290: ; // 0x28af290
|
|
/* 028AF290 */ goto L_028AF2A0;
|
|
L_028AF294: ; // 0x28af294
|
|
/* 028AF294 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AF298 */ _t19 = cpu->r[24] + cpu->r[0];
|
|
/* 028AF298 */ cpu->r[25] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028AF29C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF29C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028AF29C */ if (_t21) goto L_028AF2C8; else goto L_028AF2A0;
|
|
L_028AF2A0: ; // 0x28af2a0
|
|
/* 028AF2A0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF2A4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF2A8 */ cpu->r[25] = cpu->r[31];
|
|
/* 028AF2AC */ Gambit_fn_028B0C38(cpu);
|
|
/* 028AF2B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AF2B4 */ cpu->r[30] = 0x101F0000u;
|
|
/* 028AF2B8 */ _t22 = cpu->r[29] + 0x00000028u;
|
|
/* 028AF2B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AF2BC */ cpu->r[30] = cpu->r[30] + 0x00006368u;
|
|
/* 028AF2C0 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF2C0 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028AF2C0 */ if (_t24) goto L_028AF2C4; else goto L_028AF398;
|
|
L_028AF2C4: ; // 0x28af2c4
|
|
/* 028AF2C4 */ goto L_028AF2F4;
|
|
L_028AF2C8: ; // 0x28af2c8
|
|
/* 028AF2C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028AF2CC */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF2CC */ _t26 = _t25 & 0x00000001u;
|
|
/* 028AF2CC */ if (_t26) goto L_028AF2D0; else goto L_028AF2D4;
|
|
L_028AF2D0: ; // 0x28af2d0
|
|
/* 028AF2D0 */ _t27 = cpu->r[29] + 0x00000028u;
|
|
/* 028AF2D0 */ cpu->r[25] = rbrew_read32(cpu->mem, _t27);
|
|
L_028AF2D4: ; // 0x28af2d4
|
|
/* 028AF2D4 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF2D8 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF2DC */ Gambit_fn_028B0C38(cpu);
|
|
/* 028AF2E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AF2E4 */ cpu->r[30] = 0x101F0000u;
|
|
/* 028AF2E8 */ _t28 = cpu->r[29] + 0x00000028u;
|
|
/* 028AF2E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AF2EC */ cpu->r[30] = cpu->r[30] + 0x00006368u;
|
|
/* 028AF2F0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF2F0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028AF2F0 */ if (_t30) goto L_028AF2F4; else goto L_028AF398;
|
|
L_028AF2F4: ; // 0x28af2f4
|
|
/* 028AF2F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[25], cpu->r[3]);
|
|
/* 028AF2F8 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF2F8 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028AF2F8 */ if (_t32) goto L_028AF354; else goto L_028AF2FC;
|
|
L_028AF2FC: ; // 0x28af2fc
|
|
/* 028AF2FC */ _t33 = cpu->r[28] + 0x00000004u;
|
|
/* 028AF2FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028AF300 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028AF304 */ cpu->r[7] = cpu->r[24] + cpu->r[11];
|
|
/* 028AF308 */ _t34 = cpu->r[7] + 0x00000004u;
|
|
/* 028AF308 */ cpu->r[8] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028AF30C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028AF310 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF310 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028AF310 */ if (_t36) goto L_028AF314; else goto L_028AF354;
|
|
L_028AF314: ; // 0x28af314
|
|
/* 028AF314 */ cpu->r[3] = cpu->r[25];
|
|
/* 028AF318 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF31C */ Gambit_fn_02C69510(cpu);
|
|
/* 028AF320 */ _t37 = cpu->r[30] + 0x00000000u;
|
|
/* 028AF320 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028AF324 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF328 */ _t38 = cpu->r[30] + 0x00000008u;
|
|
/* 028AF328 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 028AF32C */ _t39 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AF32C */ rbrew_write_f32(cpu->mem, _t39, cpu->f[7]);
|
|
/* 028AF330 */ _t40 = cpu->r[30] + 0x00000004u;
|
|
/* 028AF330 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028AF334 */ _t41 = cpu->r[1] + 0x00000064u;
|
|
/* 028AF334 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[10]);
|
|
/* 028AF338 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF33C */ _t42 = cpu->r[1] + 0x00000060u;
|
|
/* 028AF33C */ rbrew_write_f32(cpu->mem, _t42, cpu->f[8]);
|
|
/* 028AF340 */ Gambit_fn_028B0C04(cpu);
|
|
/* 028AF344 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AF348 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000002u);
|
|
/* 028AF34C */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF34C */ _t44 = _t43 & 0x00000001u;
|
|
/* 028AF34C */ if (_t44) goto L_028AF350; else goto L_028AF3EC;
|
|
L_028AF350: ; // 0x28af350
|
|
/* 028AF350 */ goto L_028AF3F4;
|
|
L_028AF354: ; // 0x28af354
|
|
/* 028AF354 */ cpu->r[3] = cpu->r[25];
|
|
/* 028AF358 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF35C */ Gambit_fn_02C69510(cpu);
|
|
/* 028AF360 */ _t45 = cpu->r[29] + 0x00000034u;
|
|
/* 028AF360 */ cpu->r[11] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028AF364 */ _t46 = cpu->r[11] + 0x00000000u;
|
|
/* 028AF364 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 028AF368 */ _t47 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AF368 */ rbrew_write_f32(cpu->mem, _t47, cpu->f[7]);
|
|
/* 028AF36C */ _t48 = cpu->r[11] + 0x00000004u;
|
|
/* 028AF36C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 028AF370 */ _t49 = cpu->r[1] + 0x00000060u;
|
|
/* 028AF370 */ rbrew_write_f32(cpu->mem, _t49, cpu->f[10]);
|
|
/* 028AF374 */ _t50 = cpu->r[11] + 0x00000008u;
|
|
/* 028AF374 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 028AF378 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF37C */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF380 */ _t51 = cpu->r[1] + 0x00000064u;
|
|
/* 028AF380 */ rbrew_write_f32(cpu->mem, _t51, cpu->f[0]);
|
|
/* 028AF384 */ Gambit_fn_028B0C04(cpu);
|
|
/* 028AF388 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AF38C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000002u);
|
|
/* 028AF390 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF390 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028AF390 */ if (_t53) goto L_028AF394; else goto L_028AF3EC;
|
|
L_028AF394: ; // 0x28af394
|
|
/* 028AF394 */ goto L_028AF3F4;
|
|
L_028AF398: ; // 0x28af398
|
|
/* 028AF398 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF39C */ Gambit_fn_02C69510(cpu);
|
|
/* 028AF3A0 */ _t54 = cpu->r[29] + 0x00000034u;
|
|
/* 028AF3A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028AF3A4 */ _t55 = cpu->r[10] + 0x00000000u;
|
|
/* 028AF3A4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028AF3A8 */ _t56 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AF3A8 */ rbrew_write_f32(cpu->mem, _t56, cpu->f[13]);
|
|
/* 028AF3AC */ _t57 = cpu->r[10] + 0x00000004u;
|
|
/* 028AF3AC */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 028AF3B0 */ _t58 = cpu->r[1] + 0x00000060u;
|
|
/* 028AF3B0 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[7]);
|
|
/* 028AF3B4 */ _t59 = cpu->r[10] + 0x00000008u;
|
|
/* 028AF3B4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028AF3B8 */ _t60 = cpu->r[1] + 0x00000064u;
|
|
/* 028AF3B8 */ rbrew_write_f32(cpu->mem, _t60, cpu->f[9]);
|
|
/* 028AF3BC */ _t61 = cpu->r[25] + 0x0000000Cu;
|
|
/* 028AF3BC */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 028AF3C0 */ _t62 = cpu->r[1] + 0x00000038u;
|
|
/* 028AF3C0 */ rbrew_write_f32(cpu->mem, _t62, cpu->f[10]);
|
|
/* 028AF3C4 */ _t63 = cpu->r[25] + 0x0000001Cu;
|
|
/* 028AF3C4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t63);
|
|
/* 028AF3C8 */ _t64 = cpu->r[1] + 0x00000048u;
|
|
/* 028AF3C8 */ rbrew_write_f32(cpu->mem, _t64, cpu->f[0]);
|
|
/* 028AF3CC */ _t65 = cpu->r[25] + 0x0000002Cu;
|
|
/* 028AF3CC */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 028AF3D0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028AF3D4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028AF3D8 */ _t66 = cpu->r[1] + 0x00000058u;
|
|
/* 028AF3D8 */ rbrew_write_f32(cpu->mem, _t66, cpu->f[7]);
|
|
/* 028AF3DC */ Gambit_fn_028B0C04(cpu);
|
|
/* 028AF3E0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AF3E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000002u);
|
|
/* 028AF3E8 */ _t67 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF3E8 */ _t68 = _t67 & 0x00000001u;
|
|
/* 028AF3E8 */ if (_t68) goto L_028AF3F4; else goto L_028AF3EC;
|
|
L_028AF3EC: ; // 0x28af3ec
|
|
/* 028AF3EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000003u);
|
|
/* 028AF3F0 */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF3F0 */ _t70 = _t69 & 0x00000001u;
|
|
/* 028AF3F0 */ if (_t70) goto L_028AF3F4; else goto L_028AF580;
|
|
L_028AF3F4: ; // 0x28af3f4
|
|
/* 028AF3F4 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028AF3F8 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF3FC */ cpu->r[5] = 0x00000000u;
|
|
/* 028AF400 */ Gambit_fn_0200D42C(cpu);
|
|
/* 028AF404 */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 028AF408 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF40C */ cpu->r[5] = 0x00000001u;
|
|
/* 028AF410 */ Gambit_fn_0200D42C(cpu);
|
|
/* 028AF414 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 028AF418 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF41C */ cpu->r[5] = 0x00000002u;
|
|
/* 028AF420 */ Gambit_fn_0200D42C(cpu);
|
|
/* 028AF424 */ _t71 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028AF424 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 028AF428 */ cpu->r[7] = 0x10140000u;
|
|
/* 028AF42C */ _t72 = cpu->r[1] + 0x00000008u;
|
|
/* 028AF42C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 028AF430 */ cpu->f[8] = cpu->f[13] * cpu->f[13];
|
|
/* 028AF434 */ _t73 = cpu->r[7] + 0xFFFF831Cu;
|
|
/* 028AF434 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t73);
|
|
/* 028AF438 */ cpu->f[9] = fma(cpu->f[0], cpu->f[0], cpu->f[8]);
|
|
/* 028AF43C */ _t74 = cpu->r[1] + 0x00000010u;
|
|
/* 028AF43C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 028AF440 */ cpu->r[11] = 0x10140000u;
|
|
/* 028AF444 */ _t75 = cpu->r[11] + 0xFFFF8324u;
|
|
/* 028AF444 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 028AF448 */ cpu->f[6] = fma(cpu->f[8], cpu->f[8], cpu->f[9]);
|
|
/* 028AF44C */ cpu->r[10] = 0x10140000u;
|
|
/* 028AF450 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[6], cpu->f[12]);
|
|
/* 028AF454 */ _t76 = cpu->r[10] + 0xFFFF8320u;
|
|
/* 028AF454 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t76);
|
|
/* 028AF458 */ _t77 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AF458 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028AF458 */ if (_t78) goto L_028AF45C; else goto L_028AF48C;
|
|
L_028AF45C: ; // 0x28af45c
|
|
/* 028AF45C */ _ft79 = sqrt(cpu->f[6]);
|
|
/* 028AF45C */ _ft80 = (double)(int32_t)0x00000001u;
|
|
/* 028AF45C */ cpu->f[8] = _ft80 / _ft79;
|
|
/* 028AF460 */ cpu->f[9] = cpu->f[8] * cpu->f[8];
|
|
/* 028AF464 */ cpu->f[11] = cpu->f[8] * cpu->f[13];
|
|
/* 028AF468 */ cpu->f[9] = -fma(cpu->f[9], cpu->f[6], -(cpu->f[0]));
|
|
/* 028AF46C */ cpu->f[8] = cpu->f[9] * cpu->f[11];
|
|
/* 028AF470 */ /* nop */
|
|
/* 028AF474 */ _t81 = cpu->r[1] + 0x00000010u;
|
|
/* 028AF474 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 028AF478 */ /* nop */
|
|
/* 028AF47C */ cpu->f[7] = cpu->f[7] * cpu->f[8];
|
|
/* 028AF480 */ /* nop */
|
|
/* 028AF484 */ cpu->f[6] = cpu->f[6] * cpu->f[8];
|
|
/* 028AF488 */ _t82 = cpu->r[1] + 0x00000010u;
|
|
/* 028AF488 */ rbrew_write_f32(cpu->mem, _t82, cpu->f[7]);
|
|
L_028AF48C: ; // 0x28af48c
|
|
/* 028AF48C */ _t83 = cpu->r[1] + 0x00000018u;
|
|
/* 028AF48C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t83);
|
|
/* 028AF490 */ _t84 = cpu->r[1] + 0x00000014u;
|
|
/* 028AF490 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t84);
|
|
/* 028AF494 */ cpu->f[9] = cpu->f[11] * cpu->f[11];
|
|
/* 028AF498 */ _t85 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AF498 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t85);
|
|
/* 028AF49C */ cpu->f[10] = fma(cpu->f[8], cpu->f[8], cpu->f[9]);
|
|
/* 028AF4A0 */ _t86 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AF4A0 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t86);
|
|
/* 028AF4A4 */ cpu->f[7] = fma(cpu->f[7], cpu->f[7], cpu->f[10]);
|
|
/* 028AF4A8 */ cpu->f[8] = cpu->f[8] * cpu->f[6];
|
|
/* 028AF4AC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[7], cpu->f[12]);
|
|
/* 028AF4B0 */ _t87 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AF4B0 */ rbrew_write_f32(cpu->mem, _t87, cpu->f[8]);
|
|
/* 028AF4B4 */ _t88 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AF4B4 */ _t89 = _t88 & 0x00000001u;
|
|
/* 028AF4B4 */ if (_t89) goto L_028AF4B8; else goto L_028AF4E8;
|
|
L_028AF4B8: ; // 0x28af4b8
|
|
/* 028AF4B8 */ _ft90 = sqrt(cpu->f[7]);
|
|
/* 028AF4B8 */ _ft91 = (double)(int32_t)0x00000001u;
|
|
/* 028AF4B8 */ cpu->f[9] = _ft91 / _ft90;
|
|
/* 028AF4BC */ cpu->f[11] = cpu->f[9] * cpu->f[9];
|
|
/* 028AF4C0 */ cpu->f[8] = cpu->f[9] * cpu->f[13];
|
|
/* 028AF4C4 */ cpu->f[11] = -fma(cpu->f[11], cpu->f[7], -(cpu->f[0]));
|
|
/* 028AF4C8 */ cpu->f[9] = cpu->f[11] * cpu->f[8];
|
|
/* 028AF4CC */ /* nop */
|
|
/* 028AF4D0 */ _t92 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AF4D0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t92);
|
|
/* 028AF4D4 */ /* nop */
|
|
/* 028AF4D8 */ cpu->f[10] = cpu->f[10] * cpu->f[9];
|
|
/* 028AF4DC */ /* nop */
|
|
/* 028AF4E0 */ cpu->f[7] = cpu->f[7] * cpu->f[9];
|
|
/* 028AF4E4 */ _t93 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AF4E4 */ rbrew_write_f32(cpu->mem, _t93, cpu->f[10]);
|
|
L_028AF4E8: ; // 0x28af4e8
|
|
/* 028AF4E8 */ _t94 = cpu->r[1] + 0x00000024u;
|
|
/* 028AF4E8 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 028AF4EC */ _t95 = cpu->r[1] + 0x00000020u;
|
|
/* 028AF4EC */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t95);
|
|
/* 028AF4F0 */ cpu->f[9] = cpu->f[9] * cpu->f[9];
|
|
/* 028AF4F4 */ _t96 = cpu->r[1] + 0x00000028u;
|
|
/* 028AF4F4 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t96);
|
|
/* 028AF4F8 */ cpu->f[11] = fma(cpu->f[11], cpu->f[11], cpu->f[9]);
|
|
/* 028AF4FC */ _t97 = cpu->r[1] + 0x00000060u;
|
|
/* 028AF4FC */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t97);
|
|
/* 028AF500 */ cpu->f[9] = fma(cpu->f[10], cpu->f[10], cpu->f[11]);
|
|
/* 028AF504 */ cpu->f[8] = cpu->f[8] * cpu->f[7];
|
|
/* 028AF508 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[9], cpu->f[12]);
|
|
/* 028AF50C */ _t98 = cpu->r[1] + 0x00000060u;
|
|
/* 028AF50C */ rbrew_write_f32(cpu->mem, _t98, cpu->f[8]);
|
|
/* 028AF510 */ _t99 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AF510 */ _t100 = _t99 & 0x00000001u;
|
|
/* 028AF510 */ if (_t100) goto L_028AF514; else goto L_028AF544;
|
|
L_028AF514: ; // 0x28af514
|
|
/* 028AF514 */ _ft101 = sqrt(cpu->f[9]);
|
|
/* 028AF514 */ _ft102 = (double)(int32_t)0x00000001u;
|
|
/* 028AF514 */ cpu->f[10] = _ft102 / _ft101;
|
|
/* 028AF518 */ cpu->f[11] = cpu->f[10] * cpu->f[10];
|
|
/* 028AF51C */ cpu->f[12] = cpu->f[10] * cpu->f[13];
|
|
/* 028AF520 */ cpu->f[11] = -fma(cpu->f[11], cpu->f[9], -(cpu->f[0]));
|
|
/* 028AF524 */ cpu->f[10] = cpu->f[11] * cpu->f[12];
|
|
/* 028AF528 */ /* nop */
|
|
/* 028AF52C */ _t103 = cpu->r[1] + 0x00000028u;
|
|
/* 028AF52C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t103);
|
|
/* 028AF530 */ /* nop */
|
|
/* 028AF534 */ cpu->f[12] = cpu->f[12] * cpu->f[10];
|
|
/* 028AF538 */ /* nop */
|
|
/* 028AF53C */ cpu->f[9] = cpu->f[9] * cpu->f[10];
|
|
/* 028AF540 */ _t104 = cpu->r[1] + 0x00000028u;
|
|
/* 028AF540 */ rbrew_write_f32(cpu->mem, _t104, cpu->f[12]);
|
|
L_028AF544: ; // 0x28af544
|
|
/* 028AF544 */ _t105 = cpu->r[1] + 0x00000064u;
|
|
/* 028AF544 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t105);
|
|
/* 028AF548 */ cpu->f[13] = cpu->f[13] * cpu->f[9];
|
|
/* 028AF54C */ cpu->r[4] = 0x00000000u;
|
|
/* 028AF550 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028AF554 */ cpu->r[3] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF558 */ _t106 = cpu->r[1] + 0x00000064u;
|
|
/* 028AF558 */ rbrew_write_f32(cpu->mem, _t106, cpu->f[13]);
|
|
/* 028AF55C */ Gambit_fn_0204F22C(cpu);
|
|
/* 028AF560 */ cpu->r[4] = 0x00000001u;
|
|
/* 028AF564 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 028AF568 */ cpu->r[3] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF56C */ Gambit_fn_0204F22C(cpu);
|
|
/* 028AF570 */ cpu->r[4] = 0x00000002u;
|
|
/* 028AF574 */ cpu->r[5] = cpu->r[1] + 0x00000020u;
|
|
/* 028AF578 */ cpu->r[3] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF57C */ Gambit_fn_0204F22C(cpu);
|
|
L_028AF580: ; // 0x28af580
|
|
/* 028AF580 */ cpu->r[3] = 0x101F0000u;
|
|
/* 028AF584 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000002u);
|
|
/* 028AF588 */ cpu->r[3] = cpu->r[3] + 0x00005E30u;
|
|
/* 028AF58C */ _t107 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AF58C */ _t108 = _t107 & 0x00000001u;
|
|
/* 028AF58C */ if (_t108) goto L_028AF590; else goto L_028AF59C;
|
|
L_028AF590: ; // 0x28af590
|
|
/* 028AF590 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000001u);
|
|
/* 028AF594 */ _t109 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AF594 */ _t110 = _t109 & 0x00000001u;
|
|
/* 028AF594 */ if (_t110) goto L_028AF86C; else goto L_028AF598;
|
|
L_028AF598: ; // 0x28af598
|
|
/* 028AF598 */ _t111 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF598 */ _t112 = _t111 & 0x00000001u;
|
|
/* 028AF598 */ if (_t112) goto L_028AF60C; else goto L_028AF59C;
|
|
L_028AF59C: ; // 0x28af59c
|
|
/* 028AF59C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000003u);
|
|
/* 028AF5A0 */ _t113 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AF5A0 */ _t114 = _t113 & 0x00000001u;
|
|
/* 028AF5A0 */ if (_t114) goto L_028AF6AC; else goto L_028AF5A4;
|
|
L_028AF5A4: ; // 0x28af5a4
|
|
/* 028AF5A4 */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF5A4 */ _t116 = _t115 & 0x00000001u;
|
|
/* 028AF5A4 */ if (_t116) goto L_028AF728; else goto L_028AF5A8;
|
|
L_028AF5A8: ; // 0x28af5a8
|
|
/* 028AF5A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000004u);
|
|
/* 028AF5AC */ _t117 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF5AC */ _t118 = _t117 & 0x00000001u;
|
|
/* 028AF5AC */ if (_t118) goto L_028AF7DC; else goto L_028AF5B0;
|
|
L_028AF5B0: ; // 0x28af5b0
|
|
/* 028AF5B0 */ _t119 = cpu->r[1] + 0x00000080u;
|
|
/* 028AF5B0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t119);
|
|
/* 028AF5B4 */ _t120 = cpu->r[1] + 0x000000BCu;
|
|
/* 028AF5B4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t120);
|
|
/* 028AF5B8 */ /* nop */
|
|
/* 028AF5BC */ cpu->f[7] = cpu->f[9] * cpu->f[0];
|
|
/* 028AF5C0 */ /* nop */
|
|
/* 028AF5C4 */ /* nop */
|
|
/* 028AF5C8 */ _t121 = cpu->r[1] + 0x000000C4u;
|
|
/* 028AF5C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t121);
|
|
/* 028AF5CC */ _t122 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF5CC */ rbrew_write_f32(cpu->mem, _t122, cpu->f[7]);
|
|
/* 028AF5D0 */ _t123 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF5D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t123);
|
|
/* 028AF5D4 */ cpu->r[4] = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF5D8 */ _t124 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AF5D8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t124);
|
|
/* 028AF5DC */ cpu->r[3] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF5E0 */ _t125 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AF5E0 */ rbrew_write32(cpu->mem, _t125, cpu->r[12]);
|
|
/* 028AF5E4 */ cpu->r[5] = cpu->r[1] + 0x00000074u;
|
|
/* 028AF5E8 */ _t126 = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF5E8 */ rbrew_write32(cpu->mem, _t126, cpu->r[11]);
|
|
/* 028AF5EC */ cpu->r[6] = cpu->r[1] + 0x00000068u;
|
|
/* 028AF5F0 */ _t127 = cpu->r[1] + 0x000000D4u;
|
|
/* 028AF5F0 */ rbrew_write32(cpu->mem, _t127, cpu->r[0]);
|
|
/* 028AF5F4 */ Gambit_fn_0200FC4C(cpu);
|
|
/* 028AF5F8 */ cpu->r[3] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF5FC */ cpu->r[4] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF600 */ cpu->r[5] = cpu->r[27];
|
|
/* 028AF604 */ Gambit_fn_02C69544(cpu);
|
|
/* 028AF608 */ goto L_028AF8E4;
|
|
L_028AF60C: ; // 0x28af60c
|
|
/* 028AF60C */ cpu->r[3] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF610 */ cpu->r[4] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF614 */ Gambit_fn_02C69510(cpu);
|
|
/* 028AF618 */ _t128 = cpu->r[1] + 0x00000070u;
|
|
/* 028AF618 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t128);
|
|
/* 028AF61C */ _t129 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AF61C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t129);
|
|
/* 028AF620 */ _t130 = cpu->r[1] + 0x00000064u;
|
|
/* 028AF620 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t130);
|
|
/* 028AF624 */ _t131 = cpu->r[1] + 0x00000068u;
|
|
/* 028AF624 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t131);
|
|
/* 028AF628 */ _t132 = cpu->r[1] + 0x00000060u;
|
|
/* 028AF628 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t132);
|
|
/* 028AF62C */ cpu->f[8] = cpu->f[8] * cpu->f[9];
|
|
/* 028AF630 */ _t133 = cpu->r[1] + 0x000000BCu;
|
|
/* 028AF630 */ rbrew_write_f32(cpu->mem, _t133, cpu->f[9]);
|
|
/* 028AF634 */ _t134 = cpu->r[1] + 0x000000B8u;
|
|
/* 028AF634 */ rbrew_write_f32(cpu->mem, _t134, cpu->f[11]);
|
|
/* 028AF638 */ cpu->f[0] = cpu->f[0] * cpu->f[12];
|
|
/* 028AF63C */ _t135 = cpu->r[1] + 0x000000B4u;
|
|
/* 028AF63C */ rbrew_write_f32(cpu->mem, _t135, cpu->f[12]);
|
|
/* 028AF640 */ /* nop */
|
|
/* 028AF644 */ _t136 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028AF644 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t136);
|
|
/* 028AF648 */ _t137 = cpu->r[1] + 0x00000068u;
|
|
/* 028AF648 */ rbrew_write_f32(cpu->mem, _t137, cpu->f[0]);
|
|
/* 028AF64C */ cpu->f[7] = cpu->f[7] * cpu->f[11];
|
|
/* 028AF650 */ _t138 = cpu->r[1] + 0x00000080u;
|
|
/* 028AF650 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t138);
|
|
/* 028AF654 */ _t139 = cpu->r[1] + 0x00000070u;
|
|
/* 028AF654 */ rbrew_write_f32(cpu->mem, _t139, cpu->f[8]);
|
|
/* 028AF658 */ /* nop */
|
|
/* 028AF65C */ _t140 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028AF65C */ rbrew_write_f32(cpu->mem, _t140, cpu->f[7]);
|
|
/* 028AF660 */ cpu->f[7] = cpu->f[9] * cpu->f[0];
|
|
/* 028AF664 */ /* nop */
|
|
/* 028AF668 */ _t141 = cpu->r[1] + 0x000000C4u;
|
|
/* 028AF668 */ cpu->r[12] = rbrew_read32(cpu->mem, _t141);
|
|
/* 028AF66C */ _t142 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AF66C */ cpu->r[11] = rbrew_read32(cpu->mem, _t142);
|
|
/* 028AF670 */ cpu->r[6] = cpu->r[1] + 0x00000068u;
|
|
/* 028AF674 */ _t143 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF674 */ rbrew_write_f32(cpu->mem, _t143, cpu->f[7]);
|
|
/* 028AF678 */ _t144 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF678 */ cpu->r[0] = rbrew_read32(cpu->mem, _t144);
|
|
/* 028AF67C */ cpu->r[4] = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF680 */ _t145 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AF680 */ rbrew_write32(cpu->mem, _t145, cpu->r[12]);
|
|
/* 028AF684 */ cpu->r[5] = cpu->r[1] + 0x00000074u;
|
|
/* 028AF688 */ _t146 = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF688 */ rbrew_write32(cpu->mem, _t146, cpu->r[11]);
|
|
/* 028AF68C */ cpu->r[3] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF690 */ _t147 = cpu->r[1] + 0x000000D4u;
|
|
/* 028AF690 */ rbrew_write32(cpu->mem, _t147, cpu->r[0]);
|
|
/* 028AF694 */ Gambit_fn_0200FC4C(cpu);
|
|
/* 028AF698 */ cpu->r[3] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF69C */ cpu->r[4] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF6A0 */ cpu->r[5] = cpu->r[27];
|
|
/* 028AF6A4 */ Gambit_fn_02C69544(cpu);
|
|
/* 028AF6A8 */ goto L_028AF8E4;
|
|
L_028AF6AC: ; // 0x28af6ac
|
|
/* 028AF6AC */ cpu->r[3] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF6B0 */ cpu->r[4] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF6B4 */ Gambit_fn_02C69510(cpu);
|
|
/* 028AF6B8 */ _t148 = cpu->r[30] + 0x00000000u;
|
|
/* 028AF6B8 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t148);
|
|
/* 028AF6BC */ _t149 = cpu->r[30] + 0x00000004u;
|
|
/* 028AF6BC */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t149);
|
|
/* 028AF6C0 */ _t150 = cpu->r[1] + 0x000000B4u;
|
|
/* 028AF6C0 */ rbrew_write_f32(cpu->mem, _t150, cpu->f[9]);
|
|
/* 028AF6C4 */ _t151 = cpu->r[30] + 0x00000008u;
|
|
/* 028AF6C4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t151);
|
|
/* 028AF6C8 */ _t152 = cpu->r[1] + 0x00000080u;
|
|
/* 028AF6C8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t152);
|
|
/* 028AF6CC */ _t153 = cpu->r[1] + 0x000000B8u;
|
|
/* 028AF6CC */ rbrew_write_f32(cpu->mem, _t153, cpu->f[10]);
|
|
/* 028AF6D0 */ /* nop */
|
|
/* 028AF6D4 */ cpu->f[7] = cpu->f[9] * cpu->f[0];
|
|
/* 028AF6D8 */ _t154 = cpu->r[1] + 0x000000BCu;
|
|
/* 028AF6D8 */ rbrew_write_f32(cpu->mem, _t154, cpu->f[9]);
|
|
/* 028AF6DC */ /* nop */
|
|
/* 028AF6E0 */ /* nop */
|
|
/* 028AF6E4 */ _t155 = cpu->r[1] + 0x000000C4u;
|
|
/* 028AF6E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t155);
|
|
/* 028AF6E8 */ _t156 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF6E8 */ rbrew_write_f32(cpu->mem, _t156, cpu->f[7]);
|
|
/* 028AF6EC */ _t157 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF6EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t157);
|
|
/* 028AF6F0 */ cpu->r[4] = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF6F4 */ _t158 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AF6F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t158);
|
|
/* 028AF6F8 */ cpu->r[3] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF6FC */ _t159 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AF6FC */ rbrew_write32(cpu->mem, _t159, cpu->r[12]);
|
|
/* 028AF700 */ cpu->r[5] = cpu->r[1] + 0x00000074u;
|
|
/* 028AF704 */ _t160 = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF704 */ rbrew_write32(cpu->mem, _t160, cpu->r[11]);
|
|
/* 028AF708 */ cpu->r[6] = cpu->r[1] + 0x00000068u;
|
|
/* 028AF70C */ _t161 = cpu->r[1] + 0x000000D4u;
|
|
/* 028AF70C */ rbrew_write32(cpu->mem, _t161, cpu->r[0]);
|
|
/* 028AF710 */ Gambit_fn_0200FC4C(cpu);
|
|
/* 028AF714 */ cpu->r[3] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF718 */ cpu->r[4] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF71C */ cpu->r[5] = cpu->r[27];
|
|
/* 028AF720 */ Gambit_fn_02C69544(cpu);
|
|
/* 028AF724 */ goto L_028AF8E4;
|
|
L_028AF728: ; // 0x28af728
|
|
/* 028AF728 */ cpu->r[4] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF72C */ Gambit_fn_02C69510(cpu);
|
|
/* 028AF730 */ _t162 = cpu->r[1] + 0x00000038u;
|
|
/* 028AF730 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t162);
|
|
/* 028AF734 */ _t163 = cpu->r[1] + 0x00000048u;
|
|
/* 028AF734 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t163);
|
|
/* 028AF738 */ _t164 = cpu->r[1] + 0x00000090u;
|
|
/* 028AF738 */ rbrew_write_f32(cpu->mem, _t164, cpu->f[11]);
|
|
/* 028AF73C */ _t165 = cpu->r[1] + 0x00000060u;
|
|
/* 028AF73C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t165);
|
|
/* 028AF740 */ _t166 = cpu->r[1] + 0x000000A0u;
|
|
/* 028AF740 */ rbrew_write_f32(cpu->mem, _t166, cpu->f[12]);
|
|
/* 028AF744 */ _t167 = cpu->r[1] + 0x00000058u;
|
|
/* 028AF744 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t167);
|
|
/* 028AF748 */ _t168 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028AF748 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t168);
|
|
/* 028AF74C */ _t169 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AF74C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t169);
|
|
/* 028AF750 */ _t170 = cpu->r[1] + 0x000000B8u;
|
|
/* 028AF750 */ rbrew_write_f32(cpu->mem, _t170, cpu->f[11]);
|
|
/* 028AF754 */ cpu->f[7] = cpu->f[7] * cpu->f[11];
|
|
/* 028AF758 */ _t171 = cpu->r[1] + 0x00000068u;
|
|
/* 028AF758 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t171);
|
|
/* 028AF75C */ _t172 = cpu->r[1] + 0x000000B4u;
|
|
/* 028AF75C */ rbrew_write_f32(cpu->mem, _t172, cpu->f[12]);
|
|
/* 028AF760 */ /* nop */
|
|
/* 028AF764 */ cpu->f[0] = cpu->f[0] * cpu->f[12];
|
|
/* 028AF768 */ _t173 = cpu->r[1] + 0x00000064u;
|
|
/* 028AF768 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t173);
|
|
/* 028AF76C */ _t174 = cpu->r[1] + 0x00000070u;
|
|
/* 028AF76C */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t174);
|
|
/* 028AF770 */ _t175 = cpu->r[1] + 0x00000068u;
|
|
/* 028AF770 */ rbrew_write_f32(cpu->mem, _t175, cpu->f[0]);
|
|
/* 028AF774 */ _t176 = cpu->r[1] + 0x0000006Cu;
|
|
/* 028AF774 */ rbrew_write_f32(cpu->mem, _t176, cpu->f[7]);
|
|
/* 028AF778 */ cpu->f[8] = cpu->f[8] * cpu->f[9];
|
|
/* 028AF77C */ _t177 = cpu->r[1] + 0x00000080u;
|
|
/* 028AF77C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t177);
|
|
/* 028AF780 */ _t178 = cpu->r[1] + 0x000000B0u;
|
|
/* 028AF780 */ rbrew_write_f32(cpu->mem, _t178, cpu->f[13]);
|
|
/* 028AF784 */ /* nop */
|
|
/* 028AF788 */ _t179 = cpu->r[1] + 0x00000070u;
|
|
/* 028AF788 */ rbrew_write_f32(cpu->mem, _t179, cpu->f[8]);
|
|
/* 028AF78C */ _t180 = cpu->r[1] + 0x000000BCu;
|
|
/* 028AF78C */ rbrew_write_f32(cpu->mem, _t180, cpu->f[9]);
|
|
/* 028AF790 */ cpu->f[7] = cpu->f[9] * cpu->f[0];
|
|
/* 028AF794 */ /* nop */
|
|
/* 028AF798 */ _t181 = cpu->r[1] + 0x000000C4u;
|
|
/* 028AF798 */ cpu->r[12] = rbrew_read32(cpu->mem, _t181);
|
|
/* 028AF79C */ _t182 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AF79C */ cpu->r[11] = rbrew_read32(cpu->mem, _t182);
|
|
/* 028AF7A0 */ cpu->r[6] = cpu->r[1] + 0x00000068u;
|
|
/* 028AF7A4 */ _t183 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF7A4 */ rbrew_write_f32(cpu->mem, _t183, cpu->f[7]);
|
|
/* 028AF7A8 */ _t184 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF7A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t184);
|
|
/* 028AF7AC */ cpu->r[4] = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF7B0 */ _t185 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AF7B0 */ rbrew_write32(cpu->mem, _t185, cpu->r[12]);
|
|
/* 028AF7B4 */ cpu->r[3] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF7B8 */ _t186 = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF7B8 */ rbrew_write32(cpu->mem, _t186, cpu->r[11]);
|
|
/* 028AF7BC */ cpu->r[5] = cpu->r[1] + 0x00000074u;
|
|
/* 028AF7C0 */ _t187 = cpu->r[1] + 0x000000D4u;
|
|
/* 028AF7C0 */ rbrew_write32(cpu->mem, _t187, cpu->r[0]);
|
|
/* 028AF7C4 */ Gambit_fn_0200FC4C(cpu);
|
|
/* 028AF7C8 */ cpu->r[5] = cpu->r[27];
|
|
/* 028AF7CC */ cpu->r[4] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF7D0 */ cpu->r[3] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF7D4 */ Gambit_fn_02C69544(cpu);
|
|
/* 028AF7D8 */ goto L_028AF8E4;
|
|
L_028AF7DC: ; // 0x28af7dc
|
|
/* 028AF7DC */ cpu->r[4] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF7E0 */ Gambit_fn_02C69510(cpu);
|
|
/* 028AF7E4 */ _t188 = cpu->r[30] + 0x00000000u;
|
|
/* 028AF7E4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t188);
|
|
/* 028AF7E8 */ _t189 = cpu->r[1] + 0x00000038u;
|
|
/* 028AF7E8 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t189);
|
|
/* 028AF7EC */ _t190 = cpu->r[30] + 0x00000004u;
|
|
/* 028AF7EC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t190);
|
|
/* 028AF7F0 */ _t191 = cpu->r[1] + 0x00000090u;
|
|
/* 028AF7F0 */ rbrew_write_f32(cpu->mem, _t191, cpu->f[10]);
|
|
/* 028AF7F4 */ _t192 = cpu->r[1] + 0x000000B8u;
|
|
/* 028AF7F4 */ rbrew_write_f32(cpu->mem, _t192, cpu->f[0]);
|
|
/* 028AF7F8 */ _t193 = cpu->r[1] + 0x00000048u;
|
|
/* 028AF7F8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t193);
|
|
/* 028AF7FC */ _t194 = cpu->r[1] + 0x000000B4u;
|
|
/* 028AF7FC */ rbrew_write_f32(cpu->mem, _t194, cpu->f[13]);
|
|
/* 028AF800 */ /* nop */
|
|
/* 028AF804 */ _t195 = cpu->r[1] + 0x00000058u;
|
|
/* 028AF804 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t195);
|
|
/* 028AF808 */ _t196 = cpu->r[1] + 0x00000080u;
|
|
/* 028AF808 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t196);
|
|
/* 028AF80C */ _t197 = cpu->r[30] + 0x00000008u;
|
|
/* 028AF80C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t197);
|
|
/* 028AF810 */ _t198 = cpu->r[1] + 0x000000A0u;
|
|
/* 028AF810 */ rbrew_write_f32(cpu->mem, _t198, cpu->f[11]);
|
|
/* 028AF814 */ /* nop */
|
|
/* 028AF818 */ _t199 = cpu->r[1] + 0x000000B0u;
|
|
/* 028AF818 */ rbrew_write_f32(cpu->mem, _t199, cpu->f[12]);
|
|
/* 028AF81C */ /* nop */
|
|
/* 028AF820 */ _t200 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AF820 */ cpu->r[11] = rbrew_read32(cpu->mem, _t200);
|
|
/* 028AF824 */ _t201 = cpu->r[1] + 0x000000C4u;
|
|
/* 028AF824 */ cpu->r[12] = rbrew_read32(cpu->mem, _t201);
|
|
/* 028AF828 */ cpu->f[7] = cpu->f[9] * cpu->f[0];
|
|
/* 028AF82C */ _t202 = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF82C */ rbrew_write32(cpu->mem, _t202, cpu->r[11]);
|
|
/* 028AF830 */ cpu->r[4] = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF834 */ _t203 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AF834 */ rbrew_write32(cpu->mem, _t203, cpu->r[12]);
|
|
/* 028AF838 */ cpu->r[3] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF83C */ _t204 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF83C */ rbrew_write_f32(cpu->mem, _t204, cpu->f[7]);
|
|
/* 028AF840 */ _t205 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF840 */ cpu->r[0] = rbrew_read32(cpu->mem, _t205);
|
|
/* 028AF844 */ cpu->r[5] = cpu->r[1] + 0x00000074u;
|
|
/* 028AF848 */ _t206 = cpu->r[1] + 0x000000BCu;
|
|
/* 028AF848 */ rbrew_write_f32(cpu->mem, _t206, cpu->f[9]);
|
|
/* 028AF84C */ cpu->r[6] = cpu->r[1] + 0x00000068u;
|
|
/* 028AF850 */ _t207 = cpu->r[1] + 0x000000D4u;
|
|
/* 028AF850 */ rbrew_write32(cpu->mem, _t207, cpu->r[0]);
|
|
/* 028AF854 */ Gambit_fn_0200FC4C(cpu);
|
|
/* 028AF858 */ cpu->r[5] = cpu->r[27];
|
|
/* 028AF85C */ cpu->r[4] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF860 */ cpu->r[3] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF864 */ Gambit_fn_02C69544(cpu);
|
|
/* 028AF868 */ goto L_028AF8E4;
|
|
L_028AF86C: ; // 0x28af86c
|
|
/* 028AF86C */ cpu->r[4] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF870 */ cpu->r[3] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AF874 */ Gambit_fn_02C69510(cpu);
|
|
/* 028AF878 */ _t208 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AF878 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t208);
|
|
/* 028AF87C */ _t209 = cpu->r[1] + 0x00000080u;
|
|
/* 028AF87C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t209);
|
|
/* 028AF880 */ _t210 = cpu->r[1] + 0x00000060u;
|
|
/* 028AF880 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t210);
|
|
/* 028AF884 */ _t211 = cpu->r[1] + 0x00000064u;
|
|
/* 028AF884 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t211);
|
|
/* 028AF888 */ _t212 = cpu->r[1] + 0x000000B8u;
|
|
/* 028AF888 */ rbrew_write_f32(cpu->mem, _t212, cpu->f[10]);
|
|
/* 028AF88C */ _t213 = cpu->r[1] + 0x000000B4u;
|
|
/* 028AF88C */ rbrew_write_f32(cpu->mem, _t213, cpu->f[7]);
|
|
/* 028AF890 */ cpu->f[7] = cpu->f[9] * cpu->f[0];
|
|
/* 028AF894 */ /* nop */
|
|
/* 028AF898 */ _t214 = cpu->r[1] + 0x000000BCu;
|
|
/* 028AF898 */ rbrew_write_f32(cpu->mem, _t214, cpu->f[9]);
|
|
/* 028AF89C */ /* nop */
|
|
/* 028AF8A0 */ _t215 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF8A0 */ rbrew_write_f32(cpu->mem, _t215, cpu->f[7]);
|
|
/* 028AF8A4 */ _t216 = cpu->r[1] + 0x000000C8u;
|
|
/* 028AF8A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t216);
|
|
/* 028AF8A8 */ /* nop */
|
|
/* 028AF8AC */ _t217 = cpu->r[1] + 0x000000C0u;
|
|
/* 028AF8AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t217);
|
|
/* 028AF8B0 */ cpu->r[4] = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF8B4 */ _t218 = cpu->r[1] + 0x000000C4u;
|
|
/* 028AF8B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t218);
|
|
/* 028AF8B8 */ cpu->r[3] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF8BC */ _t219 = cpu->r[1] + 0x000000CCu;
|
|
/* 028AF8BC */ rbrew_write32(cpu->mem, _t219, cpu->r[11]);
|
|
/* 028AF8C0 */ cpu->r[5] = cpu->r[1] + 0x00000074u;
|
|
/* 028AF8C4 */ _t220 = cpu->r[1] + 0x000000D4u;
|
|
/* 028AF8C4 */ rbrew_write32(cpu->mem, _t220, cpu->r[0]);
|
|
/* 028AF8C8 */ cpu->r[6] = cpu->r[1] + 0x00000068u;
|
|
/* 028AF8CC */ _t221 = cpu->r[1] + 0x000000D0u;
|
|
/* 028AF8CC */ rbrew_write32(cpu->mem, _t221, cpu->r[12]);
|
|
/* 028AF8D0 */ Gambit_fn_0200FC4C(cpu);
|
|
/* 028AF8D4 */ cpu->r[3] = cpu->r[1] + 0x00000084u;
|
|
/* 028AF8D8 */ cpu->r[4] = cpu->r[1] + 0x00000108u;
|
|
/* 028AF8DC */ cpu->r[5] = cpu->r[27];
|
|
/* 028AF8E0 */ Gambit_fn_02C69544(cpu);
|
|
L_028AF8E4: ; // 0x28af8e4
|
|
/* 028AF8E4 */ /* nop */
|
|
/* 028AF8E8 */ _t222 = cpu->r[1] + 0x0000015Cu;
|
|
/* 028AF8E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t222);
|
|
/* 028AF8EC */ cpu->lr = cpu->r[0];
|
|
/* 028AF8F0 */ cpu->r[1] = cpu->r[1] + 0x00000158u;
|
|
/* 028AF8F4 */ return;
|
|
}
|
|
|
|
// fn_028AF8F8 @ 0x28af8f8
|
|
void Gambit_fn_028AF8F8(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;
|
|
|
|
L_028AF8F8: ; // 0x28af8f8
|
|
/* 028AF8F8 */ _t0 = cpu->r[1] + 0xFFFFFF80u;
|
|
/* 028AF8F8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AF8F8 */ cpu->r[1] = _t0;
|
|
/* 028AF8FC */ cpu->r[0] = cpu->lr;
|
|
/* 028AF900 */ _t1 = cpu->r[1] + 0x00000050u;
|
|
/* 028AF900 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[29]);
|
|
/* 028AF904 */ /* nop */
|
|
/* 028AF908 */ _t2 = cpu->r[1] + 0x00000070u;
|
|
/* 028AF908 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028AF90C */ /* nop */
|
|
/* 028AF910 */ _t3 = cpu->r[1] + 0x00000058u;
|
|
/* 028AF910 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[29]);
|
|
/* 028AF914 */ _t4 = cpu->r[1] + 0x00000078u;
|
|
/* 028AF914 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028AF918 */ _t5 = cpu->r[1] + 0x00000044u;
|
|
/* 028AF918 */ rbrew_write32(cpu->mem, _t5, cpu->r[29]);
|
|
/* 028AF91C */ _t6 = cpu->r[1] + 0x00000060u;
|
|
/* 028AF91C */ rbrew_write_f64(cpu->mem, _t6, cpu->f[30]);
|
|
/* 028AF920 */ _t7 = cpu->r[1] + 0x00000084u;
|
|
/* 028AF920 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028AF924 */ _t8 = cpu->r[1] + 0x00000040u;
|
|
/* 028AF924 */ rbrew_write32(cpu->mem, _t8, cpu->r[28]);
|
|
/* 028AF928 */ /* nop */
|
|
/* 028AF92C */ _t9 = cpu->r[1] + 0x00000048u;
|
|
/* 028AF92C */ rbrew_write32(cpu->mem, _t9, cpu->r[30]);
|
|
/* 028AF930 */ _t10 = cpu->r[1] + 0x00000068u;
|
|
/* 028AF930 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[30]);
|
|
/* 028AF934 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AF938 */ _t11 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AF938 */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 028AF93C */ _t12 = cpu->r[30] + 0x00000028u;
|
|
/* 028AF93C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AF940 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AF940 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AF944 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF944 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AF944 */ if (_t14) goto L_028AF948; else goto L_028AF950;
|
|
L_028AF948: ; // 0x28af948
|
|
/* 028AF948 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AF948 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AF94C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF94C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028AF94C */ if (_t16) goto L_028AFAF8; else goto L_028AF950;
|
|
L_028AF950: ; // 0x28af950
|
|
/* 028AF950 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AF954 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AF958 */ _t17 = cpu->r[30] + 0x00000034u;
|
|
/* 028AF958 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AF95C */ cpu->r[28] = cpu->r[3];
|
|
/* 028AF960 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AF964 */ cpu->r[29] = cpu->r[30] + 0x00000034u;
|
|
/* 028AF968 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF968 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028AF968 */ if (_t19) goto L_028AFAF8; else goto L_028AF96C;
|
|
L_028AF96C: ; // 0x28af96c
|
|
/* 028AF96C */ _t20 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AF96C */ cpu->r[5] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028AF970 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AF974 */ _t21 = cpu->r[30] + 0x00000010u;
|
|
/* 028AF974 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AF978 */ Gambit_fn_028B1118(cpu);
|
|
/* 028AF97C */ _t22 = cpu->r[30] + 0x00000010u;
|
|
/* 028AF97C */ cpu->r[4] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AF980 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AF984 */ _t23 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AF984 */ cpu->r[5] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AF988 */ cpu->f[29] = cpu->f[1];
|
|
/* 028AF98C */ Gambit_fn_028B1188(cpu);
|
|
/* 028AF990 */ _t24 = cpu->r[30] + 0x00000010u;
|
|
/* 028AF990 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028AF994 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AF998 */ _t25 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AF998 */ cpu->r[5] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028AF99C */ cpu->f[30] = cpu->f[1];
|
|
/* 028AF9A0 */ Gambit_fn_028B11F8(cpu);
|
|
/* 028AF9A4 */ _t26 = cpu->r[30] + 0x00000010u;
|
|
/* 028AF9A4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AF9A8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AF9AC */ _t27 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AF9AC */ cpu->r[5] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AF9B0 */ cpu->f[31] = cpu->f[1];
|
|
/* 028AF9B4 */ Gambit_fn_028B1268(cpu);
|
|
/* 028AF9B8 */ _t28 = cpu->r[30] + 0x00000028u;
|
|
/* 028AF9B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AF9BC */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AF9BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028AF9C0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF9C0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028AF9C0 */ if (_t30) goto L_028AF9EC; else goto L_028AF9C4;
|
|
L_028AF9C4: ; // 0x28af9c4
|
|
/* 028AF9C4 */ _t31 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028AF9C4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028AF9C8 */ _t32 = cpu->r[30] + 0x00000040u;
|
|
/* 028AF9C8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 028AF9CC */ cpu->f[13] = cpu->f[29] * cpu->f[9];
|
|
/* 028AF9D0 */ _t33 = cpu->r[30] + 0x00000044u;
|
|
/* 028AF9D0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 028AF9D4 */ cpu->f[0] = cpu->f[30] * cpu->f[11];
|
|
/* 028AF9D8 */ _t34 = cpu->r[31] + 0x000000BCu;
|
|
/* 028AF9D8 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[13]);
|
|
/* 028AF9DC */ cpu->f[10] = cpu->f[31] * cpu->f[12];
|
|
/* 028AF9E0 */ _t35 = cpu->r[31] + 0x000000C0u;
|
|
/* 028AF9E0 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[0]);
|
|
/* 028AF9E4 */ _t36 = cpu->r[31] + 0x000000C4u;
|
|
/* 028AF9E4 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[10]);
|
|
/* 028AF9E8 */ _t37 = cpu->r[30] + 0x00000028u;
|
|
/* 028AF9E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
L_028AF9EC: ; // 0x28af9ec
|
|
/* 028AF9EC */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AF9EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028AF9F0 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AF9F0 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028AF9F0 */ if (_t39) goto L_028AFA04; else goto L_028AF9F4;
|
|
L_028AF9F4: ; // 0x28af9f4
|
|
/* 028AF9F4 */ _t40 = cpu->r[30] + 0x00000048u;
|
|
/* 028AF9F4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028AF9F8 */ cpu->f[13] = cpu->f[1] * cpu->f[0];
|
|
/* 028AF9FC */ _t41 = cpu->r[31] + 0x000000C8u;
|
|
/* 028AF9FC */ rbrew_write_f32(cpu->mem, _t41, cpu->f[13]);
|
|
/* 028AFA00 */ _t42 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFA00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
L_028AFA04: ; // 0x28afa04
|
|
/* 028AFA04 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AFA04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFA08 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFA08 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028AFA08 */ if (_t44) goto L_028AFA80; else goto L_028AFA0C;
|
|
L_028AFA0C: ; // 0x28afa0c
|
|
/* 028AFA0C */ cpu->r[12] = 0x101D0000u;
|
|
/* 028AFA10 */ _t45 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028AFA10 */ cpu->r[12] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028AFA14 */ _t46 = cpu->r[12] + 0x00000068u;
|
|
/* 028AFA14 */ cpu->r[3] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028AFA18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFA1C */ _t47 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AFA1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028AFA20 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFA20 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028AFA20 */ if (_t49) goto L_028AFA4C; else goto L_028AFA24;
|
|
L_028AFA24: ; // 0x28afa24
|
|
/* 028AFA24 */ _t50 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFA24 */ cpu->r[10] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028AFA28 */ _t51 = cpu->r[1] + 0x00000014u;
|
|
/* 028AFA28 */ rbrew_write32(cpu->mem, _t51, cpu->r[31]);
|
|
/* 028AFA2C */ _t52 = cpu->r[1] + 0x00000010u;
|
|
/* 028AFA2C */ rbrew_write32(cpu->mem, _t52, cpu->r[10]);
|
|
/* 028AFA30 */ _t53 = cpu->r[1] + 0x00000018u;
|
|
/* 028AFA30 */ rbrew_write32(cpu->mem, _t53, cpu->r[29]);
|
|
/* 028AFA34 */ _t54 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AFA34 */ rbrew_write32(cpu->mem, _t54, cpu->r[30]);
|
|
/* 028AFA38 */ _t55 = cpu->r[3] + 0x00000000u;
|
|
/* 028AFA38 */ cpu->r[11] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028AFA3C */ _t56 = cpu->r[11] + 0x0000003Cu;
|
|
/* 028AFA3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028AFA40 */ cpu->ctr = cpu->r[0];
|
|
/* 028AFA44 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028AFA48 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AFA4C: ; // 0x28afa4c
|
|
/* 028AFA4C */ _t57 = cpu->r[31] + 0x00000060u;
|
|
/* 028AFA4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028AFA50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFA54 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFA54 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028AFA54 */ if (_t59) goto L_028AFA80; else goto L_028AFA58;
|
|
L_028AFA58: ; // 0x28afa58
|
|
/* 028AFA58 */ _t60 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFA58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028AFA5C */ _t61 = cpu->r[1] + 0x00000030u;
|
|
/* 028AFA5C */ rbrew_write32(cpu->mem, _t61, cpu->r[31]);
|
|
/* 028AFA60 */ _t62 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AFA60 */ rbrew_write32(cpu->mem, _t62, cpu->r[0]);
|
|
/* 028AFA64 */ _t63 = cpu->r[1] + 0x00000034u;
|
|
/* 028AFA64 */ rbrew_write32(cpu->mem, _t63, cpu->r[29]);
|
|
/* 028AFA68 */ _t64 = cpu->r[1] + 0x00000038u;
|
|
/* 028AFA68 */ rbrew_write32(cpu->mem, _t64, cpu->r[30]);
|
|
/* 028AFA6C */ _t65 = cpu->r[3] + 0x00000000u;
|
|
/* 028AFA6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028AFA70 */ _t66 = cpu->r[9] + 0x0000003Cu;
|
|
/* 028AFA70 */ cpu->r[10] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028AFA74 */ cpu->ctr = cpu->r[10];
|
|
/* 028AFA78 */ cpu->r[4] = cpu->r[1] + 0x00000024u;
|
|
/* 028AFA7C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AFA80: ; // 0x28afa80
|
|
/* 028AFA80 */ _t67 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFA80 */ cpu->r[4] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028AFA84 */ cpu->r[5] = 0x00000017u;
|
|
/* 028AFA88 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFA8C */ Gambit_fn_028A87D4(cpu);
|
|
/* 028AFA90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 028AFA94 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFA94 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028AFA94 */ if (_t69) goto L_028AFAD4; else goto L_028AFA98;
|
|
L_028AFA98: ; // 0x28afa98
|
|
/* 028AFA98 */ _t70 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFA98 */ cpu->r[4] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028AFA9C */ cpu->r[5] = 0x00000016u;
|
|
/* 028AFAA0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFAA4 */ Gambit_fn_028A87D4(cpu);
|
|
/* 028AFAA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 028AFAAC */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFAAC */ _t72 = _t71 & 0x00000001u;
|
|
/* 028AFAAC */ if (_t72) goto L_028AFAD4; else goto L_028AFAB0;
|
|
L_028AFAB0: ; // 0x28afab0
|
|
/* 028AFAB0 */ _t73 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFAB0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028AFAB4 */ cpu->r[5] = 0x00000015u;
|
|
/* 028AFAB8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFABC */ Gambit_fn_028A87D4(cpu);
|
|
/* 028AFAC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 028AFAC4 */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFAC4 */ _t75 = _t74 & 0x00000001u;
|
|
/* 028AFAC4 */ if (_t75) goto L_028AFAD4; else goto L_028AFAC8;
|
|
L_028AFAC8: ; // 0x28afac8
|
|
/* 028AFAC8 */ _t76 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFAC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028AFACC */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Eu, 0x0000001Cu);
|
|
/* 028AFAD0 */ _t77 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFAD0 */ rbrew_write32(cpu->mem, _t77, cpu->r[0]);
|
|
L_028AFAD4: ; // 0x28afad4
|
|
/* 028AFAD4 */ _t78 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFAD4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028AFAD8 */ cpu->r[5] = 0x00000018u;
|
|
/* 028AFADC */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFAE0 */ Gambit_fn_028A87D4(cpu);
|
|
/* 028AFAE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 028AFAE8 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFAE8 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028AFAE8 */ if (_t80) goto L_028AFAF8; else goto L_028AFAEC;
|
|
L_028AFAEC: ; // 0x28afaec
|
|
/* 028AFAEC */ _t81 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFAEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028AFAF0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 028AFAF4 */ _t82 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFAF4 */ rbrew_write32(cpu->mem, _t82, cpu->r[0]);
|
|
L_028AFAF8: ; // 0x28afaf8
|
|
/* 028AFAF8 */ _t83 = cpu->r[1] + 0x00000040u;
|
|
/* 028AFAF8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028AFAFC */ _t84 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFAFC */ cpu->r[29] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028AFB00 */ _t85 = cpu->r[1] + 0x00000078u;
|
|
/* 028AFB00 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t85);
|
|
/* 028AFB04 */ _t86 = cpu->r[1] + 0x00000058u;
|
|
/* 028AFB04 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t86);
|
|
/* 028AFB08 */ _t87 = cpu->r[1] + 0x00000070u;
|
|
/* 028AFB08 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t87);
|
|
/* 028AFB0C */ _t88 = cpu->r[1] + 0x00000068u;
|
|
/* 028AFB0C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t88);
|
|
/* 028AFB10 */ _t89 = cpu->r[1] + 0x00000050u;
|
|
/* 028AFB10 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t89);
|
|
/* 028AFB14 */ _t90 = cpu->r[1] + 0x00000060u;
|
|
/* 028AFB14 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t90);
|
|
/* 028AFB18 */ _t91 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AFB18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028AFB1C */ _t92 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFB1C */ cpu->r[30] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028AFB20 */ _t93 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AFB20 */ _t94 = _t93 & 0x00000001u;
|
|
/* 028AFB20 */ if (_t94) goto L_028AFB24; // else: addr-0 trap, fall-through
|
|
L_028AFB24: ; // 0x28afb24
|
|
/* 028AFB24 */ _t95 = cpu->r[1] + 0x00000084u;
|
|
/* 028AFB24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028AFB28 */ cpu->lr = cpu->r[0];
|
|
/* 028AFB2C */ cpu->r[1] = cpu->r[1] + 0x00000080u;
|
|
/* 028AFB30 */ return;
|
|
}
|
|
|
|
// fn_028AFB34 @ 0x28afb34
|
|
void Gambit_fn_028AFB34(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;
|
|
|
|
L_028AFB34: ; // 0x28afb34
|
|
/* 028AFB34 */ cpu->r[0] = cpu->lr;
|
|
/* 028AFB38 */ _t0 = cpu->r[1] + 0xFFFFFFA8u;
|
|
/* 028AFB38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AFB38 */ cpu->r[1] = _t0;
|
|
/* 028AFB3C */ _t1 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFB3C */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028AFB40 */ /* nop */
|
|
/* 028AFB44 */ _t2 = cpu->r[1] + 0x00000038u;
|
|
/* 028AFB44 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028AFB48 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028AFB48 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028AFB4C */ _t4 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFB4C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028AFB50 */ _t5 = cpu->r[1] + 0x00000040u;
|
|
/* 028AFB50 */ rbrew_write32(cpu->mem, _t5, cpu->r[30]);
|
|
/* 028AFB54 */ _t6 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AFB54 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028AFB58 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AFB5C */ _t7 = cpu->r[1] + 0x00000050u;
|
|
/* 028AFB5C */ rbrew_write_f32(cpu->mem, _t7, cpu->f[31]);
|
|
/* 028AFB60 */ _t8 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFB60 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AFB64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AFB68 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFB68 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028AFB68 */ if (_t10) goto L_028AFD04; else goto L_028AFB6C;
|
|
L_028AFB6C: ; // 0x28afb6c
|
|
/* 028AFB6C */ _t11 = cpu->r[12] + 0x00000014u;
|
|
/* 028AFB6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AFB70 */ _t12 = cpu->r[30] + 0x00000038u;
|
|
/* 028AFB70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AFB74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028AFB78 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFB78 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AFB78 */ if (_t14) goto L_028AFB7C; else goto L_028AFD04;
|
|
L_028AFB7C: ; // 0x28afb7c
|
|
/* 028AFB7C */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFB80 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AFB84 */ _t15 = cpu->r[30] + 0x00000024u;
|
|
/* 028AFB84 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AFB88 */ _t16 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AFB88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AFB8C */ cpu->ctr = cpu->r[0];
|
|
/* 028AFB90 */ _t17 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AFB90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AFB94 */ cpu->r[28] = cpu->r[3];
|
|
/* 028AFB98 */ _t18 = cpu->r[29] + 0x00000064u;
|
|
/* 028AFB98 */ cpu->r[31] = rbrew_read16(cpu->mem, _t18);
|
|
/* 028AFB9C */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFBA0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFBA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFBA8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFBA8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028AFBA8 */ if (_t20) goto L_028AFBB4; else goto L_028AFBAC;
|
|
L_028AFBAC: ; // 0x28afbac
|
|
/* 028AFBAC */ _t21 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFBAC */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AFBB0 */ _t22 = cpu->r[12] + 0x00000030u;
|
|
/* 028AFBB0 */ rbrew_write32(cpu->mem, _t22, cpu->r[31]);
|
|
L_028AFBB4: ; // 0x28afbb4
|
|
/* 028AFBB4 */ _t23 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFBB4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AFBB8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AFBB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFBBC */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFBBC */ _t25 = _t24 & 0x00000001u;
|
|
/* 028AFBBC */ if (_t25) goto L_028AFC20; else goto L_028AFBC0;
|
|
L_028AFBC0: ; // 0x28afbc0
|
|
/* 028AFBC0 */ _t26 = cpu->r[30] + 0x00000020u;
|
|
/* 028AFBC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AFBC4 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028AFBC8 */ _t27 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AFBC8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AFBCC */ cpu->r[5] = cpu->r[29];
|
|
/* 028AFBD0 */ _t28 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFBD0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AFBD4 */ Gambit_fn_028AF17C(cpu);
|
|
/* 028AFBD8 */ _t29 = cpu->r[30] + 0x00000024u;
|
|
/* 028AFBD8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AFBDC */ _t30 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028AFBDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AFBE0 */ cpu->ctr = cpu->r[0];
|
|
/* 028AFBE4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFBE8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFBEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFBF0 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFBF0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028AFBF0 */ if (_t32) goto L_028AFC00; else goto L_028AFBF4;
|
|
L_028AFBF4: ; // 0x28afbf4
|
|
/* 028AFBF4 */ _t33 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFBF4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028AFBF8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028AFBFC */ Gambit_fn_02A39D84(cpu);
|
|
L_028AFC00: ; // 0x28afc00
|
|
/* 028AFC00 */ _t34 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFC00 */ cpu->r[4] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028AFC04 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFC08 */ Gambit_fn_028B0C6C(cpu);
|
|
/* 028AFC0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFC10 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFC10 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028AFC10 */ if (_t36) goto L_028AFC14; else goto L_028AFC20;
|
|
L_028AFC14: ; // 0x28afc14
|
|
/* 028AFC14 */ _t37 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFC14 */ cpu->r[10] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AFC18 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028AFC1C */ _t38 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFC1C */ rbrew_write32(cpu->mem, _t38, cpu->r[10]);
|
|
L_028AFC20: ; // 0x28afc20
|
|
/* 028AFC20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFC24 */ Gambit_fn_028AF8F8(cpu);
|
|
/* 028AFC28 */ _t39 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFC28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AFC2C */ cpu->r[5] = cpu->r[29];
|
|
/* 028AFC30 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFC34 */ Gambit_fn_028B12D8(cpu);
|
|
/* 028AFC38 */ _t40 = cpu->r[30] + 0x00000024u;
|
|
/* 028AFC38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028AFC3C */ _t41 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028AFC3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028AFC40 */ cpu->ctr = cpu->r[0];
|
|
/* 028AFC44 */ cpu->f[31] = cpu->f[1];
|
|
/* 028AFC48 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFC4C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFC50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFC54 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFC54 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028AFC54 */ if (_t43) goto L_028AFC64; else goto L_028AFC58;
|
|
L_028AFC58: ; // 0x28afc58
|
|
/* 028AFC58 */ cpu->f[1] = cpu->f[31];
|
|
/* 028AFC5C */ _t44 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFC5C */ cpu->r[3] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028AFC60 */ Gambit_fn_02A3A038(cpu);
|
|
L_028AFC64: ; // 0x28afc64
|
|
/* 028AFC64 */ _t45 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFC64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028AFC68 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFC6C */ _t46 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFC6C */ cpu->r[4] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028AFC70 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Cu, 0x0000001Au);
|
|
/* 028AFC74 */ cpu->r[31] = rbrew_rlwinm(cpu->r[0], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AFC78 */ _t47 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFC78 */ rbrew_write32(cpu->mem, _t47, cpu->r[11]);
|
|
/* 028AFC7C */ Gambit_fn_028B0BCC(cpu);
|
|
/* 028AFC80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AFC84 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AFC88 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFC88 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028AFC88 */ if (_t49) goto L_028AFD04; else goto L_028AFC8C;
|
|
L_028AFC8C: ; // 0x28afc8c
|
|
/* 028AFC8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028AFC90 */ _t50 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AFC90 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028AFC90 */ if (_t51) goto L_028AFC94; else goto L_028AFD04;
|
|
L_028AFC94: ; // 0x28afc94
|
|
/* 028AFC94 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028AFC98 */ _t52 = cpu->r[31] + 0xFFFF9A60u;
|
|
/* 028AFC98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028AFC9C */ _t53 = cpu->r[31] + 0x00000000u;
|
|
/* 028AFC9C */ cpu->r[10] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028AFCA0 */ _t54 = cpu->r[10] + 0x00000014u;
|
|
/* 028AFCA0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028AFCA4 */ cpu->ctr = cpu->r[11];
|
|
/* 028AFCA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFCAC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFCB0 */ _t55 = cpu->r[30] + 0x00000024u;
|
|
/* 028AFCB0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028AFCB4 */ _t56 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AFCB4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028AFCB8 */ cpu->ctr = cpu->r[10];
|
|
/* 028AFCBC */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFCC0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFCC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFCC8 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFCC8 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028AFCC8 */ if (_t58) goto L_028AFCF0; else goto L_028AFCCC;
|
|
L_028AFCCC: ; // 0x28afccc
|
|
/* 028AFCCC */ _t59 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFCCC */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028AFCD0 */ _t60 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028AFCD0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028AFCD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AFCD8 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFCD8 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028AFCD8 */ if (_t62) goto L_028AFCF0; else goto L_028AFCDC;
|
|
L_028AFCDC: ; // 0x28afcdc
|
|
/* 028AFCDC */ _t63 = cpu->r[3] + 0x00000004u;
|
|
/* 028AFCDC */ cpu->r[0] = rbrew_read8(cpu->mem, _t63);
|
|
/* 028AFCE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFCE4 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFCE4 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028AFCE4 */ if (_t65) goto L_028AFCF0; else goto L_028AFCE8;
|
|
L_028AFCE8: ; // 0x28afce8
|
|
/* 028AFCE8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028AFCEC */ Gambit_fn_02A3AC34(cpu);
|
|
L_028AFCF0: ; // 0x28afcf0
|
|
/* 028AFCF0 */ _t66 = cpu->r[31] + 0x00000000u;
|
|
/* 028AFCF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028AFCF4 */ _t67 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AFCF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028AFCF8 */ cpu->ctr = cpu->r[0];
|
|
/* 028AFCFC */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFD00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AFD04: ; // 0x28afd04
|
|
/* 028AFD04 */ _t68 = cpu->r[1] + 0x00000038u;
|
|
/* 028AFD04 */ cpu->r[28] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028AFD08 */ _t69 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028AFD08 */ cpu->r[29] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028AFD0C */ _t70 = cpu->r[1] + 0x00000050u;
|
|
/* 028AFD0C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 028AFD10 */ _t71 = cpu->r[1] + 0x00000040u;
|
|
/* 028AFD10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028AFD14 */ _t72 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFD14 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t72);
|
|
/* 028AFD18 */ _t73 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFD18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028AFD1C */ _t74 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AFD1C */ _t75 = _t74 & 0x00000001u;
|
|
/* 028AFD1C */ if (_t75) goto L_028AFD20; // else: addr-0 trap, fall-through
|
|
L_028AFD20: ; // 0x28afd20
|
|
/* 028AFD20 */ _t76 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AFD20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028AFD24 */ cpu->lr = cpu->r[0];
|
|
/* 028AFD28 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028AFD2C */ return;
|
|
}
|
|
|
|
// fn_028AFB38 @ 0x28afb38
|
|
void Gambit_fn_028AFB38(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;
|
|
|
|
L_028AFB38: ; // 0x28afb38
|
|
/* 028AFB38 */ _t0 = cpu->r[1] + 0xFFFFFFA8u;
|
|
/* 028AFB38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AFB38 */ cpu->r[1] = _t0;
|
|
/* 028AFB3C */ _t1 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFB3C */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 028AFB40 */ /* nop */
|
|
/* 028AFB44 */ _t2 = cpu->r[1] + 0x00000038u;
|
|
/* 028AFB44 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028AFB48 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028AFB48 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028AFB4C */ _t4 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFB4C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028AFB50 */ _t5 = cpu->r[1] + 0x00000040u;
|
|
/* 028AFB50 */ rbrew_write32(cpu->mem, _t5, cpu->r[30]);
|
|
/* 028AFB54 */ _t6 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AFB54 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028AFB58 */ cpu->r[30] = cpu->r[3];
|
|
/* 028AFB5C */ _t7 = cpu->r[1] + 0x00000050u;
|
|
/* 028AFB5C */ rbrew_write_f32(cpu->mem, _t7, cpu->f[31]);
|
|
/* 028AFB60 */ _t8 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFB60 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028AFB64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AFB68 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFB68 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028AFB68 */ if (_t10) goto L_028AFD04; else goto L_028AFB6C;
|
|
L_028AFB6C: ; // 0x28afb6c
|
|
/* 028AFB6C */ _t11 = cpu->r[12] + 0x00000014u;
|
|
/* 028AFB6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028AFB70 */ _t12 = cpu->r[30] + 0x00000038u;
|
|
/* 028AFB70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AFB74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028AFB78 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFB78 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028AFB78 */ if (_t14) goto L_028AFB7C; else goto L_028AFD04;
|
|
L_028AFB7C: ; // 0x28afb7c
|
|
/* 028AFB7C */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFB80 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AFB84 */ _t15 = cpu->r[30] + 0x00000024u;
|
|
/* 028AFB84 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028AFB88 */ _t16 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AFB88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AFB8C */ cpu->ctr = cpu->r[0];
|
|
/* 028AFB90 */ _t17 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028AFB90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028AFB94 */ cpu->r[28] = cpu->r[3];
|
|
/* 028AFB98 */ _t18 = cpu->r[29] + 0x00000064u;
|
|
/* 028AFB98 */ cpu->r[31] = rbrew_read16(cpu->mem, _t18);
|
|
/* 028AFB9C */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFBA0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFBA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFBA8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFBA8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028AFBA8 */ if (_t20) goto L_028AFBB4; else goto L_028AFBAC;
|
|
L_028AFBAC: ; // 0x28afbac
|
|
/* 028AFBAC */ _t21 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFBAC */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028AFBB0 */ _t22 = cpu->r[12] + 0x00000030u;
|
|
/* 028AFBB0 */ rbrew_write32(cpu->mem, _t22, cpu->r[31]);
|
|
L_028AFBB4: ; // 0x28afbb4
|
|
/* 028AFBB4 */ _t23 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFBB4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AFBB8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AFBB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFBBC */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFBBC */ _t25 = _t24 & 0x00000001u;
|
|
/* 028AFBBC */ if (_t25) goto L_028AFC20; else goto L_028AFBC0;
|
|
L_028AFBC0: ; // 0x28afbc0
|
|
/* 028AFBC0 */ _t26 = cpu->r[30] + 0x00000020u;
|
|
/* 028AFBC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028AFBC4 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028AFBC8 */ _t27 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028AFBC8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028AFBCC */ cpu->r[5] = cpu->r[29];
|
|
/* 028AFBD0 */ _t28 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFBD0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028AFBD4 */ Gambit_fn_028AF17C(cpu);
|
|
/* 028AFBD8 */ _t29 = cpu->r[30] + 0x00000024u;
|
|
/* 028AFBD8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028AFBDC */ _t30 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028AFBDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028AFBE0 */ cpu->ctr = cpu->r[0];
|
|
/* 028AFBE4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFBE8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFBEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFBF0 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFBF0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028AFBF0 */ if (_t32) goto L_028AFC00; else goto L_028AFBF4;
|
|
L_028AFBF4: ; // 0x28afbf4
|
|
/* 028AFBF4 */ _t33 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFBF4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028AFBF8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028AFBFC */ Gambit_fn_02A39D84(cpu);
|
|
L_028AFC00: ; // 0x28afc00
|
|
/* 028AFC00 */ _t34 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFC00 */ cpu->r[4] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028AFC04 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFC08 */ Gambit_fn_028B0C6C(cpu);
|
|
/* 028AFC0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFC10 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFC10 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028AFC10 */ if (_t36) goto L_028AFC14; else goto L_028AFC20;
|
|
L_028AFC14: ; // 0x28afc14
|
|
/* 028AFC14 */ _t37 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFC14 */ cpu->r[10] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028AFC18 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 028AFC1C */ _t38 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFC1C */ rbrew_write32(cpu->mem, _t38, cpu->r[10]);
|
|
L_028AFC20: ; // 0x28afc20
|
|
/* 028AFC20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFC24 */ Gambit_fn_028AF8F8(cpu);
|
|
/* 028AFC28 */ _t39 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFC28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AFC2C */ cpu->r[5] = cpu->r[29];
|
|
/* 028AFC30 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFC34 */ Gambit_fn_028B12D8(cpu);
|
|
/* 028AFC38 */ _t40 = cpu->r[30] + 0x00000024u;
|
|
/* 028AFC38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028AFC3C */ _t41 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028AFC3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028AFC40 */ cpu->ctr = cpu->r[0];
|
|
/* 028AFC44 */ cpu->f[31] = cpu->f[1];
|
|
/* 028AFC48 */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFC4C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFC50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFC54 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFC54 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028AFC54 */ if (_t43) goto L_028AFC64; else goto L_028AFC58;
|
|
L_028AFC58: ; // 0x28afc58
|
|
/* 028AFC58 */ cpu->f[1] = cpu->f[31];
|
|
/* 028AFC5C */ _t44 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFC5C */ cpu->r[3] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028AFC60 */ Gambit_fn_02A3A038(cpu);
|
|
L_028AFC64: ; // 0x28afc64
|
|
/* 028AFC64 */ _t45 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFC64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028AFC68 */ cpu->r[3] = cpu->r[28];
|
|
/* 028AFC6C */ _t46 = cpu->r[30] + 0x00000010u;
|
|
/* 028AFC6C */ cpu->r[4] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028AFC70 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Cu, 0x0000001Au);
|
|
/* 028AFC74 */ cpu->r[31] = rbrew_rlwinm(cpu->r[0], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028AFC78 */ _t47 = cpu->r[30] + 0x00000028u;
|
|
/* 028AFC78 */ rbrew_write32(cpu->mem, _t47, cpu->r[11]);
|
|
/* 028AFC7C */ Gambit_fn_028B0BCC(cpu);
|
|
/* 028AFC80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028AFC84 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AFC88 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFC88 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028AFC88 */ if (_t49) goto L_028AFD04; else goto L_028AFC8C;
|
|
L_028AFC8C: ; // 0x28afc8c
|
|
/* 028AFC8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028AFC90 */ _t50 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AFC90 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028AFC90 */ if (_t51) goto L_028AFC94; else goto L_028AFD04;
|
|
L_028AFC94: ; // 0x28afc94
|
|
/* 028AFC94 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028AFC98 */ _t52 = cpu->r[31] + 0xFFFF9A60u;
|
|
/* 028AFC98 */ cpu->r[31] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028AFC9C */ _t53 = cpu->r[31] + 0x00000000u;
|
|
/* 028AFC9C */ cpu->r[10] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028AFCA0 */ _t54 = cpu->r[10] + 0x00000014u;
|
|
/* 028AFCA0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028AFCA4 */ cpu->ctr = cpu->r[11];
|
|
/* 028AFCA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFCAC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFCB0 */ _t55 = cpu->r[30] + 0x00000024u;
|
|
/* 028AFCB0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028AFCB4 */ _t56 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AFCB4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028AFCB8 */ cpu->ctr = cpu->r[10];
|
|
/* 028AFCBC */ cpu->r[3] = cpu->r[30];
|
|
/* 028AFCC0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFCC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFCC8 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFCC8 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028AFCC8 */ if (_t58) goto L_028AFCF0; else goto L_028AFCCC;
|
|
L_028AFCCC: ; // 0x28afccc
|
|
/* 028AFCCC */ _t59 = cpu->r[30] + 0x00000034u;
|
|
/* 028AFCCC */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028AFCD0 */ _t60 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028AFCD0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028AFCD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028AFCD8 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFCD8 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028AFCD8 */ if (_t62) goto L_028AFCF0; else goto L_028AFCDC;
|
|
L_028AFCDC: ; // 0x28afcdc
|
|
/* 028AFCDC */ _t63 = cpu->r[3] + 0x00000004u;
|
|
/* 028AFCDC */ cpu->r[0] = rbrew_read8(cpu->mem, _t63);
|
|
/* 028AFCE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFCE4 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFCE4 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028AFCE4 */ if (_t65) goto L_028AFCF0; else goto L_028AFCE8;
|
|
L_028AFCE8: ; // 0x28afce8
|
|
/* 028AFCE8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028AFCEC */ Gambit_fn_02A3AC34(cpu);
|
|
L_028AFCF0: ; // 0x28afcf0
|
|
/* 028AFCF0 */ _t66 = cpu->r[31] + 0x00000000u;
|
|
/* 028AFCF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028AFCF4 */ _t67 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028AFCF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028AFCF8 */ cpu->ctr = cpu->r[0];
|
|
/* 028AFCFC */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFD00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AFD04: ; // 0x28afd04
|
|
/* 028AFD04 */ _t68 = cpu->r[1] + 0x00000038u;
|
|
/* 028AFD04 */ cpu->r[28] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028AFD08 */ _t69 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028AFD08 */ cpu->r[29] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028AFD0C */ _t70 = cpu->r[1] + 0x00000050u;
|
|
/* 028AFD0C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 028AFD10 */ _t71 = cpu->r[1] + 0x00000040u;
|
|
/* 028AFD10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028AFD14 */ _t72 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFD14 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t72);
|
|
/* 028AFD18 */ _t73 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFD18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028AFD1C */ _t74 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028AFD1C */ _t75 = _t74 & 0x00000001u;
|
|
/* 028AFD1C */ if (_t75) goto L_028AFD20; // else: addr-0 trap, fall-through
|
|
L_028AFD20: ; // 0x28afd20
|
|
/* 028AFD20 */ _t76 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028AFD20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028AFD24 */ cpu->lr = cpu->r[0];
|
|
/* 028AFD28 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028AFD2C */ return;
|
|
}
|
|
|
|
// fn_028AFD30 @ 0x28afd30
|
|
void Gambit_fn_028AFD30(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_028AFD30: ; // 0x28afd30
|
|
/* 028AFD30 */ cpu->r[0] = cpu->lr;
|
|
/* 028AFD34 */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028AFD34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AFD34 */ cpu->r[1] = _t0;
|
|
/* 028AFD38 */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFD38 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028AFD3C */ _t2 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AFD3C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AFD40 */ _t3 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFD40 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028AFD44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AFD48 */ _t4 = cpu->r[1] + 0x00000054u;
|
|
/* 028AFD48 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AFD4C */ _t5 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFD4C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AFD50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028AFD54 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AFD54 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AFD54 */ if (_t7) goto L_028AFD58; else goto L_028AFFC4;
|
|
L_028AFD58: ; // 0x28afd58
|
|
/* 028AFD58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000005u);
|
|
/* 028AFD5C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFD5C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028AFD5C */ if (_t9) goto L_028AFFC4; else goto L_028AFD60;
|
|
L_028AFD60: ; // 0x28afd60
|
|
/* 028AFD60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000002u);
|
|
/* 028AFD64 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFD64 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AFD64 */ if (_t11) goto L_028AFD68; else goto L_028AFDC8;
|
|
L_028AFD68: ; // 0x28afd68
|
|
/* 028AFD68 */ _t12 = cpu->r[31] + 0x00000018u;
|
|
/* 028AFD68 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AFD6C */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028AFD6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AFD70 */ _t13 = cpu->r[31] + 0x00000018u;
|
|
/* 028AFD70 */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028AFD74 */ _t14 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AFD74 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028AFD74 */ if (_t15) goto L_028AFD78; else goto L_028AFD88;
|
|
L_028AFD78: ; // 0x28afd78
|
|
/* 028AFD78 */ _t16 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFD78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AFD7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000003u);
|
|
/* 028AFD80 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFD80 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AFD80 */ if (_t18) goto L_028AFD84; else goto L_028AFDD0;
|
|
L_028AFD84: ; // 0x28afd84
|
|
/* 028AFD84 */ goto L_028AFDD8;
|
|
L_028AFD88: ; // 0x28afd88
|
|
/* 028AFD88 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFD8C */ Gambit_fn_028AEC8C(cpu);
|
|
/* 028AFD90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFD94 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFD94 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028AFD94 */ if (_t20) goto L_028AFEB8; else goto L_028AFD98;
|
|
L_028AFD98: ; // 0x28afd98
|
|
/* 028AFD98 */ cpu->r[11] = 0x00000003u;
|
|
/* 028AFD9C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFDA0 */ _t21 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFDA0 */ rbrew_write32(cpu->mem, _t21, cpu->r[11]);
|
|
/* 028AFDA4 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AFDA8 */ _t22 = cpu->r[31] + 0x00000010u;
|
|
/* 028AFDA8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AFDAC */ _t23 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AFDAC */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AFDB0 */ Gambit_fn_028B0AE8(cpu);
|
|
/* 028AFDB4 */ _t24 = cpu->r[30] + 0x00000067u;
|
|
/* 028AFDB4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t24);
|
|
/* 028AFDB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFDBC */ cpu->r[29] = cpu->r[3];
|
|
/* 028AFDC0 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFDC0 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028AFDC0 */ if (_t26) goto L_028AFE84; else goto L_028AFDC4;
|
|
L_028AFDC4: ; // 0x28afdc4
|
|
/* 028AFDC4 */ goto L_028AFDFC;
|
|
L_028AFDC8: ; // 0x28afdc8
|
|
/* 028AFDC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000003u);
|
|
/* 028AFDCC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFDCC */ _t28 = _t27 & 0x00000001u;
|
|
/* 028AFDCC */ if (_t28) goto L_028AFDD8; else goto L_028AFDD0;
|
|
L_028AFDD0: ; // 0x28afdd0
|
|
/* 028AFDD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000004u);
|
|
/* 028AFDD4 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFDD4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028AFDD4 */ if (_t30) goto L_028AFDD8; else goto L_028AFF2C;
|
|
L_028AFDD8: ; // 0x28afdd8
|
|
/* 028AFDD8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFDDC */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AFDE0 */ _t31 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AFDE0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AFDE4 */ _t32 = cpu->r[31] + 0x00000010u;
|
|
/* 028AFDE4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AFDE8 */ Gambit_fn_028B0AE8(cpu);
|
|
/* 028AFDEC */ _t33 = cpu->r[30] + 0x00000067u;
|
|
/* 028AFDEC */ cpu->r[0] = rbrew_read8(cpu->mem, _t33);
|
|
/* 028AFDF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFDF4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AFDF8 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFDF8 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028AFDF8 */ if (_t35) goto L_028AFE84; else goto L_028AFDFC;
|
|
L_028AFDFC: ; // 0x28afdfc
|
|
/* 028AFDFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000001u);
|
|
/* 028AFE00 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE00 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028AFE00 */ if (_t37) goto L_028AFE04; else goto L_028AFE20;
|
|
L_028AFE04: ; // 0x28afe04
|
|
/* 028AFE04 */ _t38 = cpu->r[31] + 0x00000024u;
|
|
/* 028AFE04 */ cpu->r[12] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028AFE08 */ _t39 = cpu->r[12] + 0x0000002Cu;
|
|
/* 028AFE08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AFE0C */ cpu->ctr = cpu->r[0];
|
|
/* 028AFE10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFE14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFE18 */ cpu->r[0] = 0x00000005u;
|
|
/* 028AFE1C */ _t40 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFE1C */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
L_028AFE20: ; // 0x28afe20
|
|
/* 028AFE20 */ _t41 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFE20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028AFE24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000000u);
|
|
/* 028AFE28 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE28 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028AFE28 */ if (_t43) goto L_028AFE2C; else goto L_028AFEF4;
|
|
L_028AFE2C: ; // 0x28afe2c
|
|
/* 028AFE2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000002u);
|
|
/* 028AFE30 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE30 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028AFE30 */ if (_t45) goto L_028AFE34; else goto L_028AFE68;
|
|
L_028AFE34: ; // 0x28afe34
|
|
/* 028AFE34 */ _t46 = cpu->r[31] + 0x00000024u;
|
|
/* 028AFE34 */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028AFE38 */ _t47 = cpu->r[12] + 0x0000002Cu;
|
|
/* 028AFE38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028AFE3C */ cpu->ctr = cpu->r[0];
|
|
/* 028AFE40 */ _t48 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFE40 */ cpu->r[30] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028AFE44 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFE48 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFE4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000004u);
|
|
/* 028AFE50 */ cpu->r[0] = 0x00000003u;
|
|
/* 028AFE54 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE54 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028AFE54 */ if (_t50) goto L_028AFE58; else goto L_028AFE5C;
|
|
L_028AFE58: ; // 0x28afe58
|
|
/* 028AFE58 */ cpu->r[0] = 0x00000005u;
|
|
L_028AFE5C: ; // 0x28afe5c
|
|
/* 028AFE5C */ _t51 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFE5C */ rbrew_write32(cpu->mem, _t51, cpu->r[0]);
|
|
/* 028AFE60 */ cpu->r[0] = 0x00000001u;
|
|
/* 028AFE64 */ _t52 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFE64 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
L_028AFE68: ; // 0x28afe68
|
|
/* 028AFE68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000003u);
|
|
/* 028AFE6C */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE6C */ _t54 = _t53 & 0x00000001u;
|
|
/* 028AFE6C */ if (_t54) goto L_028AFE70; else goto L_028AFEF4;
|
|
L_028AFE70: ; // 0x28afe70
|
|
/* 028AFE70 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFE74 */ Gambit_fn_028AF154(cpu);
|
|
/* 028AFE78 */ cpu->r[0] = 0x00000002u;
|
|
/* 028AFE7C */ _t55 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFE7C */ rbrew_write32(cpu->mem, _t55, cpu->r[0]);
|
|
/* 028AFE80 */ goto L_028AFEF4;
|
|
L_028AFE84: ; // 0x28afe84
|
|
/* 028AFE84 */ _t56 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFE84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028AFE88 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028AFE8C */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE8C */ _t58 = _t57 & 0x00000001u;
|
|
/* 028AFE8C */ if (_t58) goto L_028AFEA8; else goto L_028AFE90;
|
|
L_028AFE90: ; // 0x28afe90
|
|
/* 028AFE90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028AFE94 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE94 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028AFE94 */ if (_t60) goto L_028AFEE4; else goto L_028AFE98;
|
|
L_028AFE98: ; // 0x28afe98
|
|
/* 028AFE98 */ _t61 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFE98 */ cpu->r[12] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028AFE9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000004u);
|
|
/* 028AFEA0 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFEA0 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028AFEA0 */ if (_t63) goto L_028AFEA4; else goto L_028AFF00;
|
|
L_028AFEA4: ; // 0x28afea4
|
|
/* 028AFEA4 */ goto L_028AFF08;
|
|
L_028AFEA8: ; // 0x28afea8
|
|
/* 028AFEA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFEAC */ Gambit_fn_028AEC8C(cpu);
|
|
/* 028AFEB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFEB4 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFEB4 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028AFEB4 */ if (_t65) goto L_028AFEB8; else goto L_028AFED8;
|
|
L_028AFEB8: ; // 0x28afeb8
|
|
/* 028AFEB8 */ _t66 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFEB8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028AFEBC */ _t67 = cpu->r[1] + 0x00000054u;
|
|
/* 028AFEBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028AFEC0 */ _t68 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFEC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028AFEC4 */ cpu->lr = cpu->r[0];
|
|
/* 028AFEC8 */ _t69 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AFEC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028AFECC */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028AFED0 */ cpu->r[3] = 0x00000002u;
|
|
/* 028AFED4 */ return;
|
|
L_028AFED8: ; // 0x28afed8
|
|
/* 028AFED8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028AFEDC */ _t70 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFEDC */ rbrew_write32(cpu->mem, _t70, cpu->r[0]);
|
|
/* 028AFEE0 */ goto L_028AFEF4;
|
|
L_028AFEE4: ; // 0x28afee4
|
|
/* 028AFEE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFEE8 */ Gambit_fn_028AF168(cpu);
|
|
/* 028AFEEC */ cpu->r[0] = 0x00000000u;
|
|
/* 028AFEF0 */ _t71 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFEF0 */ rbrew_write32(cpu->mem, _t71, cpu->r[0]);
|
|
L_028AFEF4: ; // 0x28afef4
|
|
/* 028AFEF4 */ _t72 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFEF4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028AFEF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000004u);
|
|
/* 028AFEFC */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFEFC */ _t74 = _t73 & 0x00000001u;
|
|
/* 028AFEFC */ if (_t74) goto L_028AFF08; else goto L_028AFF00;
|
|
L_028AFF00: ; // 0x28aff00
|
|
/* 028AFF00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFF04 */ _t75 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFF04 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028AFF04 */ if (_t76) goto L_028AFF08; else goto L_028AFF2C;
|
|
L_028AFF08: ; // 0x28aff08
|
|
/* 028AFF08 */ _t77 = cpu->r[31] + 0x00000024u;
|
|
/* 028AFF08 */ cpu->r[11] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028AFF0C */ _t78 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028AFF0C */ cpu->r[12] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028AFF10 */ cpu->ctr = cpu->r[12];
|
|
/* 028AFF14 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFF18 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFF1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFF20 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFF20 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028AFF20 */ if (_t80) goto L_028AFF24; else goto L_028AFF2C;
|
|
L_028AFF24: ; // 0x28aff24
|
|
/* 028AFF24 */ cpu->r[0] = 0x00000005u;
|
|
/* 028AFF28 */ _t81 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFF28 */ rbrew_write32(cpu->mem, _t81, cpu->r[0]);
|
|
L_028AFF2C: ; // 0x28aff2c
|
|
/* 028AFF2C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFF30 */ Gambit_fn_028AFB34(cpu);
|
|
/* 028AFF34 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028AFF38 */ _t82 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028AFF38 */ cpu->r[12] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028AFF3C */ _t83 = cpu->r[12] + 0x00000068u;
|
|
/* 028AFF3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028AFF40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFF44 */ _t84 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AFF44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028AFF48 */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFF48 */ _t86 = _t85 & 0x00000001u;
|
|
/* 028AFF48 */ if (_t86) goto L_028AFF78; else goto L_028AFF4C;
|
|
L_028AFF4C: ; // 0x28aff4c
|
|
/* 028AFF4C */ _t87 = cpu->r[31] + 0x00000010u;
|
|
/* 028AFF4C */ cpu->r[11] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028AFF50 */ _t88 = cpu->r[1] + 0x00000014u;
|
|
/* 028AFF50 */ rbrew_write32(cpu->mem, _t88, cpu->r[30]);
|
|
/* 028AFF54 */ cpu->r[12] = cpu->r[31] + 0x00000034u;
|
|
/* 028AFF58 */ _t89 = cpu->r[1] + 0x00000010u;
|
|
/* 028AFF58 */ rbrew_write32(cpu->mem, _t89, cpu->r[11]);
|
|
/* 028AFF5C */ _t90 = cpu->r[1] + 0x00000018u;
|
|
/* 028AFF5C */ rbrew_write32(cpu->mem, _t90, cpu->r[12]);
|
|
/* 028AFF60 */ _t91 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AFF60 */ rbrew_write32(cpu->mem, _t91, cpu->r[31]);
|
|
/* 028AFF64 */ _t92 = cpu->r[3] + 0x00000000u;
|
|
/* 028AFF64 */ cpu->r[11] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028AFF68 */ _t93 = cpu->r[11] + 0x00000044u;
|
|
/* 028AFF68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028AFF6C */ cpu->ctr = cpu->r[12];
|
|
/* 028AFF70 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028AFF74 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AFF78: ; // 0x28aff78
|
|
/* 028AFF78 */ _t94 = cpu->r[30] + 0x00000060u;
|
|
/* 028AFF78 */ cpu->r[3] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028AFF7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFF80 */ _t95 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFF80 */ _t96 = _t95 & 0x00000001u;
|
|
/* 028AFF80 */ if (_t96) goto L_028AFFB0; else goto L_028AFF84;
|
|
L_028AFF84: ; // 0x28aff84
|
|
/* 028AFF84 */ _t97 = cpu->r[31] + 0x00000010u;
|
|
/* 028AFF84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028AFF88 */ _t98 = cpu->r[1] + 0x00000030u;
|
|
/* 028AFF88 */ rbrew_write32(cpu->mem, _t98, cpu->r[30]);
|
|
/* 028AFF8C */ _t99 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AFF8C */ rbrew_write32(cpu->mem, _t99, cpu->r[0]);
|
|
/* 028AFF90 */ cpu->r[0] = cpu->r[31] + 0x00000034u;
|
|
/* 028AFF94 */ _t100 = cpu->r[1] + 0x00000038u;
|
|
/* 028AFF94 */ rbrew_write32(cpu->mem, _t100, cpu->r[31]);
|
|
/* 028AFF98 */ _t101 = cpu->r[1] + 0x00000034u;
|
|
/* 028AFF98 */ rbrew_write32(cpu->mem, _t101, cpu->r[0]);
|
|
/* 028AFF9C */ _t102 = cpu->r[3] + 0x00000000u;
|
|
/* 028AFF9C */ cpu->r[11] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028AFFA0 */ _t103 = cpu->r[11] + 0x00000044u;
|
|
/* 028AFFA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028AFFA4 */ cpu->ctr = cpu->r[0];
|
|
/* 028AFFA8 */ cpu->r[4] = cpu->r[1] + 0x00000024u;
|
|
/* 028AFFAC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AFFB0: ; // 0x28affb0
|
|
/* 028AFFB0 */ _t104 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFFB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028AFFB4 */ cpu->r[12] = 0x00000000u;
|
|
/* 028AFFB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000005u);
|
|
/* 028AFFBC */ _t105 = cpu->r[31] + 0x00000030u;
|
|
/* 028AFFBC */ rbrew_write8(cpu->mem, _t105, (uint8_t)cpu->r[12]);
|
|
/* 028AFFC0 */ _t106 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFFC0 */ _t107 = _t106 & 0x00000001u;
|
|
/* 028AFFC0 */ if (_t107) goto L_028AFFC4; else goto L_028AFFE4;
|
|
L_028AFFC4: ; // 0x28affc4
|
|
/* 028AFFC4 */ _t108 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFFC4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028AFFC8 */ _t109 = cpu->r[1] + 0x00000054u;
|
|
/* 028AFFC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028AFFCC */ _t110 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFFCC */ cpu->r[30] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028AFFD0 */ cpu->lr = cpu->r[0];
|
|
/* 028AFFD4 */ _t111 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AFFD4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028AFFD8 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028AFFDC */ cpu->r[3] = 0x00000001u;
|
|
/* 028AFFE0 */ return;
|
|
L_028AFFE4: ; // 0x28affe4
|
|
/* 028AFFE4 */ _t112 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFFE4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028AFFE8 */ _t113 = cpu->r[1] + 0x00000054u;
|
|
/* 028AFFE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t113);
|
|
/* 028AFFEC */ _t114 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFFEC */ cpu->r[30] = rbrew_read32(cpu->mem, _t114);
|
|
/* 028AFFF0 */ cpu->lr = cpu->r[0];
|
|
/* 028AFFF4 */ _t115 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AFFF4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t115);
|
|
/* 028AFFF8 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028AFFFC */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0000 */ return;
|
|
}
|
|
|
|
// fn_028AFD34 @ 0x28afd34
|
|
void Gambit_fn_028AFD34(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_028AFD34: ; // 0x28afd34
|
|
/* 028AFD34 */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028AFD34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AFD34 */ cpu->r[1] = _t0;
|
|
/* 028AFD38 */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFD38 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028AFD3C */ _t2 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AFD3C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028AFD40 */ _t3 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFD40 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028AFD44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028AFD48 */ _t4 = cpu->r[1] + 0x00000054u;
|
|
/* 028AFD48 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AFD4C */ _t5 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFD4C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028AFD50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028AFD54 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AFD54 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028AFD54 */ if (_t7) goto L_028AFD58; else goto L_028AFFC4;
|
|
L_028AFD58: ; // 0x28afd58
|
|
/* 028AFD58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000005u);
|
|
/* 028AFD5C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFD5C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028AFD5C */ if (_t9) goto L_028AFFC4; else goto L_028AFD60;
|
|
L_028AFD60: ; // 0x28afd60
|
|
/* 028AFD60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000002u);
|
|
/* 028AFD64 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFD64 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028AFD64 */ if (_t11) goto L_028AFD68; else goto L_028AFDC8;
|
|
L_028AFD68: ; // 0x28afd68
|
|
/* 028AFD68 */ _t12 = cpu->r[31] + 0x00000018u;
|
|
/* 028AFD68 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028AFD6C */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028AFD6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028AFD70 */ _t13 = cpu->r[31] + 0x00000018u;
|
|
/* 028AFD70 */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028AFD74 */ _t14 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028AFD74 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028AFD74 */ if (_t15) goto L_028AFD78; else goto L_028AFD88;
|
|
L_028AFD78: ; // 0x28afd78
|
|
/* 028AFD78 */ _t16 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFD78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028AFD7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000003u);
|
|
/* 028AFD80 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFD80 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028AFD80 */ if (_t18) goto L_028AFD84; else goto L_028AFDD0;
|
|
L_028AFD84: ; // 0x28afd84
|
|
/* 028AFD84 */ goto L_028AFDD8;
|
|
L_028AFD88: ; // 0x28afd88
|
|
/* 028AFD88 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFD8C */ Gambit_fn_028AEC8C(cpu);
|
|
/* 028AFD90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFD94 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFD94 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028AFD94 */ if (_t20) goto L_028AFEB8; else goto L_028AFD98;
|
|
L_028AFD98: ; // 0x28afd98
|
|
/* 028AFD98 */ cpu->r[11] = 0x00000003u;
|
|
/* 028AFD9C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFDA0 */ _t21 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFDA0 */ rbrew_write32(cpu->mem, _t21, cpu->r[11]);
|
|
/* 028AFDA4 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AFDA8 */ _t22 = cpu->r[31] + 0x00000010u;
|
|
/* 028AFDA8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028AFDAC */ _t23 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AFDAC */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028AFDB0 */ Gambit_fn_028B0AE8(cpu);
|
|
/* 028AFDB4 */ _t24 = cpu->r[30] + 0x00000067u;
|
|
/* 028AFDB4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t24);
|
|
/* 028AFDB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFDBC */ cpu->r[29] = cpu->r[3];
|
|
/* 028AFDC0 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFDC0 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028AFDC0 */ if (_t26) goto L_028AFE84; else goto L_028AFDC4;
|
|
L_028AFDC4: ; // 0x28afdc4
|
|
/* 028AFDC4 */ goto L_028AFDFC;
|
|
L_028AFDC8: ; // 0x28afdc8
|
|
/* 028AFDC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000003u);
|
|
/* 028AFDCC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFDCC */ _t28 = _t27 & 0x00000001u;
|
|
/* 028AFDCC */ if (_t28) goto L_028AFDD8; else goto L_028AFDD0;
|
|
L_028AFDD0: ; // 0x28afdd0
|
|
/* 028AFDD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000004u);
|
|
/* 028AFDD4 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFDD4 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028AFDD4 */ if (_t30) goto L_028AFDD8; else goto L_028AFF2C;
|
|
L_028AFDD8: ; // 0x28afdd8
|
|
/* 028AFDD8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFDDC */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028AFDE0 */ _t31 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AFDE0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028AFDE4 */ _t32 = cpu->r[31] + 0x00000010u;
|
|
/* 028AFDE4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028AFDE8 */ Gambit_fn_028B0AE8(cpu);
|
|
/* 028AFDEC */ _t33 = cpu->r[30] + 0x00000067u;
|
|
/* 028AFDEC */ cpu->r[0] = rbrew_read8(cpu->mem, _t33);
|
|
/* 028AFDF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFDF4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028AFDF8 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFDF8 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028AFDF8 */ if (_t35) goto L_028AFE84; else goto L_028AFDFC;
|
|
L_028AFDFC: ; // 0x28afdfc
|
|
/* 028AFDFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000001u);
|
|
/* 028AFE00 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE00 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028AFE00 */ if (_t37) goto L_028AFE04; else goto L_028AFE20;
|
|
L_028AFE04: ; // 0x28afe04
|
|
/* 028AFE04 */ _t38 = cpu->r[31] + 0x00000024u;
|
|
/* 028AFE04 */ cpu->r[12] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028AFE08 */ _t39 = cpu->r[12] + 0x0000002Cu;
|
|
/* 028AFE08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028AFE0C */ cpu->ctr = cpu->r[0];
|
|
/* 028AFE10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFE14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFE18 */ cpu->r[0] = 0x00000005u;
|
|
/* 028AFE1C */ _t40 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFE1C */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
L_028AFE20: ; // 0x28afe20
|
|
/* 028AFE20 */ _t41 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFE20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028AFE24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000000u);
|
|
/* 028AFE28 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE28 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028AFE28 */ if (_t43) goto L_028AFE2C; else goto L_028AFEF4;
|
|
L_028AFE2C: ; // 0x28afe2c
|
|
/* 028AFE2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000002u);
|
|
/* 028AFE30 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE30 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028AFE30 */ if (_t45) goto L_028AFE34; else goto L_028AFE68;
|
|
L_028AFE34: ; // 0x28afe34
|
|
/* 028AFE34 */ _t46 = cpu->r[31] + 0x00000024u;
|
|
/* 028AFE34 */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028AFE38 */ _t47 = cpu->r[12] + 0x0000002Cu;
|
|
/* 028AFE38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028AFE3C */ cpu->ctr = cpu->r[0];
|
|
/* 028AFE40 */ _t48 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFE40 */ cpu->r[30] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028AFE44 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFE48 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFE4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000004u);
|
|
/* 028AFE50 */ cpu->r[0] = 0x00000003u;
|
|
/* 028AFE54 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE54 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028AFE54 */ if (_t50) goto L_028AFE58; else goto L_028AFE5C;
|
|
L_028AFE58: ; // 0x28afe58
|
|
/* 028AFE58 */ cpu->r[0] = 0x00000005u;
|
|
L_028AFE5C: ; // 0x28afe5c
|
|
/* 028AFE5C */ _t51 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFE5C */ rbrew_write32(cpu->mem, _t51, cpu->r[0]);
|
|
/* 028AFE60 */ cpu->r[0] = 0x00000001u;
|
|
/* 028AFE64 */ _t52 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFE64 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
L_028AFE68: ; // 0x28afe68
|
|
/* 028AFE68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000003u);
|
|
/* 028AFE6C */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE6C */ _t54 = _t53 & 0x00000001u;
|
|
/* 028AFE6C */ if (_t54) goto L_028AFE70; else goto L_028AFEF4;
|
|
L_028AFE70: ; // 0x28afe70
|
|
/* 028AFE70 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFE74 */ Gambit_fn_028AF154(cpu);
|
|
/* 028AFE78 */ cpu->r[0] = 0x00000002u;
|
|
/* 028AFE7C */ _t55 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFE7C */ rbrew_write32(cpu->mem, _t55, cpu->r[0]);
|
|
/* 028AFE80 */ goto L_028AFEF4;
|
|
L_028AFE84: ; // 0x28afe84
|
|
/* 028AFE84 */ _t56 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFE84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028AFE88 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 028AFE8C */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE8C */ _t58 = _t57 & 0x00000001u;
|
|
/* 028AFE8C */ if (_t58) goto L_028AFEA8; else goto L_028AFE90;
|
|
L_028AFE90: ; // 0x28afe90
|
|
/* 028AFE90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000002u);
|
|
/* 028AFE94 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFE94 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028AFE94 */ if (_t60) goto L_028AFEE4; else goto L_028AFE98;
|
|
L_028AFE98: ; // 0x28afe98
|
|
/* 028AFE98 */ _t61 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFE98 */ cpu->r[12] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028AFE9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000004u);
|
|
/* 028AFEA0 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFEA0 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028AFEA0 */ if (_t63) goto L_028AFEA4; else goto L_028AFF00;
|
|
L_028AFEA4: ; // 0x28afea4
|
|
/* 028AFEA4 */ goto L_028AFF08;
|
|
L_028AFEA8: ; // 0x28afea8
|
|
/* 028AFEA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFEAC */ Gambit_fn_028AEC8C(cpu);
|
|
/* 028AFEB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFEB4 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFEB4 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028AFEB4 */ if (_t65) goto L_028AFEB8; else goto L_028AFED8;
|
|
L_028AFEB8: ; // 0x28afeb8
|
|
/* 028AFEB8 */ _t66 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFEB8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028AFEBC */ _t67 = cpu->r[1] + 0x00000054u;
|
|
/* 028AFEBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028AFEC0 */ _t68 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFEC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028AFEC4 */ cpu->lr = cpu->r[0];
|
|
/* 028AFEC8 */ _t69 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AFEC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028AFECC */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028AFED0 */ cpu->r[3] = 0x00000002u;
|
|
/* 028AFED4 */ return;
|
|
L_028AFED8: ; // 0x28afed8
|
|
/* 028AFED8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028AFEDC */ _t70 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFEDC */ rbrew_write32(cpu->mem, _t70, cpu->r[0]);
|
|
/* 028AFEE0 */ goto L_028AFEF4;
|
|
L_028AFEE4: ; // 0x28afee4
|
|
/* 028AFEE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFEE8 */ Gambit_fn_028AF168(cpu);
|
|
/* 028AFEEC */ cpu->r[0] = 0x00000000u;
|
|
/* 028AFEF0 */ _t71 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028AFEF0 */ rbrew_write32(cpu->mem, _t71, cpu->r[0]);
|
|
L_028AFEF4: ; // 0x28afef4
|
|
/* 028AFEF4 */ _t72 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFEF4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028AFEF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000004u);
|
|
/* 028AFEFC */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFEFC */ _t74 = _t73 & 0x00000001u;
|
|
/* 028AFEFC */ if (_t74) goto L_028AFF08; else goto L_028AFF00;
|
|
L_028AFF00: ; // 0x28aff00
|
|
/* 028AFF00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028AFF04 */ _t75 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFF04 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028AFF04 */ if (_t76) goto L_028AFF08; else goto L_028AFF2C;
|
|
L_028AFF08: ; // 0x28aff08
|
|
/* 028AFF08 */ _t77 = cpu->r[31] + 0x00000024u;
|
|
/* 028AFF08 */ cpu->r[11] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028AFF0C */ _t78 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028AFF0C */ cpu->r[12] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028AFF10 */ cpu->ctr = cpu->r[12];
|
|
/* 028AFF14 */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFF18 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028AFF1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFF20 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFF20 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028AFF20 */ if (_t80) goto L_028AFF24; else goto L_028AFF2C;
|
|
L_028AFF24: ; // 0x28aff24
|
|
/* 028AFF24 */ cpu->r[0] = 0x00000005u;
|
|
/* 028AFF28 */ _t81 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFF28 */ rbrew_write32(cpu->mem, _t81, cpu->r[0]);
|
|
L_028AFF2C: ; // 0x28aff2c
|
|
/* 028AFF2C */ cpu->r[3] = cpu->r[31];
|
|
/* 028AFF30 */ Gambit_fn_028AFB34(cpu);
|
|
/* 028AFF34 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028AFF38 */ _t82 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028AFF38 */ cpu->r[12] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028AFF3C */ _t83 = cpu->r[12] + 0x00000068u;
|
|
/* 028AFF3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028AFF40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFF44 */ _t84 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028AFF44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028AFF48 */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFF48 */ _t86 = _t85 & 0x00000001u;
|
|
/* 028AFF48 */ if (_t86) goto L_028AFF78; else goto L_028AFF4C;
|
|
L_028AFF4C: ; // 0x28aff4c
|
|
/* 028AFF4C */ _t87 = cpu->r[31] + 0x00000010u;
|
|
/* 028AFF4C */ cpu->r[11] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028AFF50 */ _t88 = cpu->r[1] + 0x00000014u;
|
|
/* 028AFF50 */ rbrew_write32(cpu->mem, _t88, cpu->r[30]);
|
|
/* 028AFF54 */ cpu->r[12] = cpu->r[31] + 0x00000034u;
|
|
/* 028AFF58 */ _t89 = cpu->r[1] + 0x00000010u;
|
|
/* 028AFF58 */ rbrew_write32(cpu->mem, _t89, cpu->r[11]);
|
|
/* 028AFF5C */ _t90 = cpu->r[1] + 0x00000018u;
|
|
/* 028AFF5C */ rbrew_write32(cpu->mem, _t90, cpu->r[12]);
|
|
/* 028AFF60 */ _t91 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AFF60 */ rbrew_write32(cpu->mem, _t91, cpu->r[31]);
|
|
/* 028AFF64 */ _t92 = cpu->r[3] + 0x00000000u;
|
|
/* 028AFF64 */ cpu->r[11] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028AFF68 */ _t93 = cpu->r[11] + 0x00000044u;
|
|
/* 028AFF68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028AFF6C */ cpu->ctr = cpu->r[12];
|
|
/* 028AFF70 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028AFF74 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AFF78: ; // 0x28aff78
|
|
/* 028AFF78 */ _t94 = cpu->r[30] + 0x00000060u;
|
|
/* 028AFF78 */ cpu->r[3] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028AFF7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028AFF80 */ _t95 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFF80 */ _t96 = _t95 & 0x00000001u;
|
|
/* 028AFF80 */ if (_t96) goto L_028AFFB0; else goto L_028AFF84;
|
|
L_028AFF84: ; // 0x28aff84
|
|
/* 028AFF84 */ _t97 = cpu->r[31] + 0x00000010u;
|
|
/* 028AFF84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028AFF88 */ _t98 = cpu->r[1] + 0x00000030u;
|
|
/* 028AFF88 */ rbrew_write32(cpu->mem, _t98, cpu->r[30]);
|
|
/* 028AFF8C */ _t99 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AFF8C */ rbrew_write32(cpu->mem, _t99, cpu->r[0]);
|
|
/* 028AFF90 */ cpu->r[0] = cpu->r[31] + 0x00000034u;
|
|
/* 028AFF94 */ _t100 = cpu->r[1] + 0x00000038u;
|
|
/* 028AFF94 */ rbrew_write32(cpu->mem, _t100, cpu->r[31]);
|
|
/* 028AFF98 */ _t101 = cpu->r[1] + 0x00000034u;
|
|
/* 028AFF98 */ rbrew_write32(cpu->mem, _t101, cpu->r[0]);
|
|
/* 028AFF9C */ _t102 = cpu->r[3] + 0x00000000u;
|
|
/* 028AFF9C */ cpu->r[11] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028AFFA0 */ _t103 = cpu->r[11] + 0x00000044u;
|
|
/* 028AFFA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028AFFA4 */ cpu->ctr = cpu->r[0];
|
|
/* 028AFFA8 */ cpu->r[4] = cpu->r[1] + 0x00000024u;
|
|
/* 028AFFAC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028AFFB0: ; // 0x28affb0
|
|
/* 028AFFB0 */ _t104 = cpu->r[31] + 0x00000014u;
|
|
/* 028AFFB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028AFFB4 */ cpu->r[12] = 0x00000000u;
|
|
/* 028AFFB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000005u);
|
|
/* 028AFFBC */ _t105 = cpu->r[31] + 0x00000030u;
|
|
/* 028AFFBC */ rbrew_write8(cpu->mem, _t105, (uint8_t)cpu->r[12]);
|
|
/* 028AFFC0 */ _t106 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028AFFC0 */ _t107 = _t106 & 0x00000001u;
|
|
/* 028AFFC0 */ if (_t107) goto L_028AFFC4; else goto L_028AFFE4;
|
|
L_028AFFC4: ; // 0x28affc4
|
|
/* 028AFFC4 */ _t108 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFFC4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028AFFC8 */ _t109 = cpu->r[1] + 0x00000054u;
|
|
/* 028AFFC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028AFFCC */ _t110 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFFCC */ cpu->r[30] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028AFFD0 */ cpu->lr = cpu->r[0];
|
|
/* 028AFFD4 */ _t111 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AFFD4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028AFFD8 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028AFFDC */ cpu->r[3] = 0x00000001u;
|
|
/* 028AFFE0 */ return;
|
|
L_028AFFE4: ; // 0x28affe4
|
|
/* 028AFFE4 */ _t112 = cpu->r[1] + 0x00000044u;
|
|
/* 028AFFE4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028AFFE8 */ _t113 = cpu->r[1] + 0x00000054u;
|
|
/* 028AFFE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t113);
|
|
/* 028AFFEC */ _t114 = cpu->r[1] + 0x00000048u;
|
|
/* 028AFFEC */ cpu->r[30] = rbrew_read32(cpu->mem, _t114);
|
|
/* 028AFFF0 */ cpu->lr = cpu->r[0];
|
|
/* 028AFFF4 */ _t115 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028AFFF4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t115);
|
|
/* 028AFFF8 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028AFFFC */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0000 */ return;
|
|
}
|
|
|
|
// fn_028B0004 @ 0x28b0004
|
|
void Gambit_fn_028B0004(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_028B0004: ; // 0x28b0004
|
|
/* 028B0004 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0008 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028B0008 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0008 */ cpu->r[1] = _t0;
|
|
/* 028B000C */ _t1 = cpu->r[1] + 0x00000040u;
|
|
/* 028B000C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0010 */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028B0010 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0014 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B0018 */ _t3 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B0018 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B001C */ _t4 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B001C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0020 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0024 */ _t5 = cpu->r[12] + 0x00000068u;
|
|
/* 028B0024 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0028 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B002C */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B002C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0030 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0030 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B0030 */ if (_t8) goto L_028B0060; else goto L_028B0034;
|
|
L_028B0034: ; // 0x28b0034
|
|
/* 028B0034 */ _t9 = cpu->r[30] + 0x00000010u;
|
|
/* 028B0034 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0038 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0038 */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 028B003C */ cpu->r[5] = cpu->r[30] + 0x00000034u;
|
|
/* 028B0040 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0040 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028B0044 */ _t12 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0044 */ rbrew_write32(cpu->mem, _t12, cpu->r[5]);
|
|
/* 028B0048 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0048 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028B004C */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028B004C */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B0050 */ _t15 = cpu->r[6] + 0x00000034u;
|
|
/* 028B0050 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0054 */ cpu->ctr = cpu->r[7];
|
|
/* 028B0058 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B005C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B0060: ; // 0x28b0060
|
|
/* 028B0060 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B0064 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0064 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B0064 */ if (_t17) goto L_028B00A0; else goto L_028B0068;
|
|
L_028B0068: ; // 0x28b0068
|
|
/* 028B0068 */ _t18 = cpu->r[31] + 0x00000060u;
|
|
/* 028B0068 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B006C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0070 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0070 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B0070 */ if (_t20) goto L_028B00A0; else goto L_028B0074;
|
|
L_028B0074: ; // 0x28b0074
|
|
/* 028B0074 */ _t21 = cpu->r[30] + 0x00000010u;
|
|
/* 028B0074 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B0078 */ _t22 = cpu->r[1] + 0x00000030u;
|
|
/* 028B0078 */ rbrew_write32(cpu->mem, _t22, cpu->r[31]);
|
|
/* 028B007C */ cpu->r[9] = cpu->r[30] + 0x00000034u;
|
|
/* 028B0080 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B0080 */ rbrew_write32(cpu->mem, _t23, cpu->r[8]);
|
|
/* 028B0084 */ _t24 = cpu->r[1] + 0x00000034u;
|
|
/* 028B0084 */ rbrew_write32(cpu->mem, _t24, cpu->r[9]);
|
|
/* 028B0088 */ _t25 = cpu->r[1] + 0x00000038u;
|
|
/* 028B0088 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028B008C */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028B008C */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B0090 */ _t27 = cpu->r[10] + 0x00000034u;
|
|
/* 028B0090 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B0094 */ cpu->ctr = cpu->r[0];
|
|
/* 028B0098 */ cpu->r[4] = cpu->r[1] + 0x00000024u;
|
|
/* 028B009C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B00A0: ; // 0x28b00a0
|
|
/* 028B00A0 */ _t28 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B00A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B00A4 */ _t29 = cpu->r[1] + 0x00000040u;
|
|
/* 028B00A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B00A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B00AC */ _t30 = cpu->r[1] + 0x00000044u;
|
|
/* 028B00AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B00B0 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028B00B4 */ return;
|
|
}
|
|
|
|
// fn_028B0008 @ 0x28b0008
|
|
void Gambit_fn_028B0008(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_028B0008: ; // 0x28b0008
|
|
/* 028B0008 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028B0008 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0008 */ cpu->r[1] = _t0;
|
|
/* 028B000C */ _t1 = cpu->r[1] + 0x00000040u;
|
|
/* 028B000C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0010 */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028B0010 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0014 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B0018 */ _t3 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B0018 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B001C */ _t4 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B001C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0020 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0024 */ _t5 = cpu->r[12] + 0x00000068u;
|
|
/* 028B0024 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0028 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B002C */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B002C */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0030 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0030 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B0030 */ if (_t8) goto L_028B0060; else goto L_028B0034;
|
|
L_028B0034: ; // 0x28b0034
|
|
/* 028B0034 */ _t9 = cpu->r[30] + 0x00000010u;
|
|
/* 028B0034 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0038 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0038 */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 028B003C */ cpu->r[5] = cpu->r[30] + 0x00000034u;
|
|
/* 028B0040 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0040 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028B0044 */ _t12 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0044 */ rbrew_write32(cpu->mem, _t12, cpu->r[5]);
|
|
/* 028B0048 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0048 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028B004C */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028B004C */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B0050 */ _t15 = cpu->r[6] + 0x00000034u;
|
|
/* 028B0050 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0054 */ cpu->ctr = cpu->r[7];
|
|
/* 028B0058 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B005C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B0060: ; // 0x28b0060
|
|
/* 028B0060 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B0064 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0064 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B0064 */ if (_t17) goto L_028B00A0; else goto L_028B0068;
|
|
L_028B0068: ; // 0x28b0068
|
|
/* 028B0068 */ _t18 = cpu->r[31] + 0x00000060u;
|
|
/* 028B0068 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B006C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0070 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0070 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B0070 */ if (_t20) goto L_028B00A0; else goto L_028B0074;
|
|
L_028B0074: ; // 0x28b0074
|
|
/* 028B0074 */ _t21 = cpu->r[30] + 0x00000010u;
|
|
/* 028B0074 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B0078 */ _t22 = cpu->r[1] + 0x00000030u;
|
|
/* 028B0078 */ rbrew_write32(cpu->mem, _t22, cpu->r[31]);
|
|
/* 028B007C */ cpu->r[9] = cpu->r[30] + 0x00000034u;
|
|
/* 028B0080 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B0080 */ rbrew_write32(cpu->mem, _t23, cpu->r[8]);
|
|
/* 028B0084 */ _t24 = cpu->r[1] + 0x00000034u;
|
|
/* 028B0084 */ rbrew_write32(cpu->mem, _t24, cpu->r[9]);
|
|
/* 028B0088 */ _t25 = cpu->r[1] + 0x00000038u;
|
|
/* 028B0088 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028B008C */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028B008C */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B0090 */ _t27 = cpu->r[10] + 0x00000034u;
|
|
/* 028B0090 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B0094 */ cpu->ctr = cpu->r[0];
|
|
/* 028B0098 */ cpu->r[4] = cpu->r[1] + 0x00000024u;
|
|
/* 028B009C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B00A0: ; // 0x28b00a0
|
|
/* 028B00A0 */ _t28 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B00A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B00A4 */ _t29 = cpu->r[1] + 0x00000040u;
|
|
/* 028B00A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B00A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B00AC */ _t30 = cpu->r[1] + 0x00000044u;
|
|
/* 028B00AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B00B0 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028B00B4 */ return;
|
|
}
|
|
|
|
// fn_028B00B8 @ 0x28b00b8
|
|
void Gambit_fn_028B00B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028B00B8: ; // 0x28b00b8
|
|
/* 028B00B8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B00BC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B00BC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B00BC */ cpu->r[1] = _t0;
|
|
/* 028B00C0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B00C0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B00C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B00C8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B00C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B00CC */ Gambit_fn_028B0004(cpu);
|
|
/* 028B00D0 */ _t3 = cpu->r[31] + 0x00000024u;
|
|
/* 028B00D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B00D4 */ _t4 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B00D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B00D8 */ cpu->ctr = cpu->r[0];
|
|
/* 028B00DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B00E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B00E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B00E8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B00E8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B00E8 */ if (_t6) goto L_028B010C; else goto L_028B00EC;
|
|
L_028B00EC: ; // 0x28b00ec
|
|
/* 028B00EC */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 028B00EC */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B00F0 */ _t8 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028B00F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B00F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B00F8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B00F8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B00F8 */ if (_t10) goto L_028B010C; else goto L_028B00FC;
|
|
L_028B00FC: ; // 0x28b00fc
|
|
/* 028B00FC */ _t11 = cpu->r[3] + 0x00000004u;
|
|
/* 028B00FC */ cpu->r[0] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028B0100 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B0104 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0104 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B0104 */ if (_t13) goto L_028B010C; else goto L_028B0108;
|
|
L_028B0108: ; // 0x28b0108
|
|
/* 028B0108 */ Gambit_fn_02A3A6F4(cpu);
|
|
L_028B010C: ; // 0x28b010c
|
|
/* 028B010C */ cpu->r[9] = 0x00000004u;
|
|
/* 028B0110 */ _t14 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0110 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028B0114 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0114 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0118 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0118 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B011C */ cpu->lr = cpu->r[0];
|
|
/* 028B0120 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0124 */ return;
|
|
}
|
|
|
|
// fn_028B00BC @ 0x28b00bc
|
|
void Gambit_fn_028B00BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028B00BC: ; // 0x28b00bc
|
|
/* 028B00BC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B00BC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B00BC */ cpu->r[1] = _t0;
|
|
/* 028B00C0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B00C0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B00C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B00C8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B00C8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B00CC */ Gambit_fn_028B0004(cpu);
|
|
/* 028B00D0 */ _t3 = cpu->r[31] + 0x00000024u;
|
|
/* 028B00D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B00D4 */ _t4 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B00D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B00D8 */ cpu->ctr = cpu->r[0];
|
|
/* 028B00DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B00E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B00E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B00E8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B00E8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B00E8 */ if (_t6) goto L_028B010C; else goto L_028B00EC;
|
|
L_028B00EC: ; // 0x28b00ec
|
|
/* 028B00EC */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 028B00EC */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B00F0 */ _t8 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028B00F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B00F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B00F8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B00F8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B00F8 */ if (_t10) goto L_028B010C; else goto L_028B00FC;
|
|
L_028B00FC: ; // 0x28b00fc
|
|
/* 028B00FC */ _t11 = cpu->r[3] + 0x00000004u;
|
|
/* 028B00FC */ cpu->r[0] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028B0100 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B0104 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0104 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B0104 */ if (_t13) goto L_028B010C; else goto L_028B0108;
|
|
L_028B0108: ; // 0x28b0108
|
|
/* 028B0108 */ Gambit_fn_02A3A6F4(cpu);
|
|
L_028B010C: ; // 0x28b010c
|
|
/* 028B010C */ cpu->r[9] = 0x00000004u;
|
|
/* 028B0110 */ _t14 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0110 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 028B0114 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0114 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0118 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0118 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B011C */ cpu->lr = cpu->r[0];
|
|
/* 028B0120 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0124 */ return;
|
|
}
|
|
|
|
// fn_028B0128 @ 0x28b0128
|
|
void Gambit_fn_028B0128(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_028B0128: ; // 0x28b0128
|
|
/* 028B0128 */ cpu->r[0] = cpu->lr;
|
|
/* 028B012C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B012C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B012C */ cpu->r[1] = _t0;
|
|
/* 028B0130 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0130 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B0134 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0138 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0138 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B013C */ Gambit_fn_028B0004(cpu);
|
|
/* 028B0140 */ _t3 = cpu->r[31] + 0x00000024u;
|
|
/* 028B0140 */ cpu->r[11] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B0144 */ _t4 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028B0144 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0148 */ cpu->ctr = cpu->r[12];
|
|
/* 028B014C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0150 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B0154 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0158 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0158 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B0158 */ if (_t6) goto L_028B0198; else goto L_028B015C;
|
|
L_028B015C: ; // 0x28b015c
|
|
/* 028B015C */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 028B015C */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0160 */ _t8 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028B0160 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0164 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B0168 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0168 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B0168 */ if (_t10) goto L_028B0188; else goto L_028B016C;
|
|
L_028B016C: ; // 0x28b016c
|
|
/* 028B016C */ _t11 = cpu->r[3] + 0x00000004u;
|
|
/* 028B016C */ cpu->r[0] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028B0170 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B0174 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0174 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B0174 */ if (_t13) goto L_028B0188; else goto L_028B0178;
|
|
L_028B0178: ; // 0x28b0178
|
|
/* 028B0178 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B017C */ _t14 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B017C */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B0180 */ _t15 = cpu->r[12] + 0x000000A4u;
|
|
/* 028B0180 */ cpu->r[4] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028B0184 */ Gambit_fn_02A3A6E0(cpu);
|
|
L_028B0188: ; // 0x28b0188
|
|
/* 028B0188 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028B018C */ cpu->r[8] = 0x00000000u;
|
|
/* 028B0190 */ _t16 = cpu->r[31] + 0x00000038u;
|
|
/* 028B0190 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028B0194 */ _t17 = cpu->r[31] + 0x00000034u;
|
|
/* 028B0194 */ rbrew_write32(cpu->mem, _t17, cpu->r[8]);
|
|
L_028B0198: ; // 0x28b0198
|
|
/* 028B0198 */ cpu->r[9] = 0x00000005u;
|
|
/* 028B019C */ _t18 = cpu->r[31] + 0x00000014u;
|
|
/* 028B019C */ rbrew_write32(cpu->mem, _t18, cpu->r[9]);
|
|
/* 028B01A0 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028B01A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B01A4 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B01A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B01A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B01AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B01B0 */ return;
|
|
}
|
|
|
|
// fn_028B012C @ 0x28b012c
|
|
void Gambit_fn_028B012C(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_028B012C: ; // 0x28b012c
|
|
/* 028B012C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B012C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B012C */ cpu->r[1] = _t0;
|
|
/* 028B0130 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0130 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B0134 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0138 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0138 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B013C */ Gambit_fn_028B0004(cpu);
|
|
/* 028B0140 */ _t3 = cpu->r[31] + 0x00000024u;
|
|
/* 028B0140 */ cpu->r[11] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B0144 */ _t4 = cpu->r[11] + 0x0000001Cu;
|
|
/* 028B0144 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0148 */ cpu->ctr = cpu->r[12];
|
|
/* 028B014C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0150 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B0154 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0158 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0158 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B0158 */ if (_t6) goto L_028B0198; else goto L_028B015C;
|
|
L_028B015C: ; // 0x28b015c
|
|
/* 028B015C */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 028B015C */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0160 */ _t8 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028B0160 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0164 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B0168 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0168 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B0168 */ if (_t10) goto L_028B0188; else goto L_028B016C;
|
|
L_028B016C: ; // 0x28b016c
|
|
/* 028B016C */ _t11 = cpu->r[3] + 0x00000004u;
|
|
/* 028B016C */ cpu->r[0] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028B0170 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B0174 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0174 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B0174 */ if (_t13) goto L_028B0188; else goto L_028B0178;
|
|
L_028B0178: ; // 0x28b0178
|
|
/* 028B0178 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B017C */ _t14 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B017C */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B0180 */ _t15 = cpu->r[12] + 0x000000A4u;
|
|
/* 028B0180 */ cpu->r[4] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028B0184 */ Gambit_fn_02A3A6E0(cpu);
|
|
L_028B0188: ; // 0x28b0188
|
|
/* 028B0188 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028B018C */ cpu->r[8] = 0x00000000u;
|
|
/* 028B0190 */ _t16 = cpu->r[31] + 0x00000038u;
|
|
/* 028B0190 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 028B0194 */ _t17 = cpu->r[31] + 0x00000034u;
|
|
/* 028B0194 */ rbrew_write32(cpu->mem, _t17, cpu->r[8]);
|
|
L_028B0198: ; // 0x28b0198
|
|
/* 028B0198 */ cpu->r[9] = 0x00000005u;
|
|
/* 028B019C */ _t18 = cpu->r[31] + 0x00000014u;
|
|
/* 028B019C */ rbrew_write32(cpu->mem, _t18, cpu->r[9]);
|
|
/* 028B01A0 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028B01A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B01A4 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B01A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B01A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B01AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B01B0 */ return;
|
|
}
|
|
|
|
// fn_028B01B4 @ 0x28b01b4
|
|
void Gambit_fn_028B01B4(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_028B01B4: ; // 0x28b01b4
|
|
/* 028B01B4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B01B8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B01B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B01B8 */ cpu->r[1] = _t0;
|
|
/* 028B01BC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B01BC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B01C0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B01C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B01C4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B01C8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B01C8 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B01CC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B01CC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B01D0 */ Gambit_fn_028B0004(cpu);
|
|
/* 028B01D4 */ _t5 = cpu->r[30] + 0x00000024u;
|
|
/* 028B01D4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B01D8 */ _t6 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B01D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B01DC */ cpu->ctr = cpu->r[0];
|
|
/* 028B01E0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B01E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B01E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B01EC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B01EC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B01EC */ if (_t8) goto L_028B0264; else goto L_028B01F0;
|
|
L_028B01F0: ; // 0x28b01f0
|
|
/* 028B01F0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B01F4 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028B01F8 */ _t9 = cpu->r[30] + 0x00000010u;
|
|
/* 028B01F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B01FC */ cpu->r[4] = cpu->r[31];
|
|
/* 028B0200 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B0204 */ Gambit_fn_028A7E40(cpu);
|
|
/* 028B0208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B020C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B020C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B020C */ if (_t11) goto L_028B0210; else goto L_028B0230;
|
|
L_028B0210: ; // 0x28b0210
|
|
/* 028B0210 */ _t12 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B0210 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0214 */ _t13 = cpu->r[12] + 0x00000024u;
|
|
/* 028B0214 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B0218 */ cpu->ctr = cpu->r[0];
|
|
/* 028B021C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B0220 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B0224 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B0228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B022C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B022C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B022C */ if (_t15) goto L_028B026C; else goto L_028B0230;
|
|
L_028B0230: ; // 0x28b0230
|
|
/* 028B0230 */ _t16 = cpu->r[30] + 0x00000024u;
|
|
/* 028B0230 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0234 */ _t17 = cpu->r[7] + 0x00000024u;
|
|
/* 028B0234 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0238 */ cpu->ctr = cpu->r[0];
|
|
/* 028B023C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0240 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028B0244 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B0248 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0248 */ cpu->r[29] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B024C */ _t19 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B024C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B0250 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0250 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B0254 */ cpu->lr = cpu->r[0];
|
|
/* 028B0258 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0258 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B025C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B0260 */ return;
|
|
L_028B0264: ; // 0x28b0264
|
|
/* 028B0264 */ cpu->r[0] = 0x00000005u;
|
|
/* 028B0268 */ _t22 = cpu->r[30] + 0x00000014u;
|
|
/* 028B0268 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
L_028B026C: ; // 0x28b026c
|
|
/* 028B026C */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B026C */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B0270 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0270 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B0274 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0274 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B0278 */ cpu->lr = cpu->r[0];
|
|
/* 028B027C */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028B027C */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B0280 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B0284 */ return;
|
|
}
|
|
|
|
// fn_028B01B8 @ 0x28b01b8
|
|
void Gambit_fn_028B01B8(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_028B01B8: ; // 0x28b01b8
|
|
/* 028B01B8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B01B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B01B8 */ cpu->r[1] = _t0;
|
|
/* 028B01BC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B01BC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B01C0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B01C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B01C4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B01C8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B01C8 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B01CC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B01CC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B01D0 */ Gambit_fn_028B0004(cpu);
|
|
/* 028B01D4 */ _t5 = cpu->r[30] + 0x00000024u;
|
|
/* 028B01D4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B01D8 */ _t6 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B01D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B01DC */ cpu->ctr = cpu->r[0];
|
|
/* 028B01E0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B01E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B01E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B01EC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B01EC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B01EC */ if (_t8) goto L_028B0264; else goto L_028B01F0;
|
|
L_028B01F0: ; // 0x28b01f0
|
|
/* 028B01F0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B01F4 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028B01F8 */ _t9 = cpu->r[30] + 0x00000010u;
|
|
/* 028B01F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B01FC */ cpu->r[4] = cpu->r[31];
|
|
/* 028B0200 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B0204 */ Gambit_fn_028A7E40(cpu);
|
|
/* 028B0208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B020C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B020C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B020C */ if (_t11) goto L_028B0210; else goto L_028B0230;
|
|
L_028B0210: ; // 0x28b0210
|
|
/* 028B0210 */ _t12 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B0210 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0214 */ _t13 = cpu->r[12] + 0x00000024u;
|
|
/* 028B0214 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B0218 */ cpu->ctr = cpu->r[0];
|
|
/* 028B021C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B0220 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B0224 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B0228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B022C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B022C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B022C */ if (_t15) goto L_028B026C; else goto L_028B0230;
|
|
L_028B0230: ; // 0x28b0230
|
|
/* 028B0230 */ _t16 = cpu->r[30] + 0x00000024u;
|
|
/* 028B0230 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0234 */ _t17 = cpu->r[7] + 0x00000024u;
|
|
/* 028B0234 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0238 */ cpu->ctr = cpu->r[0];
|
|
/* 028B023C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0240 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028B0244 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B0248 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0248 */ cpu->r[29] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B024C */ _t19 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B024C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B0250 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0250 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B0254 */ cpu->lr = cpu->r[0];
|
|
/* 028B0258 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0258 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B025C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B0260 */ return;
|
|
L_028B0264: ; // 0x28b0264
|
|
/* 028B0264 */ cpu->r[0] = 0x00000005u;
|
|
/* 028B0268 */ _t22 = cpu->r[30] + 0x00000014u;
|
|
/* 028B0268 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
L_028B026C: ; // 0x28b026c
|
|
/* 028B026C */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B026C */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B0270 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0270 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B0274 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0274 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B0278 */ cpu->lr = cpu->r[0];
|
|
/* 028B027C */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028B027C */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B0280 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B0284 */ return;
|
|
}
|
|
|
|
// fn_028B0288 @ 0x28b0288
|
|
void Gambit_fn_028B0288(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_028B0288: ; // 0x28b0288
|
|
/* 028B0288 */ _t0 = cpu->r[3] + 0x00000034u;
|
|
/* 028B0288 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B028C */ _t1 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028B028C */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B0290 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B0294 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0294 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B0294 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B0294 */ goto L_028B0298;
|
|
L_028B0298: ; // 0x28b0298
|
|
/* 028B0298 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0298 */ cpu->r[12] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028B029C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B02A0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B02A0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B02A0 */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B02A0 */ goto L_028B02A4;
|
|
L_028B02A4: ; // 0x28b02a4
|
|
/* 028B02A4 */ goto L_02A3A08C;
|
|
L_02A3A08C: ; // 0x2a3a08c
|
|
/* 02A3A08C */ cpu->r[0] = cpu->lr;
|
|
/* 02A3A090 */ _t7 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02A3A090 */ rbrew_write32(cpu->mem, _t7, cpu->r[1]);
|
|
/* 02A3A090 */ cpu->r[1] = _t7;
|
|
/* 02A3A094 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02A3A094 */ rbrew_write32(cpu->mem, _t8, cpu->r[31]);
|
|
/* 02A3A098 */ cpu->r[31] = cpu->r[3];
|
|
/* 02A3A09C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 02A3A09C */ rbrew_write32(cpu->mem, _t9, cpu->r[30]);
|
|
/* 02A3A0A0 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 02A3A0A0 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 02A3A0A4 */ _t11 = cpu->r[31] + 0x000000FCu;
|
|
/* 02A3A0A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02A3A0A8 */ cpu->r[0] = 0x00000001u;
|
|
/* 02A3A0AC */ _t12 = cpu->r[31] + 0x00000006u;
|
|
/* 02A3A0AC */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
/* 02A3A0B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02A3A0B4 */ _t13 = cpu->r[31] + 0x0000002Cu;
|
|
/* 02A3A0B4 */ rbrew_write32(cpu->mem, _t13, cpu->r[4]);
|
|
/* 02A3A0B8 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A3A0B8 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02A3A0B8 */ if (_t15) goto L_02A3A0E4; else goto L_02A3A0BC;
|
|
L_02A3A0BC: ; // 0x2a3a0bc
|
|
/* 02A3A0BC */ _t16 = cpu->r[30] + 0x000000F8u;
|
|
/* 02A3A0BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02A3A0C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02A3A0C4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A3A0C4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02A3A0C4 */ if (_t18) goto L_02A3A0D8; else goto L_02A3A0C8;
|
|
L_02A3A0C8: ; // 0x2a3a0c8
|
|
/* 02A3A0C8 */ _t19 = cpu->r[31] + 0x0000002Cu;
|
|
/* 02A3A0C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02A3A0CC */ cpu->r[3] = cpu->r[30];
|
|
/* 02A3A0D0 */ _t20 = cpu->r[30] + 0x00000018u;
|
|
/* 02A3A0D0 */ rbrew_write32(cpu->mem, _t20, cpu->r[0]);
|
|
/* 02A3A0D4 */ Gambit_fn_02A384D0(cpu);
|
|
L_02A3A0D8: ; // 0x2a3a0d8
|
|
/* 02A3A0D8 */ _t21 = cpu->r[30] + 0x00000068u;
|
|
/* 02A3A0D8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02A3A0DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02A3A0E0 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A3A0E0 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02A3A0E0 */ if (_t23) goto L_02A3A0E4; else goto L_02A3A0BC;
|
|
L_02A3A0E4: ; // 0x2a3a0e4
|
|
/* 02A3A0E4 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 02A3A0E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02A3A0E8 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 02A3A0E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02A3A0EC */ cpu->lr = cpu->r[0];
|
|
/* 02A3A0F0 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02A3A0F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02A3A0F4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02A3A0F8 */ return;
|
|
}
|
|
|
|
// fn_028B02A8 @ 0x28b02a8
|
|
void Gambit_fn_028B02A8(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;
|
|
|
|
L_028B02A8: ; // 0x28b02a8
|
|
/* 028B02A8 */ _t0 = cpu->r[3] + 0x00000034u;
|
|
/* 028B02A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B02AC */ _t1 = cpu->r[3] + 0x0000010Cu;
|
|
/* 028B02AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B02B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B02B4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B02B4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B02B4 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B02B4 */ goto L_028B02B8;
|
|
L_028B02B8: ; // 0x28b02b8
|
|
/* 028B02B8 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B02B8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028B02BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B02C0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B02C0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B02C0 */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B02C0 */ goto L_028B02C4;
|
|
L_028B02C4: ; // 0x28b02c4
|
|
/* 028B02C4 */ goto L_02A3A0FC;
|
|
L_02A3A0FC: ; // 0x2a3a0fc
|
|
/* 02A3A0FC */ _t7 = cpu->r[1] + 0xFFFFFF88u;
|
|
/* 02A3A0FC */ rbrew_write32(cpu->mem, _t7, cpu->r[1]);
|
|
/* 02A3A0FC */ cpu->r[1] = _t7;
|
|
/* 02A3A100 */ /* nop */
|
|
/* 02A3A104 */ cpu->r[0] = cpu->lr;
|
|
/* 02A3A108 */ _t8 = cpu->r[1] + 0x00000028u;
|
|
/* 02A3A108 */ rbrew_write_f64(cpu->mem, _t8, cpu->f[27]);
|
|
/* 02A3A10C */ _t9 = cpu->r[1] + 0x00000038u;
|
|
/* 02A3A10C */ rbrew_write_f64(cpu->mem, _t9, cpu->f[28]);
|
|
/* 02A3A110 */ _t10 = cpu->r[1] + 0x00000048u;
|
|
/* 02A3A110 */ rbrew_write_f64(cpu->mem, _t10, cpu->f[29]);
|
|
/* 02A3A114 */ _t11 = cpu->r[1] + 0x00000058u;
|
|
/* 02A3A114 */ rbrew_write_f64(cpu->mem, _t11, cpu->f[30]);
|
|
/* 02A3A118 */ /* nop */
|
|
/* 02A3A11C */ _t12 = cpu->r[1] + 0x00000068u;
|
|
/* 02A3A11C */ rbrew_write_f64(cpu->mem, _t12, cpu->f[31]);
|
|
/* 02A3A120 */ /* nop */
|
|
/* 02A3A124 */ _t13 = cpu->r[1] + 0x00000030u;
|
|
/* 02A3A124 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[27]);
|
|
/* 02A3A128 */ /* nop */
|
|
/* 02A3A12C */ _t14 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02A3A12C */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 02A3A130 */ /* nop */
|
|
/* 02A3A134 */ _t15 = cpu->r[1] + 0x00000040u;
|
|
/* 02A3A134 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[28]);
|
|
/* 02A3A138 */ /* nop */
|
|
/* 02A3A13C */ _t16 = cpu->r[1] + 0x00000050u;
|
|
/* 02A3A13C */ rbrew_write_f32(cpu->mem, _t16, cpu->f[29]);
|
|
/* 02A3A140 */ _t17 = cpu->r[1] + 0x00000060u;
|
|
/* 02A3A140 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[30]);
|
|
/* 02A3A144 */ cpu->r[30] = cpu->r[3];
|
|
/* 02A3A148 */ _t18 = cpu->r[1] + 0x00000070u;
|
|
/* 02A3A148 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[31]);
|
|
/* 02A3A14C */ cpu->r[29] = cpu->r[4];
|
|
/* 02A3A150 */ _t19 = cpu->r[30] + 0x00000006u;
|
|
/* 02A3A150 */ cpu->r[10] = rbrew_read8(cpu->mem, _t19);
|
|
/* 02A3A154 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02A3A158 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A3A158 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02A3A158 */ if (_t21) goto L_02A3A15C; else goto L_02A3A1A8;
|
|
L_02A3A15C: ; // 0x2a3a15c
|
|
/* 02A3A15C */ cpu->r[3] = cpu->r[30];
|
|
/* 02A3A160 */ cpu->r[4] = 0x00000040u;
|
|
/* 02A3A164 */ Gambit_fn_02A3C02C(cpu);
|
|
/* 02A3A168 */ /* nop */
|
|
/* 02A3A16C */ _t22 = cpu->r[1] + 0x00000040u;
|
|
/* 02A3A16C */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 02A3A170 */ _t23 = cpu->r[1] + 0x00000060u;
|
|
/* 02A3A170 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 02A3A174 */ _t24 = cpu->r[1] + 0x00000038u;
|
|
/* 02A3A174 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t24);
|
|
/* 02A3A178 */ _t25 = cpu->r[1] + 0x00000050u;
|
|
/* 02A3A178 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 02A3A17C */ _t26 = cpu->r[1] + 0x00000058u;
|
|
/* 02A3A17C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t26);
|
|
/* 02A3A180 */ _t27 = cpu->r[1] + 0x00000048u;
|
|
/* 02A3A180 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 02A3A184 */ _t28 = cpu->r[1] + 0x00000030u;
|
|
/* 02A3A184 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 02A3A188 */ _t29 = cpu->r[1] + 0x00000070u;
|
|
/* 02A3A188 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 02A3A18C */ _t30 = cpu->r[1] + 0x00000028u;
|
|
/* 02A3A18C */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t30);
|
|
/* 02A3A190 */ _t31 = cpu->r[1] + 0x00000068u;
|
|
/* 02A3A190 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t31);
|
|
/* 02A3A194 */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02A3A194 */ _t33 = _t32 & 0x00000001u;
|
|
/* 02A3A194 */ if (_t33) goto L_02A3A198; // else: addr-0 trap, fall-through
|
|
L_02A3A198: ; // 0x2a3a198
|
|
/* 02A3A198 */ _t34 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02A3A198 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02A3A19C */ cpu->lr = cpu->r[0];
|
|
/* 02A3A1A0 */ cpu->r[1] = cpu->r[1] + 0x00000078u;
|
|
/* 02A3A1A4 */ return;
|
|
L_02A3A1A8: ; // 0x2a3a1a8
|
|
/* 02A3A1A8 */ _t35 = cpu->r[30] + 0x000000FCu;
|
|
/* 02A3A1A8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02A3A1AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02A3A1B0 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A3A1B0 */ _t37 = _t36 & 0x00000001u;
|
|
/* 02A3A1B0 */ if (_t37) goto L_02A3A480; else goto L_02A3A1B4;
|
|
L_02A3A1B4: ; // 0x2a3a1b4
|
|
/* 02A3A1B4 */ cpu->r[12] = 0x10160000u;
|
|
/* 02A3A1B8 */ cpu->r[11] = 0x10160000u;
|
|
/* 02A3A1BC */ _t38 = cpu->r[12] + 0x00001780u;
|
|
/* 02A3A1BC */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 02A3A1C0 */ cpu->r[5] = 0x10160000u;
|
|
/* 02A3A1C4 */ _t39 = cpu->r[11] + 0x00001788u;
|
|
/* 02A3A1C4 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 02A3A1C8 */ cpu->r[11] = 0x10160000u;
|
|
/* 02A3A1CC */ cpu->r[26] = 0x41C60000u;
|
|
/* 02A3A1D0 */ _t40 = cpu->r[5] + 0x0000178Cu;
|
|
/* 02A3A1D0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 02A3A1D4 */ cpu->r[11] = cpu->r[11] + 0x00001790u;
|
|
/* 02A3A1D8 */ cpu->r[27] = cpu->r[30] + 0x00000074u;
|
|
/* 02A3A1DC */ cpu->r[31] = cpu->r[30] + 0x00000044u;
|
|
/* 02A3A1E0 */ /* nop */
|
|
/* 02A3A1E4 */ cpu->r[26] = cpu->r[26] + 0x00004E6Du;
|
|
L_02A3A1E8: ; // 0x2a3a1e8
|
|
/* 02A3A1E8 */ _t41 = cpu->r[30] + 0x00000170u;
|
|
/* 02A3A1E8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t41);
|
|
/* 02A3A1EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02A3A1F0 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A3A1F0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 02A3A1F0 */ if (_t43) goto L_02A3A1F4; else goto L_02A3A200;
|
|
L_02A3A1F4: ; // 0x2a3a1f4
|
|
/* 02A3A1F4 */ cpu->r[3] = cpu->r[28];
|
|
/* 02A3A1F8 */ cpu->r[4] = 0x00000002u;
|
|
/* 02A3A1FC */ Gambit_fn_02A37C60(cpu);
|
|
L_02A3A200: ; // 0x2a3a200
|
|
/* 02A3A200 */ cpu->r[12] = cpu->r[28] + 0x000001B8u;
|
|
/* 02A3A204 */ /* nop */
|
|
/* 02A3A208 */ /* nop */
|
|
/* 02A3A20C */ /* nop */
|
|
/* 02A3A210 */ /* nop */
|
|
/* 02A3A214 */ /* nop */
|
|
/* 02A3A218 */ /* nop */
|
|
/* 02A3A21C */ /* nop */
|
|
/* 02A3A220 */ /* nop */
|
|
/* 02A3A224 */ /* nop */
|
|
/* 02A3A228 */ /* nop */
|
|
/* 02A3A22C */ /* nop */
|
|
/* 02A3A230 */ /* nop */
|
|
/* 02A3A234 */ /* nop */
|
|
/* 02A3A238 */ cpu->r[11] = cpu->r[28] + 0x00000218u;
|
|
/* 02A3A23C */ /* nop */
|
|
/* 02A3A240 */ /* nop */
|
|
/* 02A3A244 */ /* nop */
|
|
/* 02A3A248 */ /* nop */
|
|
/* 02A3A24C */ /* nop */
|
|
/* 02A3A250 */ /* nop */
|
|
/* 02A3A254 */ /* nop */
|
|
/* 02A3A258 */ /* nop */
|
|
/* 02A3A25C */ /* nop */
|
|
/* 02A3A260 */ /* nop */
|
|
/* 02A3A264 */ /* nop */
|
|
/* 02A3A268 */ /* nop */
|
|
/* 02A3A26C */ /* nop */
|
|
/* 02A3A270 */ /* nop */
|
|
/* 02A3A274 */ /* nop */
|
|
/* 02A3A278 */ /* nop */
|
|
/* 02A3A27C */ /* nop */
|
|
/* 02A3A280 */ /* nop */
|
|
/* 02A3A284 */ /* nop */
|
|
/* 02A3A288 */ /* nop */
|
|
/* 02A3A28C */ /* nop */
|
|
/* 02A3A290 */ /* nop */
|
|
/* 02A3A294 */ /* nop */
|
|
/* 02A3A298 */ /* nop */
|
|
/* 02A3A29C */ /* nop */
|
|
/* 02A3A2A0 */ cpu->r[10] = cpu->r[28] + 0x000001E8u;
|
|
/* 02A3A2A4 */ /* nop */
|
|
/* 02A3A2A8 */ /* nop */
|
|
/* 02A3A2AC */ /* nop */
|
|
/* 02A3A2B0 */ /* nop */
|
|
/* 02A3A2B4 */ /* nop */
|
|
/* 02A3A2B8 */ /* nop */
|
|
/* 02A3A2BC */ /* nop */
|
|
/* 02A3A2C0 */ /* nop */
|
|
/* 02A3A2C4 */ /* nop */
|
|
/* 02A3A2C8 */ /* nop */
|
|
/* 02A3A2CC */ /* nop */
|
|
/* 02A3A2D0 */ /* nop */
|
|
/* 02A3A2D4 */ /* nop */
|
|
/* 02A3A2D8 */ /* nop */
|
|
/* 02A3A2DC */ cpu->r[8] = cpu->r[28] + 0x00000248u;
|
|
/* 02A3A2E0 */ /* nop */
|
|
/* 02A3A2E4 */ /* nop */
|
|
/* 02A3A2E8 */ /* nop */
|
|
/* 02A3A2EC */ /* nop */
|
|
/* 02A3A2F0 */ /* nop */
|
|
/* 02A3A2F4 */ /* nop */
|
|
/* 02A3A2F8 */ /* nop */
|
|
/* 02A3A2FC */ /* nop */
|
|
/* 02A3A300 */ /* nop */
|
|
/* 02A3A304 */ /* nop */
|
|
/* 02A3A308 */ /* nop */
|
|
/* 02A3A30C */ /* nop */
|
|
/* 02A3A310 */ /* nop */
|
|
/* 02A3A314 */ /* nop */
|
|
/* 02A3A318 */ /* nop */
|
|
/* 02A3A31C */ /* nop */
|
|
/* 02A3A320 */ /* nop */
|
|
/* 02A3A324 */ /* nop */
|
|
/* 02A3A328 */ /* nop */
|
|
/* 02A3A32C */ /* nop */
|
|
/* 02A3A330 */ /* nop */
|
|
/* 02A3A334 */ /* nop */
|
|
/* 02A3A338 */ cpu->r[7] = 0x43300000u;
|
|
/* 02A3A33C */ /* nop */
|
|
/* 02A3A340 */ _t44 = cpu->r[1] + 0x00000008u;
|
|
/* 02A3A340 */ rbrew_write32(cpu->mem, _t44, cpu->r[7]);
|
|
/* 02A3A344 */ /* nop */
|
|
/* 02A3A348 */ /* nop */
|
|
/* 02A3A34C */ /* nop */
|
|
/* 02A3A350 */ _t45 = cpu->r[28] + 0x000000FCu;
|
|
/* 02A3A350 */ cpu->r[10] = rbrew_read32(cpu->mem, _t45);
|
|
/* 02A3A354 */ cpu->r[9] = 0x10160000u;
|
|
/* 02A3A358 */ _t46 = cpu->r[10] + 0x000007ECu;
|
|
/* 02A3A358 */ cpu->r[5] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02A3A35C */ _t47 = cpu->r[9] + 0x00001798u;
|
|
/* 02A3A35C */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t47);
|
|
/* 02A3A360 */ cpu->r[0] = cpu->r[5] ^ 0x80000000u;
|
|
/* 02A3A364 */ _t48 = cpu->r[28] + 0x00000128u;
|
|
/* 02A3A364 */ cpu->r[7] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02A3A368 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02A3A368 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 02A3A36C */ _t50 = cpu->r[1] + 0x00000008u;
|
|
/* 02A3A36C */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t50);
|
|
/* 02A3A370 */ cpu->r[6] = 0x10160000u;
|
|
/* 02A3A374 */ _t51 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02A3A374 */ rbrew_write32(cpu->mem, _t51, cpu->r[7]);
|
|
/* 02A3A378 */ cpu->f[6] = cpu->f[13] - cpu->f[0];
|
|
/* 02A3A37C */ _t52 = cpu->r[6] + 0x000017A8u;
|
|
/* 02A3A37C */ cpu->f[13] = rbrew_read_f64(cpu->mem, _t52);
|
|
/* 02A3A380 */ _t53 = cpu->r[1] + 0x00000008u;
|
|
/* 02A3A380 */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t53);
|
|
/* 02A3A384 */ cpu->r[12] = 0x10160000u;
|
|
/* 02A3A388 */ cpu->f[10] = (double)(float)cpu->f[6];
|
|
/* 02A3A38C */ _t54 = cpu->r[12] + 0x000017A0u;
|
|
/* 02A3A38C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 02A3A390 */ cpu->f[12] = cpu->f[11] - cpu->f[13];
|
|
/* 02A3A394 */ cpu->f[7] = cpu->f[10] / cpu->f[9];
|
|
/* 02A3A398 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)cpu->r[26]);
|
|
/* 02A3A39C */ _t55 = cpu->r[10] + 0x000007E8u;
|
|
/* 02A3A39C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 02A3A3A0 */ cpu->f[10] = (double)(float)cpu->f[12];
|
|
/* 02A3A3A4 */ cpu->r[0] = cpu->r[4] + 0x00003039u;
|
|
/* 02A3A3A8 */ cpu->f[7] = cpu->f[7] * cpu->f[9];
|
|
/* 02A3A3AC */ _t56 = cpu->r[28] + 0x00000128u;
|
|
/* 02A3A3AC */ rbrew_write32(cpu->mem, _t56, cpu->r[0]);
|
|
/* 02A3A3B0 */ cpu->f[13] = cpu->f[10] * cpu->f[31];
|
|
/* 02A3A3B4 */ _t57 = cpu->r[10] + 0x000007E8u;
|
|
/* 02A3A3B4 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 02A3A3B8 */ cpu->f[0] = -fma(cpu->f[7], cpu->f[13], -(cpu->f[6]));
|
|
/* 02A3A3BC */ _t58 = cpu->r[28] + 0x00000050u;
|
|
/* 02A3A3BC */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 02A3A3C0 */ cpu->f[7] = cpu->f[0] * cpu->f[8];
|
|
/* 02A3A3C4 */ _t59 = cpu->r[30] + 0x00000038u;
|
|
/* 02A3A3C4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 02A3A3C8 */ cpu->f[0] = cpu->f[7] * cpu->f[9];
|
|
/* 02A3A3CC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[0], cpu->f[30]);
|
|
/* 02A3A3D0 */ _t60 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02A3A3D0 */ _t61 = _t60 & 0x00000001u;
|
|
/* 02A3A3D0 */ if (_t61) goto L_02A3A3D4; else goto L_02A3A428;
|
|
L_02A3A3D4: ; // 0x2a3a3d4
|
|
/* 02A3A3D4 */ cpu->f[10] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 02A3A3D8 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
/* 02A3A3DC */ /* nop */
|
|
/* 02A3A3E0 */ _t62 = cpu->r[29] + 0x00000000u;
|
|
/* 02A3A3E0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t62);
|
|
/* 02A3A3E4 */ _t63 = cpu->r[1] + 0x00000008u;
|
|
/* 02A3A3E4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02A3A3E8 */ _t64 = cpu->r[28] + 0x00000438u;
|
|
/* 02A3A3E8 */ rbrew_write32(cpu->mem, _t64, cpu->r[11]);
|
|
/* 02A3A3EC */ _t65 = cpu->r[29] + 0x00000004u;
|
|
/* 02A3A3EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 02A3A3F0 */ _t66 = cpu->r[28] + 0x0000043Cu;
|
|
/* 02A3A3F0 */ rbrew_write32(cpu->mem, _t66, cpu->r[0]);
|
|
/* 02A3A3F4 */ _t67 = cpu->r[29] + 0x00000008u;
|
|
/* 02A3A3F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02A3A3F8 */ cpu->r[4] = cpu->r[28];
|
|
/* 02A3A3FC */ _t68 = cpu->r[28] + 0x000000F8u;
|
|
/* 02A3A3FC */ cpu->r[3] = rbrew_read32(cpu->mem, _t68);
|
|
/* 02A3A400 */ cpu->r[6] = 0x00000001u;
|
|
/* 02A3A404 */ _t69 = cpu->r[28] + 0x00000440u;
|
|
/* 02A3A404 */ rbrew_write32(cpu->mem, _t69, cpu->r[0]);
|
|
/* 02A3A408 */ Gambit_fn_02A5AAD0(cpu);
|
|
/* 02A3A40C */ _t70 = cpu->r[28] + 0x00000438u;
|
|
/* 02A3A40C */ rbrew_write_f32(cpu->mem, _t70, cpu->f[29]);
|
|
/* 02A3A410 */ _t71 = cpu->r[28] + 0x0000043Cu;
|
|
/* 02A3A410 */ rbrew_write_f32(cpu->mem, _t71, cpu->f[29]);
|
|
/* 02A3A414 */ _t72 = cpu->r[28] + 0x00000440u;
|
|
/* 02A3A414 */ rbrew_write_f32(cpu->mem, _t72, cpu->f[29]);
|
|
/* 02A3A418 */ _t73 = cpu->r[28] + 0x00000068u;
|
|
/* 02A3A418 */ cpu->r[28] = rbrew_read32(cpu->mem, _t73);
|
|
/* 02A3A41C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02A3A420 */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A3A420 */ _t75 = _t74 & 0x00000001u;
|
|
/* 02A3A420 */ if (_t75) goto L_02A3A424; else goto L_02A3A1E8;
|
|
L_02A3A424: ; // 0x2a3a424
|
|
/* 02A3A424 */ goto L_02A3A480;
|
|
L_02A3A428: ; // 0x2a3a428
|
|
/* 02A3A428 */ cpu->f[11] = cpu->f[0] - cpu->f[30];
|
|
/* 02A3A42C */ cpu->f[12] = (uint32_t)(int32_t)cpu->f[11];
|
|
/* 02A3A430 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 02A3A434 */ /* nop */
|
|
/* 02A3A438 */ _t76 = cpu->r[29] + 0x00000000u;
|
|
/* 02A3A438 */ cpu->r[11] = rbrew_read32(cpu->mem, _t76);
|
|
/* 02A3A43C */ _t77 = cpu->r[1] + 0x00000008u;
|
|
/* 02A3A43C */ cpu->r[4] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02A3A440 */ _t78 = cpu->r[28] + 0x00000438u;
|
|
/* 02A3A440 */ rbrew_write32(cpu->mem, _t78, cpu->r[11]);
|
|
/* 02A3A444 */ _t79 = cpu->r[29] + 0x00000004u;
|
|
/* 02A3A444 */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 02A3A448 */ cpu->r[6] = 0x00000001u;
|
|
/* 02A3A44C */ _t80 = cpu->r[28] + 0x0000043Cu;
|
|
/* 02A3A44C */ rbrew_write32(cpu->mem, _t80, cpu->r[0]);
|
|
/* 02A3A450 */ _t81 = cpu->r[29] + 0x00000008u;
|
|
/* 02A3A450 */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 02A3A454 */ cpu->r[5] = cpu->r[4] + 0x80000000u;
|
|
/* 02A3A458 */ _t82 = cpu->r[28] + 0x000000F8u;
|
|
/* 02A3A458 */ cpu->r[3] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02A3A45C */ cpu->r[4] = cpu->r[28];
|
|
/* 02A3A460 */ _t83 = cpu->r[28] + 0x00000440u;
|
|
/* 02A3A460 */ rbrew_write32(cpu->mem, _t83, cpu->r[0]);
|
|
/* 02A3A464 */ Gambit_fn_02A5AAD0(cpu);
|
|
/* 02A3A468 */ _t84 = cpu->r[28] + 0x00000438u;
|
|
/* 02A3A468 */ rbrew_write_f32(cpu->mem, _t84, cpu->f[29]);
|
|
/* 02A3A46C */ _t85 = cpu->r[28] + 0x0000043Cu;
|
|
/* 02A3A46C */ rbrew_write_f32(cpu->mem, _t85, cpu->f[29]);
|
|
/* 02A3A470 */ _t86 = cpu->r[28] + 0x00000440u;
|
|
/* 02A3A470 */ rbrew_write_f32(cpu->mem, _t86, cpu->f[29]);
|
|
/* 02A3A474 */ _t87 = cpu->r[28] + 0x00000068u;
|
|
/* 02A3A474 */ cpu->r[28] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02A3A478 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02A3A47C */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A3A47C */ _t89 = _t88 & 0x00000001u;
|
|
/* 02A3A47C */ if (_t89) goto L_02A3A480; else goto L_02A3A1E8;
|
|
L_02A3A480: ; // 0x2a3a480
|
|
/* 02A3A480 */ _t90 = cpu->r[30] + 0x00000170u;
|
|
/* 02A3A480 */ cpu->r[6] = rbrew_read8(cpu->mem, _t90);
|
|
/* 02A3A484 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02A3A488 */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A3A488 */ _t92 = _t91 & 0x00000001u;
|
|
/* 02A3A488 */ if (_t92) goto L_02A3A48C; else goto L_02A3A494;
|
|
L_02A3A48C: ; // 0x2a3a48c
|
|
/* 02A3A48C */ cpu->r[8] = 0x00000001u;
|
|
/* 02A3A490 */ _t93 = cpu->r[30] + 0x00000170u;
|
|
/* 02A3A490 */ rbrew_write8(cpu->mem, _t93, (uint8_t)cpu->r[8]);
|
|
L_02A3A494: ; // 0x2a3a494
|
|
/* 02A3A494 */ /* nop */
|
|
/* 02A3A498 */ _t94 = cpu->r[1] + 0x00000040u;
|
|
/* 02A3A498 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 02A3A49C */ _t95 = cpu->r[1] + 0x00000060u;
|
|
/* 02A3A49C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t95);
|
|
/* 02A3A4A0 */ _t96 = cpu->r[1] + 0x00000038u;
|
|
/* 02A3A4A0 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t96);
|
|
/* 02A3A4A4 */ _t97 = cpu->r[1] + 0x00000050u;
|
|
/* 02A3A4A4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t97);
|
|
/* 02A3A4A8 */ _t98 = cpu->r[1] + 0x00000058u;
|
|
/* 02A3A4A8 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t98);
|
|
/* 02A3A4AC */ _t99 = cpu->r[1] + 0x00000048u;
|
|
/* 02A3A4AC */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t99);
|
|
/* 02A3A4B0 */ _t100 = cpu->r[1] + 0x00000030u;
|
|
/* 02A3A4B0 */ cpu->f[27] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 02A3A4B4 */ _t101 = cpu->r[1] + 0x00000070u;
|
|
/* 02A3A4B4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t101);
|
|
/* 02A3A4B8 */ _t102 = cpu->r[1] + 0x00000028u;
|
|
/* 02A3A4B8 */ cpu->f[27] = rbrew_read_f64(cpu->mem, _t102);
|
|
/* 02A3A4BC */ _t103 = cpu->r[1] + 0x00000068u;
|
|
/* 02A3A4BC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t103);
|
|
/* 02A3A4C0 */ _t104 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02A3A4C0 */ _t105 = _t104 & 0x00000001u;
|
|
/* 02A3A4C0 */ if (_t105) goto L_02A3A4C4; // else: addr-0 trap, fall-through
|
|
L_02A3A4C4: ; // 0x2a3a4c4
|
|
/* 02A3A4C4 */ _t106 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02A3A4C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t106);
|
|
/* 02A3A4C8 */ cpu->lr = cpu->r[0];
|
|
/* 02A3A4CC */ cpu->r[1] = cpu->r[1] + 0x00000078u;
|
|
/* 02A3A4D0 */ return;
|
|
}
|
|
|
|
// fn_028B02C8 @ 0x28b02c8
|
|
void Gambit_fn_028B02C8(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;
|
|
|
|
L_028B02C8: ; // 0x28b02c8
|
|
/* 028B02C8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B02CC */ _t0 = cpu->r[1] + 0xFFFFFFA8u;
|
|
/* 028B02CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B02CC */ cpu->r[1] = _t0;
|
|
/* 028B02D0 */ _t1 = cpu->r[1] + 0x00000048u;
|
|
/* 028B02D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028B02D4 */ _t2 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B02D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B02D8 */ _t3 = cpu->r[1] + 0x00000050u;
|
|
/* 028B02D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B02DC */ _t4 = cpu->r[1] + 0x00000054u;
|
|
/* 028B02DC */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B02E0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B02E4 */ _t5 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B02E4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B02E8 */ _t6 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B02E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B02EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B02F0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B02F4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B02F4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B02F4 */ if (_t8) goto L_028B0450; else goto L_028B02F8;
|
|
L_028B02F8: ; // 0x28b02f8
|
|
/* 028B02F8 */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028B02F8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B02FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B0300 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0300 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B0300 */ if (_t11) goto L_028B0450; else goto L_028B0304;
|
|
L_028B0304: ; // 0x28b0304
|
|
/* 028B0304 */ cpu->r[9] = 0x101F0000u;
|
|
/* 028B0308 */ _t12 = cpu->r[9] + 0x00005BECu;
|
|
/* 028B0308 */ cpu->r[6] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0308 */ cpu->r[9] = _t12;
|
|
/* 028B030C */ _t13 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028B030C */ rbrew_write32(cpu->mem, _t13, cpu->r[6]);
|
|
/* 028B0310 */ _t14 = cpu->r[9] + 0x00000004u;
|
|
/* 028B0310 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B0314 */ _t15 = cpu->r[31] + 0x00000040u;
|
|
/* 028B0314 */ rbrew_write32(cpu->mem, _t15, cpu->r[8]);
|
|
/* 028B0318 */ _t16 = cpu->r[9] + 0x00000008u;
|
|
/* 028B0318 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B031C */ _t17 = cpu->r[31] + 0x00000044u;
|
|
/* 028B031C */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 028B0320 */ _t18 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028B0320 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0324 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0328 */ _t19 = cpu->r[31] + 0x00000048u;
|
|
/* 028B0328 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028B032C */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028B0330 */ _t20 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0330 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B0334 */ _t21 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B0334 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B0338 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B033C */ Gambit_fn_028B0AE8(cpu);
|
|
/* 028B0340 */ _t22 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028B0340 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028B0344 */ _t23 = cpu->r[29] + 0x00000067u;
|
|
/* 028B0344 */ cpu->r[5] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028B0348 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028B034C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B034C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028B034C */ if (_t25) goto L_028B0394; else goto L_028B0350;
|
|
L_028B0350: ; // 0x28b0350
|
|
/* 028B0350 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000001u);
|
|
/* 028B0354 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0354 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B0354 */ if (_t27) goto L_028B0450; else goto L_028B0358;
|
|
L_028B0358: ; // 0x28b0358
|
|
/* 028B0358 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000002u);
|
|
/* 028B035C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B035C */ _t29 = _t28 & 0x00000001u;
|
|
/* 028B035C */ if (_t29) goto L_028B0360; else goto L_028B0394;
|
|
L_028B0360: ; // 0x28b0360
|
|
/* 028B0360 */ cpu->r[6] = 0x00000003u;
|
|
/* 028B0364 */ cpu->r[7] = 0x00000001u;
|
|
/* 028B0368 */ _t30 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0368 */ rbrew_write32(cpu->mem, _t30, cpu->r[6]);
|
|
/* 028B036C */ _t31 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028B036C */ rbrew_write32(cpu->mem, _t31, cpu->r[7]);
|
|
/* 028B0370 */ _t32 = cpu->r[1] + 0x00000048u;
|
|
/* 028B0370 */ cpu->r[28] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B0374 */ _t33 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B0374 */ cpu->r[29] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B0378 */ _t34 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B0378 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B037C */ _t35 = cpu->r[1] + 0x00000050u;
|
|
/* 028B037C */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028B0380 */ cpu->lr = cpu->r[0];
|
|
/* 028B0384 */ _t36 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0384 */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028B0388 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028B038C */ cpu->r[3] = cpu->r[7];
|
|
/* 028B0390 */ return;
|
|
L_028B0394: ; // 0x28b0394
|
|
/* 028B0394 */ _t37 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B0394 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028B0398 */ _t38 = cpu->r[8] + 0x0000002Cu;
|
|
/* 028B0398 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B039C */ _t39 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B039C */ cpu->r[6] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028B03A0 */ cpu->ctr = cpu->r[9];
|
|
/* 028B03A4 */ _t40 = cpu->r[31] + 0x00000010u;
|
|
/* 028B03A4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028B03A8 */ _t41 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028B03A8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B03AC */ cpu->r[3] = cpu->r[28];
|
|
/* 028B03B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B03B4 */ cpu->r[5] = 0x10140000u;
|
|
/* 028B03B8 */ _t42 = cpu->r[5] + 0xFFFF831Cu;
|
|
/* 028B03B8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028B03BC */ cpu->r[11] = 0x10140000u;
|
|
/* 028B03C0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[13]);
|
|
/* 028B03C4 */ _t43 = cpu->r[11] + 0xFFFF8320u;
|
|
/* 028B03C4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028B03C8 */ _t44 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B03C8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028B03C8 */ if (_t45) goto L_028B03F0; else goto L_028B03CC;
|
|
L_028B03CC: ; // 0x28b03cc
|
|
/* 028B03CC */ cpu->f[0] = cpu->f[1] + cpu->f[0];
|
|
/* 028B03D0 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028B03D4 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028B03D8 */ /* nop */
|
|
/* 028B03DC */ _t46 = cpu->r[1] + 0x00000008u;
|
|
/* 028B03DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028B03E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B03E4 */ _t47 = cpu->r[31] + 0x00000018u;
|
|
/* 028B03E4 */ rbrew_write32(cpu->mem, _t47, cpu->r[12]);
|
|
/* 028B03E8 */ _t48 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B03E8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028B03E8 */ if (_t49) goto L_028B0474; else goto L_028B03EC;
|
|
L_028B03EC: ; // 0x28b03ec
|
|
/* 028B03EC */ goto L_028B0410;
|
|
L_028B03F0: ; // 0x28b03f0
|
|
/* 028B03F0 */ cpu->f[13] = cpu->f[1] - cpu->f[0];
|
|
/* 028B03F4 */ cpu->f[13] = (uint32_t)(int32_t)cpu->f[13];
|
|
/* 028B03F8 */ cpu->r[8] = cpu->r[1] + 0x00000008u;
|
|
/* 028B03FC */ /* nop */
|
|
/* 028B0400 */ _t50 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0400 */ cpu->r[12] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028B0404 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0408 */ _t51 = cpu->r[31] + 0x00000018u;
|
|
/* 028B0408 */ rbrew_write32(cpu->mem, _t51, cpu->r[12]);
|
|
/* 028B040C */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B040C */ _t53 = _t52 & 0x00000001u;
|
|
/* 028B040C */ if (_t53) goto L_028B0474; else goto L_028B0410;
|
|
L_028B0410: ; // 0x28b0410
|
|
/* 028B0410 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0414 */ Gambit_fn_028AEC8C(cpu);
|
|
/* 028B0418 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B041C */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B041C */ _t55 = _t54 & 0x00000001u;
|
|
/* 028B041C */ if (_t55) goto L_028B0450; else goto L_028B0420;
|
|
L_028B0420: ; // 0x28b0420
|
|
/* 028B0420 */ _t56 = cpu->r[31] + 0x00000028u;
|
|
/* 028B0420 */ cpu->r[6] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028B0424 */ cpu->r[6] = cpu->r[6] | 0x00000010u;
|
|
/* 028B0428 */ cpu->r[0] = 0x00000003u;
|
|
/* 028B042C */ _t57 = cpu->r[31] + 0x00000028u;
|
|
/* 028B042C */ rbrew_write32(cpu->mem, _t57, cpu->r[6]);
|
|
/* 028B0430 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B0434 */ _t58 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0434 */ rbrew_write32(cpu->mem, _t58, cpu->r[0]);
|
|
/* 028B0438 */ _t59 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B0438 */ cpu->r[12] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028B043C */ _t60 = cpu->r[12] + 0x00000068u;
|
|
/* 028B043C */ cpu->r[3] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028B0440 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0444 */ _t61 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B0444 */ cpu->r[29] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028B0448 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0448 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028B0448 */ if (_t63) goto L_028B04BC; else goto L_028B044C;
|
|
L_028B044C: ; // 0x28b044c
|
|
/* 028B044C */ goto L_028B0494;
|
|
L_028B0450: ; // 0x28b0450
|
|
/* 028B0450 */ _t64 = cpu->r[1] + 0x00000048u;
|
|
/* 028B0450 */ cpu->r[28] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028B0454 */ _t65 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B0454 */ cpu->r[29] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028B0458 */ _t66 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B0458 */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028B045C */ _t67 = cpu->r[1] + 0x00000050u;
|
|
/* 028B045C */ cpu->r[30] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028B0460 */ cpu->lr = cpu->r[0];
|
|
/* 028B0464 */ _t68 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0464 */ cpu->r[31] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028B0468 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028B046C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0470 */ return;
|
|
L_028B0474: ; // 0x28b0474
|
|
/* 028B0474 */ cpu->r[0] = 0x00000002u;
|
|
/* 028B0478 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B047C */ _t69 = cpu->r[31] + 0x00000014u;
|
|
/* 028B047C */ rbrew_write32(cpu->mem, _t69, cpu->r[0]);
|
|
/* 028B0480 */ _t70 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B0480 */ cpu->r[12] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028B0484 */ _t71 = cpu->r[12] + 0x00000068u;
|
|
/* 028B0484 */ cpu->r[3] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028B0488 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B048C */ _t72 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B048C */ cpu->r[29] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028B0490 */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0490 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028B0490 */ if (_t74) goto L_028B04BC; else goto L_028B0494;
|
|
L_028B0494: ; // 0x28b0494
|
|
/* 028B0494 */ _t75 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0494 */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028B0498 */ _t76 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0498 */ rbrew_write32(cpu->mem, _t76, cpu->r[29]);
|
|
/* 028B049C */ _t77 = cpu->r[1] + 0x00000018u;
|
|
/* 028B049C */ rbrew_write32(cpu->mem, _t77, cpu->r[0]);
|
|
/* 028B04A0 */ _t78 = cpu->r[1] + 0x00000020u;
|
|
/* 028B04A0 */ rbrew_write32(cpu->mem, _t78, cpu->r[30]);
|
|
/* 028B04A4 */ _t79 = cpu->r[1] + 0x00000024u;
|
|
/* 028B04A4 */ rbrew_write32(cpu->mem, _t79, cpu->r[31]);
|
|
/* 028B04A8 */ _t80 = cpu->r[3] + 0x00000000u;
|
|
/* 028B04A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028B04AC */ _t81 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B04AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028B04B0 */ cpu->ctr = cpu->r[0];
|
|
/* 028B04B4 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028B04B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B04BC: ; // 0x28b04bc
|
|
/* 028B04BC */ _t82 = cpu->r[29] + 0x00000060u;
|
|
/* 028B04BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028B04C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B04C4 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B04C4 */ _t84 = _t83 & 0x00000001u;
|
|
/* 028B04C4 */ if (_t84) goto L_028B04F0; else goto L_028B04C8;
|
|
L_028B04C8: ; // 0x28b04c8
|
|
/* 028B04C8 */ _t85 = cpu->r[31] + 0x00000010u;
|
|
/* 028B04C8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028B04CC */ _t86 = cpu->r[1] + 0x00000038u;
|
|
/* 028B04CC */ rbrew_write32(cpu->mem, _t86, cpu->r[29]);
|
|
/* 028B04D0 */ _t87 = cpu->r[1] + 0x00000034u;
|
|
/* 028B04D0 */ rbrew_write32(cpu->mem, _t87, cpu->r[7]);
|
|
/* 028B04D4 */ _t88 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B04D4 */ rbrew_write32(cpu->mem, _t88, cpu->r[30]);
|
|
/* 028B04D8 */ _t89 = cpu->r[1] + 0x00000040u;
|
|
/* 028B04D8 */ rbrew_write32(cpu->mem, _t89, cpu->r[31]);
|
|
/* 028B04DC */ _t90 = cpu->r[3] + 0x00000000u;
|
|
/* 028B04DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028B04E0 */ _t91 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028B04E0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028B04E4 */ cpu->ctr = cpu->r[11];
|
|
/* 028B04E8 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B04EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B04F0: ; // 0x28b04f0
|
|
/* 028B04F0 */ _t92 = cpu->r[1] + 0x00000048u;
|
|
/* 028B04F0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028B04F4 */ _t93 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B04F4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028B04F8 */ _t94 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B04F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028B04FC */ _t95 = cpu->r[1] + 0x00000050u;
|
|
/* 028B04FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028B0500 */ cpu->lr = cpu->r[0];
|
|
/* 028B0504 */ _t96 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0504 */ cpu->r[31] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028B0508 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028B050C */ cpu->r[3] = 0x00000001u;
|
|
/* 028B0510 */ return;
|
|
}
|
|
|
|
// fn_028B02CC @ 0x28b02cc
|
|
void Gambit_fn_028B02CC(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;
|
|
|
|
L_028B02CC: ; // 0x28b02cc
|
|
/* 028B02CC */ _t0 = cpu->r[1] + 0xFFFFFFA8u;
|
|
/* 028B02CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B02CC */ cpu->r[1] = _t0;
|
|
/* 028B02D0 */ _t1 = cpu->r[1] + 0x00000048u;
|
|
/* 028B02D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 028B02D4 */ _t2 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B02D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B02D8 */ _t3 = cpu->r[1] + 0x00000050u;
|
|
/* 028B02D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B02DC */ _t4 = cpu->r[1] + 0x00000054u;
|
|
/* 028B02DC */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B02E0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B02E4 */ _t5 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B02E4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B02E8 */ _t6 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B02E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B02EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B02F0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B02F4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B02F4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B02F4 */ if (_t8) goto L_028B0450; else goto L_028B02F8;
|
|
L_028B02F8: ; // 0x28b02f8
|
|
/* 028B02F8 */ _t9 = cpu->r[31] + 0x00000010u;
|
|
/* 028B02F8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B02FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B0300 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0300 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B0300 */ if (_t11) goto L_028B0450; else goto L_028B0304;
|
|
L_028B0304: ; // 0x28b0304
|
|
/* 028B0304 */ cpu->r[9] = 0x101F0000u;
|
|
/* 028B0308 */ _t12 = cpu->r[9] + 0x00005BECu;
|
|
/* 028B0308 */ cpu->r[6] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0308 */ cpu->r[9] = _t12;
|
|
/* 028B030C */ _t13 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028B030C */ rbrew_write32(cpu->mem, _t13, cpu->r[6]);
|
|
/* 028B0310 */ _t14 = cpu->r[9] + 0x00000004u;
|
|
/* 028B0310 */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B0314 */ _t15 = cpu->r[31] + 0x00000040u;
|
|
/* 028B0314 */ rbrew_write32(cpu->mem, _t15, cpu->r[8]);
|
|
/* 028B0318 */ _t16 = cpu->r[9] + 0x00000008u;
|
|
/* 028B0318 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B031C */ _t17 = cpu->r[31] + 0x00000044u;
|
|
/* 028B031C */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 028B0320 */ _t18 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028B0320 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0324 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0328 */ _t19 = cpu->r[31] + 0x00000048u;
|
|
/* 028B0328 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028B032C */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028B0330 */ _t20 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0330 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B0334 */ _t21 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B0334 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B0338 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B033C */ Gambit_fn_028B0AE8(cpu);
|
|
/* 028B0340 */ _t22 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028B0340 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028B0344 */ _t23 = cpu->r[29] + 0x00000067u;
|
|
/* 028B0344 */ cpu->r[5] = rbrew_read8(cpu->mem, _t23);
|
|
/* 028B0348 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028B034C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B034C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028B034C */ if (_t25) goto L_028B0394; else goto L_028B0350;
|
|
L_028B0350: ; // 0x28b0350
|
|
/* 028B0350 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000001u);
|
|
/* 028B0354 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0354 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B0354 */ if (_t27) goto L_028B0450; else goto L_028B0358;
|
|
L_028B0358: ; // 0x28b0358
|
|
/* 028B0358 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], 0x00000002u);
|
|
/* 028B035C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B035C */ _t29 = _t28 & 0x00000001u;
|
|
/* 028B035C */ if (_t29) goto L_028B0360; else goto L_028B0394;
|
|
L_028B0360: ; // 0x28b0360
|
|
/* 028B0360 */ cpu->r[6] = 0x00000003u;
|
|
/* 028B0364 */ cpu->r[7] = 0x00000001u;
|
|
/* 028B0368 */ _t30 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0368 */ rbrew_write32(cpu->mem, _t30, cpu->r[6]);
|
|
/* 028B036C */ _t31 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028B036C */ rbrew_write32(cpu->mem, _t31, cpu->r[7]);
|
|
/* 028B0370 */ _t32 = cpu->r[1] + 0x00000048u;
|
|
/* 028B0370 */ cpu->r[28] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B0374 */ _t33 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B0374 */ cpu->r[29] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B0378 */ _t34 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B0378 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B037C */ _t35 = cpu->r[1] + 0x00000050u;
|
|
/* 028B037C */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028B0380 */ cpu->lr = cpu->r[0];
|
|
/* 028B0384 */ _t36 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0384 */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028B0388 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028B038C */ cpu->r[3] = cpu->r[7];
|
|
/* 028B0390 */ return;
|
|
L_028B0394: ; // 0x28b0394
|
|
/* 028B0394 */ _t37 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B0394 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028B0398 */ _t38 = cpu->r[8] + 0x0000002Cu;
|
|
/* 028B0398 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B039C */ _t39 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B039C */ cpu->r[6] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028B03A0 */ cpu->ctr = cpu->r[9];
|
|
/* 028B03A4 */ _t40 = cpu->r[31] + 0x00000010u;
|
|
/* 028B03A4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028B03A8 */ _t41 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028B03A8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B03AC */ cpu->r[3] = cpu->r[28];
|
|
/* 028B03B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B03B4 */ cpu->r[5] = 0x10140000u;
|
|
/* 028B03B8 */ _t42 = cpu->r[5] + 0xFFFF831Cu;
|
|
/* 028B03B8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 028B03BC */ cpu->r[11] = 0x10140000u;
|
|
/* 028B03C0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[1], cpu->f[13]);
|
|
/* 028B03C4 */ _t43 = cpu->r[11] + 0xFFFF8320u;
|
|
/* 028B03C4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028B03C8 */ _t44 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B03C8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028B03C8 */ if (_t45) goto L_028B03F0; else goto L_028B03CC;
|
|
L_028B03CC: ; // 0x28b03cc
|
|
/* 028B03CC */ cpu->f[0] = cpu->f[1] + cpu->f[0];
|
|
/* 028B03D0 */ cpu->f[0] = (uint32_t)(int32_t)cpu->f[0];
|
|
/* 028B03D4 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028B03D8 */ /* nop */
|
|
/* 028B03DC */ _t46 = cpu->r[1] + 0x00000008u;
|
|
/* 028B03DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028B03E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B03E4 */ _t47 = cpu->r[31] + 0x00000018u;
|
|
/* 028B03E4 */ rbrew_write32(cpu->mem, _t47, cpu->r[12]);
|
|
/* 028B03E8 */ _t48 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B03E8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028B03E8 */ if (_t49) goto L_028B0474; else goto L_028B03EC;
|
|
L_028B03EC: ; // 0x28b03ec
|
|
/* 028B03EC */ goto L_028B0410;
|
|
L_028B03F0: ; // 0x28b03f0
|
|
/* 028B03F0 */ cpu->f[13] = cpu->f[1] - cpu->f[0];
|
|
/* 028B03F4 */ cpu->f[13] = (uint32_t)(int32_t)cpu->f[13];
|
|
/* 028B03F8 */ cpu->r[8] = cpu->r[1] + 0x00000008u;
|
|
/* 028B03FC */ /* nop */
|
|
/* 028B0400 */ _t50 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0400 */ cpu->r[12] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028B0404 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0408 */ _t51 = cpu->r[31] + 0x00000018u;
|
|
/* 028B0408 */ rbrew_write32(cpu->mem, _t51, cpu->r[12]);
|
|
/* 028B040C */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B040C */ _t53 = _t52 & 0x00000001u;
|
|
/* 028B040C */ if (_t53) goto L_028B0474; else goto L_028B0410;
|
|
L_028B0410: ; // 0x28b0410
|
|
/* 028B0410 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0414 */ Gambit_fn_028AEC8C(cpu);
|
|
/* 028B0418 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B041C */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B041C */ _t55 = _t54 & 0x00000001u;
|
|
/* 028B041C */ if (_t55) goto L_028B0450; else goto L_028B0420;
|
|
L_028B0420: ; // 0x28b0420
|
|
/* 028B0420 */ _t56 = cpu->r[31] + 0x00000028u;
|
|
/* 028B0420 */ cpu->r[6] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028B0424 */ cpu->r[6] = cpu->r[6] | 0x00000010u;
|
|
/* 028B0428 */ cpu->r[0] = 0x00000003u;
|
|
/* 028B042C */ _t57 = cpu->r[31] + 0x00000028u;
|
|
/* 028B042C */ rbrew_write32(cpu->mem, _t57, cpu->r[6]);
|
|
/* 028B0430 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B0434 */ _t58 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0434 */ rbrew_write32(cpu->mem, _t58, cpu->r[0]);
|
|
/* 028B0438 */ _t59 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B0438 */ cpu->r[12] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028B043C */ _t60 = cpu->r[12] + 0x00000068u;
|
|
/* 028B043C */ cpu->r[3] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028B0440 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0444 */ _t61 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B0444 */ cpu->r[29] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028B0448 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0448 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028B0448 */ if (_t63) goto L_028B04BC; else goto L_028B044C;
|
|
L_028B044C: ; // 0x28b044c
|
|
/* 028B044C */ goto L_028B0494;
|
|
L_028B0450: ; // 0x28b0450
|
|
/* 028B0450 */ _t64 = cpu->r[1] + 0x00000048u;
|
|
/* 028B0450 */ cpu->r[28] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028B0454 */ _t65 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B0454 */ cpu->r[29] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028B0458 */ _t66 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B0458 */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028B045C */ _t67 = cpu->r[1] + 0x00000050u;
|
|
/* 028B045C */ cpu->r[30] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028B0460 */ cpu->lr = cpu->r[0];
|
|
/* 028B0464 */ _t68 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0464 */ cpu->r[31] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028B0468 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028B046C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0470 */ return;
|
|
L_028B0474: ; // 0x28b0474
|
|
/* 028B0474 */ cpu->r[0] = 0x00000002u;
|
|
/* 028B0478 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B047C */ _t69 = cpu->r[31] + 0x00000014u;
|
|
/* 028B047C */ rbrew_write32(cpu->mem, _t69, cpu->r[0]);
|
|
/* 028B0480 */ _t70 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B0480 */ cpu->r[12] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028B0484 */ _t71 = cpu->r[12] + 0x00000068u;
|
|
/* 028B0484 */ cpu->r[3] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028B0488 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B048C */ _t72 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B048C */ cpu->r[29] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028B0490 */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0490 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028B0490 */ if (_t74) goto L_028B04BC; else goto L_028B0494;
|
|
L_028B0494: ; // 0x28b0494
|
|
/* 028B0494 */ _t75 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0494 */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028B0498 */ _t76 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0498 */ rbrew_write32(cpu->mem, _t76, cpu->r[29]);
|
|
/* 028B049C */ _t77 = cpu->r[1] + 0x00000018u;
|
|
/* 028B049C */ rbrew_write32(cpu->mem, _t77, cpu->r[0]);
|
|
/* 028B04A0 */ _t78 = cpu->r[1] + 0x00000020u;
|
|
/* 028B04A0 */ rbrew_write32(cpu->mem, _t78, cpu->r[30]);
|
|
/* 028B04A4 */ _t79 = cpu->r[1] + 0x00000024u;
|
|
/* 028B04A4 */ rbrew_write32(cpu->mem, _t79, cpu->r[31]);
|
|
/* 028B04A8 */ _t80 = cpu->r[3] + 0x00000000u;
|
|
/* 028B04A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028B04AC */ _t81 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B04AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028B04B0 */ cpu->ctr = cpu->r[0];
|
|
/* 028B04B4 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028B04B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B04BC: ; // 0x28b04bc
|
|
/* 028B04BC */ _t82 = cpu->r[29] + 0x00000060u;
|
|
/* 028B04BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028B04C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B04C4 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B04C4 */ _t84 = _t83 & 0x00000001u;
|
|
/* 028B04C4 */ if (_t84) goto L_028B04F0; else goto L_028B04C8;
|
|
L_028B04C8: ; // 0x28b04c8
|
|
/* 028B04C8 */ _t85 = cpu->r[31] + 0x00000010u;
|
|
/* 028B04C8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028B04CC */ _t86 = cpu->r[1] + 0x00000038u;
|
|
/* 028B04CC */ rbrew_write32(cpu->mem, _t86, cpu->r[29]);
|
|
/* 028B04D0 */ _t87 = cpu->r[1] + 0x00000034u;
|
|
/* 028B04D0 */ rbrew_write32(cpu->mem, _t87, cpu->r[7]);
|
|
/* 028B04D4 */ _t88 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B04D4 */ rbrew_write32(cpu->mem, _t88, cpu->r[30]);
|
|
/* 028B04D8 */ _t89 = cpu->r[1] + 0x00000040u;
|
|
/* 028B04D8 */ rbrew_write32(cpu->mem, _t89, cpu->r[31]);
|
|
/* 028B04DC */ _t90 = cpu->r[3] + 0x00000000u;
|
|
/* 028B04DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028B04E0 */ _t91 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028B04E0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028B04E4 */ cpu->ctr = cpu->r[11];
|
|
/* 028B04E8 */ cpu->r[4] = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B04EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B04F0: ; // 0x28b04f0
|
|
/* 028B04F0 */ _t92 = cpu->r[1] + 0x00000048u;
|
|
/* 028B04F0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t92);
|
|
/* 028B04F4 */ _t93 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B04F4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028B04F8 */ _t94 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B04F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028B04FC */ _t95 = cpu->r[1] + 0x00000050u;
|
|
/* 028B04FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028B0500 */ cpu->lr = cpu->r[0];
|
|
/* 028B0504 */ _t96 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0504 */ cpu->r[31] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028B0508 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028B050C */ cpu->r[3] = 0x00000001u;
|
|
/* 028B0510 */ return;
|
|
}
|
|
|
|
// fn_028B0514 @ 0x28b0514
|
|
void Gambit_fn_028B0514(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0514: ; // 0x28b0514
|
|
/* 028B0514 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0518 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0518 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0518 */ cpu->r[1] = _t0;
|
|
/* 028B051C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B051C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B0520 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0524 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0524 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B0528 */ _t3 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0528 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B052C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0530 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0530 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0530 */ if (_t5) goto L_028B0558; else goto L_028B0534;
|
|
L_028B0534: ; // 0x28b0534
|
|
/* 028B0534 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0538 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028B053C */ _t6 = cpu->r[31] + 0x00000010u;
|
|
/* 028B053C */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0540 */ Gambit_fn_028B0C6C(cpu);
|
|
/* 028B0544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0548 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0548 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B0548 */ if (_t8) goto L_028B0558; else goto L_028B054C;
|
|
L_028B054C: ; // 0x28b054c
|
|
/* 028B054C */ _t9 = cpu->r[31] + 0x00000028u;
|
|
/* 028B054C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0550 */ cpu->r[0] = cpu->r[0] | 0x00000001u;
|
|
/* 028B0554 */ _t10 = cpu->r[31] + 0x00000028u;
|
|
/* 028B0554 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
L_028B0558: ; // 0x28b0558
|
|
/* 028B0558 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0558 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B055C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B055C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0560 */ cpu->lr = cpu->r[0];
|
|
/* 028B0564 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0568 */ return;
|
|
}
|
|
|
|
// fn_028B0518 @ 0x28b0518
|
|
void Gambit_fn_028B0518(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0518: ; // 0x28b0518
|
|
/* 028B0518 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0518 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0518 */ cpu->r[1] = _t0;
|
|
/* 028B051C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B051C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B0520 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0524 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0524 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B0528 */ _t3 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0528 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B052C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0530 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0530 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0530 */ if (_t5) goto L_028B0558; else goto L_028B0534;
|
|
L_028B0534: ; // 0x28b0534
|
|
/* 028B0534 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0538 */ Gambit_fn_028AE5C8(cpu);
|
|
/* 028B053C */ _t6 = cpu->r[31] + 0x00000010u;
|
|
/* 028B053C */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0540 */ Gambit_fn_028B0C6C(cpu);
|
|
/* 028B0544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0548 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0548 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B0548 */ if (_t8) goto L_028B0558; else goto L_028B054C;
|
|
L_028B054C: ; // 0x28b054c
|
|
/* 028B054C */ _t9 = cpu->r[31] + 0x00000028u;
|
|
/* 028B054C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0550 */ cpu->r[0] = cpu->r[0] | 0x00000001u;
|
|
/* 028B0554 */ _t10 = cpu->r[31] + 0x00000028u;
|
|
/* 028B0554 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
L_028B0558: ; // 0x28b0558
|
|
/* 028B0558 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0558 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B055C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B055C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0560 */ cpu->lr = cpu->r[0];
|
|
/* 028B0564 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0568 */ return;
|
|
}
|
|
|
|
// fn_028B056C @ 0x28b056c
|
|
void Gambit_fn_028B056C(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_028B056C: ; // 0x28b056c
|
|
/* 028B056C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0570 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0570 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B0570 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B0570 */ goto L_028B0574;
|
|
L_028B0574: ; // 0x28b0574
|
|
/* 028B0574 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B0574 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B0578 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0578 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B0578 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B0578 */ goto L_028B057C;
|
|
L_028B057C: ; // 0x28b057c
|
|
/* 028B057C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B0580 @ 0x28b0580
|
|
void Gambit_fn_028B0580(CPUState* cpu) {
|
|
L_028B0580: ; // 0x28b0580
|
|
/* 028B0580 */ return;
|
|
}
|
|
|
|
// fn_028B0584 @ 0x28b0584
|
|
void Gambit_fn_028B0584(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_028B0584: ; // 0x28b0584
|
|
/* 028B0584 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0588 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0588 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B0588 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B0588 */ goto L_028B058C;
|
|
L_028B058C: ; // 0x28b058c
|
|
/* 028B058C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B058C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B0590 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0590 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B0590 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B0590 */ goto L_028B0594;
|
|
L_028B0594: ; // 0x28b0594
|
|
/* 028B0594 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B0598 @ 0x28b0598
|
|
void Gambit_fn_028B0598(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B0598: ; // 0x28b0598
|
|
/* 028B0598 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028B0598 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B059C */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028B059C */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B05A0 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028B05A4 */ cpu->r[11] = 0x10110000u;
|
|
/* 028B05A8 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028B05A8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028B05AC */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028B05AC */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028B05B0 */ return;
|
|
}
|
|
|
|
// fn_028B05B4 @ 0x28b05b4
|
|
void Gambit_fn_028B05B4(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_028B05B4: ; // 0x28b05b4
|
|
/* 028B05B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B05B8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B05B8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B05B8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B05B8 */ goto L_028B05BC;
|
|
L_028B05BC: ; // 0x28b05bc
|
|
/* 028B05BC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B05BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B05C0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B05C0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B05C0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B05C0 */ goto L_028B05C4;
|
|
L_028B05C4: ; // 0x28b05c4
|
|
/* 028B05C4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B05C8 @ 0x28b05c8
|
|
void Gambit_fn_028B05C8(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_028B05C8: ; // 0x28b05c8
|
|
/* 028B05C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B05CC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B05CC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B05CC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B05CC */ goto L_028B05D0;
|
|
L_028B05D0: ; // 0x28b05d0
|
|
/* 028B05D0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B05D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B05D4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B05D4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B05D4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B05D4 */ goto L_028B05D8;
|
|
L_028B05D8: ; // 0x28b05d8
|
|
/* 028B05D8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B05DC @ 0x28b05dc
|
|
void Gambit_fn_028B05DC(CPUState* cpu) {
|
|
L_028B05DC: ; // 0x28b05dc
|
|
/* 028B05DC */ return;
|
|
}
|
|
|
|
// fn_028B05E0 @ 0x28b05e0
|
|
void Gambit_fn_028B05E0(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_028B05E0: ; // 0x28b05e0
|
|
/* 028B05E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B05E4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B05E4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B05E4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B05E4 */ goto L_028B05E8;
|
|
L_028B05E8: ; // 0x28b05e8
|
|
/* 028B05E8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B05E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B05EC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B05EC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B05EC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B05EC */ goto L_028B05F0;
|
|
L_028B05F0: ; // 0x28b05f0
|
|
/* 028B05F0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B05F4 @ 0x28b05f4
|
|
void Gambit_fn_028B05F4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B05F4: ; // 0x28b05f4
|
|
/* 028B05F4 */ _t0 = cpu->r[3] + 0x00000034u;
|
|
/* 028B05F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B05F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028B05FC */ cpu->r[0] = 0x00000000u;
|
|
/* 028B0600 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0600 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B0600 */ if (_t2) goto L_028B0618; else goto L_028B0604;
|
|
L_028B0604: ; // 0x28b0604
|
|
/* 028B0604 */ _t3 = cpu->r[3] + 0x00000038u;
|
|
/* 028B0604 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B0608 */ _t4 = cpu->r[11] + 0x00000014u;
|
|
/* 028B0608 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B060C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[11]);
|
|
/* 028B0610 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0610 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B0610 */ if (_t6) goto L_028B0614; else goto L_028B0618;
|
|
L_028B0614: ; // 0x28b0614
|
|
/* 028B0614 */ cpu->r[0] = 0x00000001u;
|
|
L_028B0618: ; // 0x28b0618
|
|
/* 028B0618 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028B061C */ cpu->r[10] = cpu->r[0] + 0xFFFFFFFFu;
|
|
/* 028B0620 */ cpu->r[3] = cpu->r[0] - cpu->r[10];
|
|
/* 028B0624 */ return;
|
|
}
|
|
|
|
// fn_028B0628 @ 0x28b0628
|
|
void Gambit_fn_028B0628(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_028B0628: ; // 0x28b0628
|
|
/* 028B0628 */ cpu->r[0] = cpu->lr;
|
|
/* 028B062C */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028B062C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B062C */ cpu->r[1] = _t0;
|
|
/* 028B0630 */ _t1 = cpu->r[1] + 0x00000048u;
|
|
/* 028B0630 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0634 */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028B0634 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B0638 */ _t3 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B0638 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B063C */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B0640 */ _t4 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0640 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B0644 */ _t5 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B0644 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0648 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B064C */ _t6 = cpu->r[12] + 0x00000068u;
|
|
/* 028B064C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0650 */ _t7 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0650 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0654 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0658 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B065C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B065C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B065C */ if (_t9) goto L_028B068C; else goto L_028B0660;
|
|
L_028B0660: ; // 0x28b0660
|
|
/* 028B0660 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0660 */ cpu->r[6] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B0664 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0664 */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 028B0668 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0668 */ rbrew_write32(cpu->mem, _t12, cpu->r[6]);
|
|
/* 028B066C */ _t13 = cpu->r[1] + 0x00000020u;
|
|
/* 028B066C */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
/* 028B0670 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0670 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028B0674 */ _t15 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0674 */ rbrew_write32(cpu->mem, _t15, cpu->r[29]);
|
|
/* 028B0678 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B0678 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B067C */ _t17 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B067C */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0680 */ cpu->ctr = cpu->r[8];
|
|
/* 028B0684 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0688 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B068C: ; // 0x28b068c
|
|
/* 028B068C */ _t18 = cpu->r[30] + 0x00000060u;
|
|
/* 028B068C */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0690 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0694 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0694 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B0694 */ if (_t20) goto L_028B06C4; else goto L_028B0698;
|
|
L_028B0698: ; // 0x28b0698
|
|
/* 028B0698 */ _t21 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0698 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B069C */ _t22 = cpu->r[1] + 0x00000038u;
|
|
/* 028B069C */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028B06A0 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B06A0 */ rbrew_write32(cpu->mem, _t23, cpu->r[9]);
|
|
/* 028B06A4 */ _t24 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B06A4 */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 028B06A8 */ _t25 = cpu->r[1] + 0x00000030u;
|
|
/* 028B06A8 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028B06AC */ _t26 = cpu->r[1] + 0x00000034u;
|
|
/* 028B06AC */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
/* 028B06B0 */ _t27 = cpu->r[3] + 0x00000000u;
|
|
/* 028B06B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B06B4 */ _t28 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028B06B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B06B8 */ cpu->ctr = cpu->r[0];
|
|
/* 028B06BC */ cpu->r[4] = cpu->r[1] + 0x00000024u;
|
|
/* 028B06C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B06C4: ; // 0x28b06c4
|
|
/* 028B06C4 */ _t29 = cpu->r[1] + 0x00000044u;
|
|
/* 028B06C4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B06C8 */ _t30 = cpu->r[1] + 0x00000054u;
|
|
/* 028B06C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B06CC */ _t31 = cpu->r[1] + 0x00000048u;
|
|
/* 028B06CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B06D0 */ cpu->lr = cpu->r[0];
|
|
/* 028B06D4 */ _t32 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B06D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B06D8 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028B06DC */ return;
|
|
}
|
|
|
|
// fn_028B062C @ 0x28b062c
|
|
void Gambit_fn_028B062C(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_028B062C: ; // 0x28b062c
|
|
/* 028B062C */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028B062C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B062C */ cpu->r[1] = _t0;
|
|
/* 028B0630 */ _t1 = cpu->r[1] + 0x00000048u;
|
|
/* 028B0630 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0634 */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028B0634 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B0638 */ _t3 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B0638 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B063C */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B0640 */ _t4 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0640 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B0644 */ _t5 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B0644 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0648 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B064C */ _t6 = cpu->r[12] + 0x00000068u;
|
|
/* 028B064C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0650 */ _t7 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0650 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0654 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0658 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B065C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B065C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B065C */ if (_t9) goto L_028B068C; else goto L_028B0660;
|
|
L_028B0660: ; // 0x28b0660
|
|
/* 028B0660 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0660 */ cpu->r[6] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B0664 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0664 */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 028B0668 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0668 */ rbrew_write32(cpu->mem, _t12, cpu->r[6]);
|
|
/* 028B066C */ _t13 = cpu->r[1] + 0x00000020u;
|
|
/* 028B066C */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
/* 028B0670 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0670 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028B0674 */ _t15 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0674 */ rbrew_write32(cpu->mem, _t15, cpu->r[29]);
|
|
/* 028B0678 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B0678 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B067C */ _t17 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B067C */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0680 */ cpu->ctr = cpu->r[8];
|
|
/* 028B0684 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0688 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B068C: ; // 0x28b068c
|
|
/* 028B068C */ _t18 = cpu->r[30] + 0x00000060u;
|
|
/* 028B068C */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0690 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0694 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0694 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B0694 */ if (_t20) goto L_028B06C4; else goto L_028B0698;
|
|
L_028B0698: ; // 0x28b0698
|
|
/* 028B0698 */ _t21 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0698 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B069C */ _t22 = cpu->r[1] + 0x00000038u;
|
|
/* 028B069C */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028B06A0 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B06A0 */ rbrew_write32(cpu->mem, _t23, cpu->r[9]);
|
|
/* 028B06A4 */ _t24 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B06A4 */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 028B06A8 */ _t25 = cpu->r[1] + 0x00000030u;
|
|
/* 028B06A8 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028B06AC */ _t26 = cpu->r[1] + 0x00000034u;
|
|
/* 028B06AC */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
/* 028B06B0 */ _t27 = cpu->r[3] + 0x00000000u;
|
|
/* 028B06B0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B06B4 */ _t28 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028B06B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B06B8 */ cpu->ctr = cpu->r[0];
|
|
/* 028B06BC */ cpu->r[4] = cpu->r[1] + 0x00000024u;
|
|
/* 028B06C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B06C4: ; // 0x28b06c4
|
|
/* 028B06C4 */ _t29 = cpu->r[1] + 0x00000044u;
|
|
/* 028B06C4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B06C8 */ _t30 = cpu->r[1] + 0x00000054u;
|
|
/* 028B06C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B06CC */ _t31 = cpu->r[1] + 0x00000048u;
|
|
/* 028B06CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B06D0 */ cpu->lr = cpu->r[0];
|
|
/* 028B06D4 */ _t32 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B06D4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B06D8 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028B06DC */ return;
|
|
}
|
|
|
|
// fn_028B06E0 @ 0x28b06e0
|
|
void Gambit_fn_028B06E0(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_028B06E0: ; // 0x28b06e0
|
|
/* 028B06E0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B06E4 */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028B06E4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B06E4 */ cpu->r[1] = _t0;
|
|
/* 028B06E8 */ _t1 = cpu->r[1] + 0x00000048u;
|
|
/* 028B06E8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B06EC */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028B06EC */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B06F0 */ _t3 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B06F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B06F4 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B06F8 */ _t4 = cpu->r[1] + 0x00000054u;
|
|
/* 028B06F8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B06FC */ _t5 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B06FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0700 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0704 */ _t6 = cpu->r[12] + 0x00000068u;
|
|
/* 028B0704 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0708 */ _t7 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0708 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B070C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0710 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B0714 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0714 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B0714 */ if (_t9) goto L_028B0744; else goto L_028B0718;
|
|
L_028B0718: ; // 0x28b0718
|
|
/* 028B0718 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0718 */ cpu->r[6] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B071C */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B071C */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 028B0720 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0720 */ rbrew_write32(cpu->mem, _t12, cpu->r[6]);
|
|
/* 028B0724 */ _t13 = cpu->r[1] + 0x00000020u;
|
|
/* 028B0724 */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
/* 028B0728 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0728 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028B072C */ _t15 = cpu->r[1] + 0x00000018u;
|
|
/* 028B072C */ rbrew_write32(cpu->mem, _t15, cpu->r[29]);
|
|
/* 028B0730 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B0730 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0734 */ _t17 = cpu->r[7] + 0x00000014u;
|
|
/* 028B0734 */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0738 */ cpu->ctr = cpu->r[8];
|
|
/* 028B073C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0740 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B0744: ; // 0x28b0744
|
|
/* 028B0744 */ _t18 = cpu->r[30] + 0x00000060u;
|
|
/* 028B0744 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0748 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B074C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B074C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B074C */ if (_t20) goto L_028B077C; else goto L_028B0750;
|
|
L_028B0750: ; // 0x28b0750
|
|
/* 028B0750 */ _t21 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0750 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B0754 */ _t22 = cpu->r[1] + 0x00000038u;
|
|
/* 028B0754 */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028B0758 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B0758 */ rbrew_write32(cpu->mem, _t23, cpu->r[9]);
|
|
/* 028B075C */ _t24 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B075C */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 028B0760 */ _t25 = cpu->r[1] + 0x00000030u;
|
|
/* 028B0760 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028B0764 */ _t26 = cpu->r[1] + 0x00000034u;
|
|
/* 028B0764 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
/* 028B0768 */ _t27 = cpu->r[3] + 0x00000000u;
|
|
/* 028B0768 */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B076C */ _t28 = cpu->r[10] + 0x00000014u;
|
|
/* 028B076C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B0770 */ cpu->ctr = cpu->r[0];
|
|
/* 028B0774 */ cpu->r[4] = cpu->r[1] + 0x00000024u;
|
|
/* 028B0778 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B077C: ; // 0x28b077c
|
|
/* 028B077C */ _t29 = cpu->r[1] + 0x00000044u;
|
|
/* 028B077C */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B0780 */ _t30 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0780 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B0784 */ _t31 = cpu->r[1] + 0x00000048u;
|
|
/* 028B0784 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B0788 */ cpu->lr = cpu->r[0];
|
|
/* 028B078C */ _t32 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B078C */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B0790 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028B0794 */ return;
|
|
}
|
|
|
|
// fn_028B06E4 @ 0x28b06e4
|
|
void Gambit_fn_028B06E4(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_028B06E4: ; // 0x28b06e4
|
|
/* 028B06E4 */ _t0 = cpu->r[1] + 0xFFFFFFB0u;
|
|
/* 028B06E4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B06E4 */ cpu->r[1] = _t0;
|
|
/* 028B06E8 */ _t1 = cpu->r[1] + 0x00000048u;
|
|
/* 028B06E8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B06EC */ _t2 = cpu->r[1] + 0x00000044u;
|
|
/* 028B06EC */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B06F0 */ _t3 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B06F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B06F4 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B06F8 */ _t4 = cpu->r[1] + 0x00000054u;
|
|
/* 028B06F8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B06FC */ _t5 = cpu->r[12] + 0xFFFF9A5Cu;
|
|
/* 028B06FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0700 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0704 */ _t6 = cpu->r[12] + 0x00000068u;
|
|
/* 028B0704 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0708 */ _t7 = cpu->r[31] + 0x00000010u;
|
|
/* 028B0708 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B070C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0710 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B0714 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0714 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B0714 */ if (_t9) goto L_028B0744; else goto L_028B0718;
|
|
L_028B0718: ; // 0x28b0718
|
|
/* 028B0718 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0718 */ cpu->r[6] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B071C */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B071C */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 028B0720 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0720 */ rbrew_write32(cpu->mem, _t12, cpu->r[6]);
|
|
/* 028B0724 */ _t13 = cpu->r[1] + 0x00000020u;
|
|
/* 028B0724 */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
/* 028B0728 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0728 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 028B072C */ _t15 = cpu->r[1] + 0x00000018u;
|
|
/* 028B072C */ rbrew_write32(cpu->mem, _t15, cpu->r[29]);
|
|
/* 028B0730 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B0730 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0734 */ _t17 = cpu->r[7] + 0x00000014u;
|
|
/* 028B0734 */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0738 */ cpu->ctr = cpu->r[8];
|
|
/* 028B073C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0740 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B0744: ; // 0x28b0744
|
|
/* 028B0744 */ _t18 = cpu->r[30] + 0x00000060u;
|
|
/* 028B0744 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0748 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B074C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B074C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B074C */ if (_t20) goto L_028B077C; else goto L_028B0750;
|
|
L_028B0750: ; // 0x28b0750
|
|
/* 028B0750 */ _t21 = cpu->r[31] + 0x00000014u;
|
|
/* 028B0750 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B0754 */ _t22 = cpu->r[1] + 0x00000038u;
|
|
/* 028B0754 */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028B0758 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B0758 */ rbrew_write32(cpu->mem, _t23, cpu->r[9]);
|
|
/* 028B075C */ _t24 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B075C */ rbrew_write32(cpu->mem, _t24, cpu->r[31]);
|
|
/* 028B0760 */ _t25 = cpu->r[1] + 0x00000030u;
|
|
/* 028B0760 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028B0764 */ _t26 = cpu->r[1] + 0x00000034u;
|
|
/* 028B0764 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
/* 028B0768 */ _t27 = cpu->r[3] + 0x00000000u;
|
|
/* 028B0768 */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B076C */ _t28 = cpu->r[10] + 0x00000014u;
|
|
/* 028B076C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B0770 */ cpu->ctr = cpu->r[0];
|
|
/* 028B0774 */ cpu->r[4] = cpu->r[1] + 0x00000024u;
|
|
/* 028B0778 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B077C: ; // 0x28b077c
|
|
/* 028B077C */ _t29 = cpu->r[1] + 0x00000044u;
|
|
/* 028B077C */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B0780 */ _t30 = cpu->r[1] + 0x00000054u;
|
|
/* 028B0780 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B0784 */ _t31 = cpu->r[1] + 0x00000048u;
|
|
/* 028B0784 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B0788 */ cpu->lr = cpu->r[0];
|
|
/* 028B078C */ _t32 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B078C */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B0790 */ cpu->r[1] = cpu->r[1] + 0x00000050u;
|
|
/* 028B0794 */ return;
|
|
}
|
|
|
|
// fn_028B0798 @ 0x28b0798
|
|
void Gambit_fn_028B0798(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B0798: ; // 0x28b0798
|
|
/* 028B0798 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B079C */ cpu->r[0] = 0x000000FFu;
|
|
/* 028B07A0 */ _t0 = cpu->r[3] + 0x00000130u;
|
|
/* 028B07A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[12]);
|
|
/* 028B07A4 */ _t1 = cpu->r[3] + 0x0000004Eu;
|
|
/* 028B07A4 */ rbrew_write8(cpu->mem, _t1, (uint8_t)cpu->r[0]);
|
|
/* 028B07A8 */ _t2 = cpu->r[3] + 0x00000138u;
|
|
/* 028B07A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[12]);
|
|
/* 028B07AC */ _t3 = cpu->r[3] + 0x0000012Cu;
|
|
/* 028B07AC */ rbrew_write32(cpu->mem, _t3, cpu->r[12]);
|
|
/* 028B07B0 */ return;
|
|
}
|
|
|
|
// fn_028B07B4 @ 0x28b07b4
|
|
void Gambit_fn_028B07B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028B07B4: ; // 0x28b07b4
|
|
/* 028B07B4 */ _t0 = cpu->r[3] + 0x00000050u;
|
|
/* 028B07B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B07B8 */ _t1 = cpu->r[12] + 0x0000002Cu;
|
|
/* 028B07B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B07BC */ cpu->ctr = cpu->r[0];
|
|
/* 028B07C0 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_028B07C4 @ 0x28b07c4
|
|
void Gambit_fn_028B07C4(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_028B07C4: ; // 0x28b07c4
|
|
/* 028B07C4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B07C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B07C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B07C8 */ cpu->r[1] = _t0;
|
|
/* 028B07CC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B07CC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B07D0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B07D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B07D4 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B07D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B07D8 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B07D8 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B07DC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B07DC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B07E0 */ _t6 = cpu->r[3] + 0x0000012Cu;
|
|
/* 028B07E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B07E4 */ _t7 = cpu->r[3] + 0x00000030u;
|
|
/* 028B07E4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B07E8 */ cpu->r[0] = cpu->r[0] | 0x00400000u;
|
|
/* 028B07EC */ _t8 = cpu->r[3] + 0x00000038u;
|
|
/* 028B07EC */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B07F0 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B07F4 */ cpu->r[11] = cpu->r[3] + 0x0000002Cu;
|
|
/* 028B07F8 */ cpu->r[29] = cpu->r[10] - cpu->r[30];
|
|
/* 028B07FC */ cpu->r[31] = cpu->r[11] - cpu->r[30];
|
|
/* 028B0800 */ _t9 = cpu->r[3] + 0x0000012Cu;
|
|
/* 028B0800 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028B0804 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B0808 */ _t10 = cpu->r[3] + 0x00000128u;
|
|
/* 028B0808 */ rbrew_write32(cpu->mem, _t10, cpu->r[28]);
|
|
/* 028B080C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B080C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B080C */ if (_t12) goto L_028B0830; else goto L_028B0810;
|
|
L_028B0810: ; // 0x28b0810
|
|
/* 028B0810 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B0814 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B0818 */ Gambit_fn_028B0288(cpu);
|
|
/* 028B081C */ cpu->r[9] = cpu->r[29] + cpu->r[30];
|
|
/* 028B0820 */ _t13 = cpu->r[9] + 0x00000004u;
|
|
/* 028B0820 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B0824 */ cpu->r[29] = cpu->r[0] - cpu->r[30];
|
|
/* 028B0828 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B082C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B082C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B082C */ if (_t15) goto L_028B0830; else goto L_028B0810;
|
|
L_028B0830: ; // 0x28b0830
|
|
/* 028B0830 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0830 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0834 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0834 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0838 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0838 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B083C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B083C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B0840 */ cpu->lr = cpu->r[0];
|
|
/* 028B0844 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0844 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B0848 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B084C */ return;
|
|
}
|
|
|
|
// fn_028B07C8 @ 0x28b07c8
|
|
void Gambit_fn_028B07C8(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_028B07C8: ; // 0x28b07c8
|
|
/* 028B07C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B07C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B07C8 */ cpu->r[1] = _t0;
|
|
/* 028B07CC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B07CC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B07D0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B07D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B07D4 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B07D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B07D8 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B07D8 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B07DC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B07DC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B07E0 */ _t6 = cpu->r[3] + 0x0000012Cu;
|
|
/* 028B07E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B07E4 */ _t7 = cpu->r[3] + 0x00000030u;
|
|
/* 028B07E4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B07E8 */ cpu->r[0] = cpu->r[0] | 0x00400000u;
|
|
/* 028B07EC */ _t8 = cpu->r[3] + 0x00000038u;
|
|
/* 028B07EC */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B07F0 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B07F4 */ cpu->r[11] = cpu->r[3] + 0x0000002Cu;
|
|
/* 028B07F8 */ cpu->r[29] = cpu->r[10] - cpu->r[30];
|
|
/* 028B07FC */ cpu->r[31] = cpu->r[11] - cpu->r[30];
|
|
/* 028B0800 */ _t9 = cpu->r[3] + 0x0000012Cu;
|
|
/* 028B0800 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028B0804 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B0808 */ _t10 = cpu->r[3] + 0x00000128u;
|
|
/* 028B0808 */ rbrew_write32(cpu->mem, _t10, cpu->r[28]);
|
|
/* 028B080C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B080C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B080C */ if (_t12) goto L_028B0830; else goto L_028B0810;
|
|
L_028B0810: ; // 0x28b0810
|
|
/* 028B0810 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B0814 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B0818 */ Gambit_fn_028B0288(cpu);
|
|
/* 028B081C */ cpu->r[9] = cpu->r[29] + cpu->r[30];
|
|
/* 028B0820 */ _t13 = cpu->r[9] + 0x00000004u;
|
|
/* 028B0820 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B0824 */ cpu->r[29] = cpu->r[0] - cpu->r[30];
|
|
/* 028B0828 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B082C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B082C */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B082C */ if (_t15) goto L_028B0830; else goto L_028B0810;
|
|
L_028B0830: ; // 0x28b0830
|
|
/* 028B0830 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0830 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0834 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0834 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0838 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0838 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B083C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B083C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B0840 */ cpu->lr = cpu->r[0];
|
|
/* 028B0844 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0844 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B0848 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B084C */ return;
|
|
}
|
|
|
|
// fn_028B0850 @ 0x28b0850
|
|
void Gambit_fn_028B0850(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B0850: ; // 0x28b0850
|
|
/* 028B0850 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0854 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B0854 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0854 */ cpu->r[1] = _t0;
|
|
/* 028B0858 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0858 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B085C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B085C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B0860 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0860 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B0864 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0864 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B0868 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0868 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B086C */ _t6 = cpu->r[3] + 0x00000038u;
|
|
/* 028B086C */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0870 */ cpu->r[0] = cpu->r[3] + 0x0000002Cu;
|
|
/* 028B0874 */ _t7 = cpu->r[3] + 0x00000030u;
|
|
/* 028B0874 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0878 */ cpu->r[31] = cpu->r[0] - cpu->r[30];
|
|
/* 028B087C */ cpu->r[29] = cpu->r[10] - cpu->r[30];
|
|
/* 028B0880 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B0884 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B0888 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0888 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B0888 */ if (_t9) goto L_028B08AC; else goto L_028B088C;
|
|
L_028B088C: ; // 0x28b088c
|
|
/* 028B088C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B0890 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B0894 */ Gambit_fn_028B02A8(cpu);
|
|
/* 028B0898 */ cpu->r[11] = cpu->r[29] + cpu->r[30];
|
|
/* 028B089C */ _t10 = cpu->r[11] + 0x00000004u;
|
|
/* 028B089C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B08A0 */ cpu->r[29] = cpu->r[0] - cpu->r[30];
|
|
/* 028B08A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B08A8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B08A8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B08A8 */ if (_t12) goto L_028B08AC; else goto L_028B088C;
|
|
L_028B08AC: ; // 0x28b08ac
|
|
/* 028B08AC */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B08AC */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B08B0 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B08B0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B08B4 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B08B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B08B8 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B08B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B08BC */ cpu->lr = cpu->r[0];
|
|
/* 028B08C0 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B08C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B08C4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B08C8 */ return;
|
|
}
|
|
|
|
// fn_028B0854 @ 0x28b0854
|
|
void Gambit_fn_028B0854(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B0854: ; // 0x28b0854
|
|
/* 028B0854 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B0854 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0854 */ cpu->r[1] = _t0;
|
|
/* 028B0858 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0858 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B085C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B085C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B0860 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0860 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B0864 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0864 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B0868 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0868 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B086C */ _t6 = cpu->r[3] + 0x00000038u;
|
|
/* 028B086C */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0870 */ cpu->r[0] = cpu->r[3] + 0x0000002Cu;
|
|
/* 028B0874 */ _t7 = cpu->r[3] + 0x00000030u;
|
|
/* 028B0874 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0878 */ cpu->r[31] = cpu->r[0] - cpu->r[30];
|
|
/* 028B087C */ cpu->r[29] = cpu->r[10] - cpu->r[30];
|
|
/* 028B0880 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B0884 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B0888 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0888 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B0888 */ if (_t9) goto L_028B08AC; else goto L_028B088C;
|
|
L_028B088C: ; // 0x28b088c
|
|
/* 028B088C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B0890 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B0894 */ Gambit_fn_028B02A8(cpu);
|
|
/* 028B0898 */ cpu->r[11] = cpu->r[29] + cpu->r[30];
|
|
/* 028B089C */ _t10 = cpu->r[11] + 0x00000004u;
|
|
/* 028B089C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B08A0 */ cpu->r[29] = cpu->r[0] - cpu->r[30];
|
|
/* 028B08A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B08A8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B08A8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B08A8 */ if (_t12) goto L_028B08AC; else goto L_028B088C;
|
|
L_028B08AC: ; // 0x28b08ac
|
|
/* 028B08AC */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B08AC */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B08B0 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B08B0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B08B4 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B08B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B08B8 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B08B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B08BC */ cpu->lr = cpu->r[0];
|
|
/* 028B08C0 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B08C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B08C4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B08C8 */ return;
|
|
}
|
|
|
|
// fn_028B08CC @ 0x28b08cc
|
|
void Gambit_fn_028B08CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028B08CC: ; // 0x28b08cc
|
|
/* 028B08CC */ cpu->r[0] = cpu->lr;
|
|
/* 028B08D0 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B08D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B08D4 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B08D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B08D4 */ cpu->r[1] = _t1;
|
|
/* 028B08D8 */ _t2 = cpu->r[3] + 0x00000034u;
|
|
/* 028B08D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B08DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028B08E0 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B08E0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B08E0 */ if (_t4) goto L_028B0928; else goto L_028B08E4;
|
|
L_028B08E4: ; // 0x28b08e4
|
|
/* 028B08E4 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B08E4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B08E4 */ if (_t6) goto L_028B0904; else goto L_028B08E8;
|
|
L_028B08E8: ; // 0x28b08e8
|
|
/* 028B08E8 */ _t7 = cpu->r[3] + 0x00000038u;
|
|
/* 028B08E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B08EC */ _t8 = cpu->r[3] + 0x00000030u;
|
|
/* 028B08EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B08F0 */ cpu->r[3] = cpu->r[0] - cpu->r[12];
|
|
/* 028B08F4 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B08F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B08F8 */ cpu->lr = cpu->r[0];
|
|
/* 028B08FC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0900 */ return;
|
|
L_028B0904: ; // 0x28b0904
|
|
/* 028B0904 */ _t10 = cpu->r[3] + 0x00000010u;
|
|
/* 028B0904 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B0908 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B090C */ cpu->r[6] = 0x10140000u;
|
|
/* 028B0910 */ _t11 = cpu->r[12] + 0x00000020u;
|
|
/* 028B0910 */ cpu->r[5] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0914 */ cpu->r[4] = 0x0000001Du;
|
|
/* 028B0918 */ _t12 = cpu->r[3] + 0xFFFF9A5Cu;
|
|
/* 028B0918 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B091C */ cpu->r[6] = cpu->r[6] + 0xFFFF8380u;
|
|
/* 028B0920 */ _t13 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B0920 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B0920 */ if (_t14) goto L_028B0924; // else: addr-0 trap, fall-through
|
|
L_028B0924: ; // 0x28b0924
|
|
/* 028B0924 */ Gambit_fn_028AA73C(cpu);
|
|
L_028B0928: ; // 0x28b0928
|
|
/* 028B0928 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0928 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B092C */ cpu->lr = cpu->r[0];
|
|
/* 028B0930 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0934 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0938 */ return;
|
|
}
|
|
|
|
// fn_028B08D4 @ 0x28b08d4
|
|
void Gambit_fn_028B08D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B08D4: ; // 0x28b08d4
|
|
/* 028B08D4 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B08D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B08D4 */ cpu->r[1] = _t0;
|
|
/* 028B08D8 */ _t1 = cpu->r[3] + 0x00000034u;
|
|
/* 028B08D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B08DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028B08E0 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B08E0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B08E0 */ if (_t3) goto L_028B0928; else goto L_028B08E4;
|
|
L_028B08E4: ; // 0x28b08e4
|
|
/* 028B08E4 */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B08E4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B08E4 */ if (_t5) goto L_028B0904; else goto L_028B08E8;
|
|
L_028B08E8: ; // 0x28b08e8
|
|
/* 028B08E8 */ _t6 = cpu->r[3] + 0x00000038u;
|
|
/* 028B08E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B08EC */ _t7 = cpu->r[3] + 0x00000030u;
|
|
/* 028B08EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B08F0 */ cpu->r[3] = cpu->r[0] - cpu->r[12];
|
|
/* 028B08F4 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B08F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B08F8 */ cpu->lr = cpu->r[0];
|
|
/* 028B08FC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0900 */ return;
|
|
L_028B0904: ; // 0x28b0904
|
|
/* 028B0904 */ _t9 = cpu->r[3] + 0x00000010u;
|
|
/* 028B0904 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0908 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B090C */ cpu->r[6] = 0x10140000u;
|
|
/* 028B0910 */ _t10 = cpu->r[12] + 0x00000020u;
|
|
/* 028B0910 */ cpu->r[5] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B0914 */ cpu->r[4] = 0x0000001Du;
|
|
/* 028B0918 */ _t11 = cpu->r[3] + 0xFFFF9A5Cu;
|
|
/* 028B0918 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B091C */ cpu->r[6] = cpu->r[6] + 0xFFFF8380u;
|
|
/* 028B0920 */ _t12 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B0920 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B0920 */ if (_t13) goto L_028B0924; // else: addr-0 trap, fall-through
|
|
L_028B0924: ; // 0x28b0924
|
|
/* 028B0924 */ Gambit_fn_028AA73C(cpu);
|
|
L_028B0928: ; // 0x28b0928
|
|
/* 028B0928 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0928 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B092C */ cpu->lr = cpu->r[0];
|
|
/* 028B0930 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0934 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0938 */ return;
|
|
}
|
|
|
|
// fn_028B093C @ 0x28b093c
|
|
void Gambit_fn_028B093C(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_028B093C: ; // 0x28b093c
|
|
/* 028B093C */ cpu->r[0] = cpu->lr;
|
|
/* 028B0940 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B0940 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0940 */ cpu->r[1] = _t0;
|
|
/* 028B0944 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0944 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0948 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0948 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B094C */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B094C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B0950 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0950 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B0954 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B0958 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0958 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B095C */ _t6 = cpu->r[28] + 0x0000012Cu;
|
|
/* 028B095C */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0960 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B0964 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0964 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B0964 */ if (_t8) goto L_028B0A0C; else goto L_028B0968;
|
|
L_028B0968: ; // 0x28b0968
|
|
/* 028B0968 */ _t9 = cpu->r[28] + 0x00000038u;
|
|
/* 028B0968 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B096C */ cpu->r[10] = cpu->r[28] + 0x0000002Cu;
|
|
/* 028B0970 */ _t10 = cpu->r[28] + 0x00000030u;
|
|
/* 028B0970 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B0974 */ _t11 = cpu->r[28] + 0x00000130u;
|
|
/* 028B0974 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0978 */ cpu->r[29] = cpu->r[10] - cpu->r[31];
|
|
/* 028B097C */ cpu->r[30] = cpu->r[9] - cpu->r[31];
|
|
/* 028B0980 */ cpu->r[7] = cpu->r[0] | cpu->r[8];
|
|
/* 028B0984 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028B0988 */ _t12 = cpu->r[28] + 0x00000130u;
|
|
/* 028B0988 */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 028B098C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B098C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B098C */ if (_t14) goto L_028B09BC; else goto L_028B0990;
|
|
L_028B0990: ; // 0x28b0990
|
|
/* 028B0990 */ _t15 = cpu->r[28] + 0x0000012Cu;
|
|
/* 028B0990 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0994 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0998 */ cpu->r[4] = cpu->r[28] + 0x00000054u;
|
|
/* 028B099C */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028B09A0 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B09A0 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028B09A4 */ Gambit_fn_028AE9EC(cpu);
|
|
/* 028B09A8 */ cpu->r[11] = cpu->r[30] + cpu->r[31];
|
|
/* 028B09AC */ _t17 = cpu->r[11] + 0x00000004u;
|
|
/* 028B09AC */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B09B0 */ cpu->r[30] = cpu->r[12] - cpu->r[31];
|
|
/* 028B09B4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028B09B8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B09B8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B09B8 */ if (_t19) goto L_028B09BC; else goto L_028B0990;
|
|
L_028B09BC: ; // 0x28b09bc
|
|
/* 028B09BC */ _t20 = cpu->r[28] + 0x00000048u;
|
|
/* 028B09BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B09C0 */ cpu->r[7] = cpu->r[28] + 0x0000003Cu;
|
|
/* 028B09C4 */ _t21 = cpu->r[28] + 0x00000040u;
|
|
/* 028B09C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B09C8 */ cpu->r[30] = cpu->r[7] - cpu->r[29];
|
|
/* 028B09CC */ cpu->r[31] = cpu->r[0] - cpu->r[29];
|
|
/* 028B09D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028B09D4 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B09D4 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B09D4 */ if (_t23) goto L_028B0A04; else goto L_028B09D8;
|
|
L_028B09D8: ; // 0x28b09d8
|
|
/* 028B09D8 */ _t24 = cpu->r[28] + 0x0000012Cu;
|
|
/* 028B09D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B09DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B09E0 */ cpu->r[4] = cpu->r[28] + 0x00000054u;
|
|
/* 028B09E4 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B09E8 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B09E8 */ rbrew_write32(cpu->mem, _t25, cpu->r[10]);
|
|
/* 028B09EC */ Gambit_fn_028AE9EC(cpu);
|
|
/* 028B09F0 */ cpu->r[6] = cpu->r[31] + cpu->r[29];
|
|
/* 028B09F4 */ _t26 = cpu->r[6] + 0x00000004u;
|
|
/* 028B09F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B09F8 */ cpu->r[31] = cpu->r[0] - cpu->r[29];
|
|
/* 028B09FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028B0A00 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0A00 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B0A00 */ if (_t28) goto L_028B0A04; else goto L_028B09D8;
|
|
L_028B0A04: ; // 0x28b0a04
|
|
/* 028B0A04 */ cpu->r[6] = 0x00000000u;
|
|
/* 028B0A08 */ _t29 = cpu->r[28] + 0x0000012Cu;
|
|
/* 028B0A08 */ rbrew_write32(cpu->mem, _t29, cpu->r[6]);
|
|
L_028B0A0C: ; // 0x28b0a0c
|
|
/* 028B0A0C */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0A0C */ cpu->r[28] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B0A10 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0A10 */ cpu->r[29] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B0A14 */ _t32 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0A14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B0A18 */ _t33 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0A18 */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B0A1C */ cpu->lr = cpu->r[0];
|
|
/* 028B0A20 */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0A20 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B0A24 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B0A28 */ return;
|
|
}
|
|
|
|
// fn_028B0940 @ 0x28b0940
|
|
void Gambit_fn_028B0940(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_028B0940: ; // 0x28b0940
|
|
/* 028B0940 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B0940 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0940 */ cpu->r[1] = _t0;
|
|
/* 028B0944 */ _t1 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0944 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0948 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0948 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B094C */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B094C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B0950 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0950 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B0954 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B0958 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0958 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B095C */ _t6 = cpu->r[28] + 0x0000012Cu;
|
|
/* 028B095C */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0960 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B0964 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0964 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B0964 */ if (_t8) goto L_028B0A0C; else goto L_028B0968;
|
|
L_028B0968: ; // 0x28b0968
|
|
/* 028B0968 */ _t9 = cpu->r[28] + 0x00000038u;
|
|
/* 028B0968 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B096C */ cpu->r[10] = cpu->r[28] + 0x0000002Cu;
|
|
/* 028B0970 */ _t10 = cpu->r[28] + 0x00000030u;
|
|
/* 028B0970 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B0974 */ _t11 = cpu->r[28] + 0x00000130u;
|
|
/* 028B0974 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0978 */ cpu->r[29] = cpu->r[10] - cpu->r[31];
|
|
/* 028B097C */ cpu->r[30] = cpu->r[9] - cpu->r[31];
|
|
/* 028B0980 */ cpu->r[7] = cpu->r[0] | cpu->r[8];
|
|
/* 028B0984 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028B0988 */ _t12 = cpu->r[28] + 0x00000130u;
|
|
/* 028B0988 */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 028B098C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B098C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B098C */ if (_t14) goto L_028B09BC; else goto L_028B0990;
|
|
L_028B0990: ; // 0x28b0990
|
|
/* 028B0990 */ _t15 = cpu->r[28] + 0x0000012Cu;
|
|
/* 028B0990 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0994 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0998 */ cpu->r[4] = cpu->r[28] + 0x00000054u;
|
|
/* 028B099C */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028B09A0 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B09A0 */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028B09A4 */ Gambit_fn_028AE9EC(cpu);
|
|
/* 028B09A8 */ cpu->r[11] = cpu->r[30] + cpu->r[31];
|
|
/* 028B09AC */ _t17 = cpu->r[11] + 0x00000004u;
|
|
/* 028B09AC */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B09B0 */ cpu->r[30] = cpu->r[12] - cpu->r[31];
|
|
/* 028B09B4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 028B09B8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B09B8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B09B8 */ if (_t19) goto L_028B09BC; else goto L_028B0990;
|
|
L_028B09BC: ; // 0x28b09bc
|
|
/* 028B09BC */ _t20 = cpu->r[28] + 0x00000048u;
|
|
/* 028B09BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B09C0 */ cpu->r[7] = cpu->r[28] + 0x0000003Cu;
|
|
/* 028B09C4 */ _t21 = cpu->r[28] + 0x00000040u;
|
|
/* 028B09C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B09C8 */ cpu->r[30] = cpu->r[7] - cpu->r[29];
|
|
/* 028B09CC */ cpu->r[31] = cpu->r[0] - cpu->r[29];
|
|
/* 028B09D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028B09D4 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B09D4 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B09D4 */ if (_t23) goto L_028B0A04; else goto L_028B09D8;
|
|
L_028B09D8: ; // 0x28b09d8
|
|
/* 028B09D8 */ _t24 = cpu->r[28] + 0x0000012Cu;
|
|
/* 028B09D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B09DC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B09E0 */ cpu->r[4] = cpu->r[28] + 0x00000054u;
|
|
/* 028B09E4 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B09E8 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B09E8 */ rbrew_write32(cpu->mem, _t25, cpu->r[10]);
|
|
/* 028B09EC */ Gambit_fn_028AE9EC(cpu);
|
|
/* 028B09F0 */ cpu->r[6] = cpu->r[31] + cpu->r[29];
|
|
/* 028B09F4 */ _t26 = cpu->r[6] + 0x00000004u;
|
|
/* 028B09F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B09F8 */ cpu->r[31] = cpu->r[0] - cpu->r[29];
|
|
/* 028B09FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 028B0A00 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0A00 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B0A00 */ if (_t28) goto L_028B0A04; else goto L_028B09D8;
|
|
L_028B0A04: ; // 0x28b0a04
|
|
/* 028B0A04 */ cpu->r[6] = 0x00000000u;
|
|
/* 028B0A08 */ _t29 = cpu->r[28] + 0x0000012Cu;
|
|
/* 028B0A08 */ rbrew_write32(cpu->mem, _t29, cpu->r[6]);
|
|
L_028B0A0C: ; // 0x28b0a0c
|
|
/* 028B0A0C */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0A0C */ cpu->r[28] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B0A10 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0A10 */ cpu->r[29] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B0A14 */ _t32 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0A14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B0A18 */ _t33 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0A18 */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B0A1C */ cpu->lr = cpu->r[0];
|
|
/* 028B0A20 */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0A20 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B0A24 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B0A28 */ return;
|
|
}
|
|
|
|
// fn_028B0A2C @ 0x28b0a2c
|
|
void Gambit_fn_028B0A2C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B0A2C: ; // 0x28b0a2c
|
|
/* 028B0A2C */ cpu->r[0] = cpu->lr;
|
|
/* 028B0A30 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0A30 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0A30 */ cpu->r[1] = _t0;
|
|
/* 028B0A34 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0A34 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B0A38 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0A3C */ cpu->r[5] = 0x00000001u;
|
|
/* 028B0A40 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0A40 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B0A44 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0A48 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0A4C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0A50 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B0A54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0A58 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0A58 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B0A58 */ if (_t4) goto L_028B0A5C; else goto L_028B0A64;
|
|
L_028B0A5C: ; // 0x28b0a5c
|
|
/* 028B0A5C */ cpu->r[3] = 0x10140000u;
|
|
/* 028B0A60 */ cpu->r[3] = cpu->r[3] + 0xFFFF83D8u;
|
|
L_028B0A64: ; // 0x28b0a64
|
|
/* 028B0A64 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0A64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0A68 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0A68 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0A6C */ cpu->lr = cpu->r[0];
|
|
/* 028B0A70 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0A74 */ return;
|
|
}
|
|
|
|
// fn_028B0A30 @ 0x28b0a30
|
|
void Gambit_fn_028B0A30(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B0A30: ; // 0x28b0a30
|
|
/* 028B0A30 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0A30 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0A30 */ cpu->r[1] = _t0;
|
|
/* 028B0A34 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0A34 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B0A38 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0A3C */ cpu->r[5] = 0x00000001u;
|
|
/* 028B0A40 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0A40 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B0A44 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0A48 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0A4C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0A50 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B0A54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0A58 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0A58 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B0A58 */ if (_t4) goto L_028B0A5C; else goto L_028B0A64;
|
|
L_028B0A5C: ; // 0x28b0a5c
|
|
/* 028B0A5C */ cpu->r[3] = 0x10140000u;
|
|
/* 028B0A60 */ cpu->r[3] = cpu->r[3] + 0xFFFF83D8u;
|
|
L_028B0A64: ; // 0x28b0a64
|
|
/* 028B0A64 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0A64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0A68 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0A68 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0A6C */ cpu->lr = cpu->r[0];
|
|
/* 028B0A70 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0A74 */ return;
|
|
}
|
|
|
|
// fn_028B0A78 @ 0x28b0a78
|
|
void Gambit_fn_028B0A78(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B0A78: ; // 0x28b0a78
|
|
/* 028B0A78 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0A7C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B0A7C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B0A80 */ cpu->r[5] = 0x00000002u;
|
|
/* 028B0A84 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0A84 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B0A84 */ cpu->r[1] = _t1;
|
|
/* 028B0A88 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0A8C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B0A90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0A94 */ cpu->r[0] = cpu->r[0] | 0x0000FFFFu;
|
|
/* 028B0A98 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0A98 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B0A98 */ if (_t3) goto L_028B0AA0; else goto L_028B0A9C;
|
|
L_028B0A9C: ; // 0x28b0a9c
|
|
/* 028B0A9C */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0A9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
L_028B0AA0: ; // 0x28b0aa0
|
|
/* 028B0AA0 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B0AA4 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0AA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0AA8 */ cpu->lr = cpu->r[0];
|
|
/* 028B0AAC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0AB0 */ return;
|
|
}
|
|
|
|
// fn_028B0A84 @ 0x28b0a84
|
|
void Gambit_fn_028B0A84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B0A84: ; // 0x28b0a84
|
|
/* 028B0A84 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0A84 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0A84 */ cpu->r[1] = _t0;
|
|
/* 028B0A88 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0A8C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B0A90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0A94 */ cpu->r[0] = cpu->r[0] | 0x0000FFFFu;
|
|
/* 028B0A98 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0A98 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B0A98 */ if (_t2) goto L_028B0AA0; else goto L_028B0A9C;
|
|
L_028B0A9C: ; // 0x28b0a9c
|
|
/* 028B0A9C */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0A9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
L_028B0AA0: ; // 0x28b0aa0
|
|
/* 028B0AA0 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B0AA4 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0AA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0AA8 */ cpu->lr = cpu->r[0];
|
|
/* 028B0AAC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0AB0 */ return;
|
|
}
|
|
|
|
// fn_028B0AB4 @ 0x28b0ab4
|
|
void Gambit_fn_028B0AB4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B0AB4: ; // 0x28b0ab4
|
|
/* 028B0AB4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0AB8 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B0AB8 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B0ABC */ cpu->r[5] = 0x00000004u;
|
|
/* 028B0AC0 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0AC0 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B0AC0 */ cpu->r[1] = _t1;
|
|
/* 028B0AC4 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0AC8 */ cpu->r[12] = cpu->r[3];
|
|
/* 028B0AC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0ACC */ cpu->r[3] = 0x000000FFu;
|
|
/* 028B0AD0 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0AD0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B0AD0 */ if (_t3) goto L_028B0AD8; else goto L_028B0AD4;
|
|
L_028B0AD4: ; // 0x28b0ad4
|
|
/* 028B0AD4 */ _t4 = cpu->r[12] + 0x00000007u;
|
|
/* 028B0AD4 */ cpu->r[3] = rbrew_read8(cpu->mem, _t4);
|
|
L_028B0AD8: ; // 0x28b0ad8
|
|
/* 028B0AD8 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0AD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0ADC */ cpu->lr = cpu->r[0];
|
|
/* 028B0AE0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0AE4 */ return;
|
|
}
|
|
|
|
// fn_028B0AC0 @ 0x28b0ac0
|
|
void Gambit_fn_028B0AC0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B0AC0: ; // 0x28b0ac0
|
|
/* 028B0AC0 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0AC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0AC0 */ cpu->r[1] = _t0;
|
|
/* 028B0AC4 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0AC8 */ cpu->r[12] = cpu->r[3];
|
|
/* 028B0AC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0ACC */ cpu->r[3] = 0x000000FFu;
|
|
/* 028B0AD0 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0AD0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B0AD0 */ if (_t2) goto L_028B0AD8; else goto L_028B0AD4;
|
|
L_028B0AD4: ; // 0x28b0ad4
|
|
/* 028B0AD4 */ _t3 = cpu->r[12] + 0x00000007u;
|
|
/* 028B0AD4 */ cpu->r[3] = rbrew_read8(cpu->mem, _t3);
|
|
L_028B0AD8: ; // 0x28b0ad8
|
|
/* 028B0AD8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0AD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0ADC */ cpu->lr = cpu->r[0];
|
|
/* 028B0AE0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0AE4 */ return;
|
|
}
|
|
|
|
// fn_028B0AE8 @ 0x28b0ae8
|
|
void Gambit_fn_028B0AE8(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_028B0AE8: ; // 0x28b0ae8
|
|
/* 028B0AE8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0AEC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B0AEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0AEC */ cpu->r[1] = _t0;
|
|
/* 028B0AF0 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0AF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0AF4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0AF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B0AF8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B0AFC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0AFC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B0B00 */ cpu->r[5] = 0x00000007u;
|
|
/* 028B0B04 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0B04 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B0B08 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B0B0C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0B10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0B14 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0B14 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B0B14 */ if (_t6) goto L_028B0B64; else goto L_028B0B18;
|
|
L_028B0B18: ; // 0x28b0b18
|
|
/* 028B0B18 */ _t7 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0B18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0B1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B0B20 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0B20 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B0B20 */ if (_t9) goto L_028B0B24; else goto L_028B0B44;
|
|
L_028B0B24: ; // 0x28b0b24
|
|
/* 028B0B24 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B0B28 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B0B2C */ cpu->r[31] = 0x00000001u;
|
|
/* 028B0B30 */ Gambit_fn_028A7E4C(cpu);
|
|
/* 028B0B34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0B38 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0B38 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B0B38 */ if (_t11) goto L_028B0B68; else goto L_028B0B3C;
|
|
L_028B0B3C: ; // 0x28b0b3c
|
|
/* 028B0B3C */ cpu->r[31] = 0x00000002u;
|
|
/* 028B0B40 */ goto L_028B0B68;
|
|
L_028B0B44: ; // 0x28b0b44
|
|
/* 028B0B44 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0B44 */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0B48 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0B48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B0B4C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0B50 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0B50 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B0B54 */ cpu->lr = cpu->r[0];
|
|
/* 028B0B58 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0B58 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0B5C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B0B60 */ return;
|
|
L_028B0B64: ; // 0x28b0b64
|
|
/* 028B0B64 */ cpu->r[31] = 0x00000004u;
|
|
L_028B0B68: ; // 0x28b0b68
|
|
/* 028B0B68 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0B68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0B6C */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0B6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0B70 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0B74 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0B74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0B78 */ cpu->lr = cpu->r[0];
|
|
/* 028B0B7C */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0B7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B0B80 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B0B84 */ return;
|
|
}
|
|
|
|
// fn_028B0AEC @ 0x28b0aec
|
|
void Gambit_fn_028B0AEC(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_028B0AEC: ; // 0x28b0aec
|
|
/* 028B0AEC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B0AEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0AEC */ cpu->r[1] = _t0;
|
|
/* 028B0AF0 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0AF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0AF4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0AF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B0AF8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B0AFC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0AFC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B0B00 */ cpu->r[5] = 0x00000007u;
|
|
/* 028B0B04 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0B04 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B0B08 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B0B0C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0B10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0B14 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0B14 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B0B14 */ if (_t6) goto L_028B0B64; else goto L_028B0B18;
|
|
L_028B0B18: ; // 0x28b0b18
|
|
/* 028B0B18 */ _t7 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0B18 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0B1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B0B20 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0B20 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B0B20 */ if (_t9) goto L_028B0B24; else goto L_028B0B44;
|
|
L_028B0B24: ; // 0x28b0b24
|
|
/* 028B0B24 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B0B28 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B0B2C */ cpu->r[31] = 0x00000001u;
|
|
/* 028B0B30 */ Gambit_fn_028A7E4C(cpu);
|
|
/* 028B0B34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0B38 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0B38 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B0B38 */ if (_t11) goto L_028B0B68; else goto L_028B0B3C;
|
|
L_028B0B3C: ; // 0x28b0b3c
|
|
/* 028B0B3C */ cpu->r[31] = 0x00000002u;
|
|
/* 028B0B40 */ goto L_028B0B68;
|
|
L_028B0B44: ; // 0x28b0b44
|
|
/* 028B0B44 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0B44 */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0B48 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0B48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B0B4C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0B50 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0B50 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B0B54 */ cpu->lr = cpu->r[0];
|
|
/* 028B0B58 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0B58 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0B5C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B0B60 */ return;
|
|
L_028B0B64: ; // 0x28b0b64
|
|
/* 028B0B64 */ cpu->r[31] = 0x00000004u;
|
|
L_028B0B68: ; // 0x28b0b68
|
|
/* 028B0B68 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0B68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0B6C */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B0B6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B0B70 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0B74 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0B74 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0B78 */ cpu->lr = cpu->r[0];
|
|
/* 028B0B7C */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0B7C */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B0B80 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B0B84 */ return;
|
|
}
|
|
|
|
// fn_028B0B88 @ 0x28b0b88
|
|
void Gambit_fn_028B0B88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B0B88: ; // 0x28b0b88
|
|
/* 028B0B88 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0B8C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B0B8C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B0B90 */ cpu->r[5] = 0x00000008u;
|
|
/* 028B0B94 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0B94 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B0B94 */ cpu->r[1] = _t1;
|
|
/* 028B0B98 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0B9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0BA0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B0BA4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0BA4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B0BA4 */ if (_t3) goto L_028B0BB8; else goto L_028B0BA8;
|
|
L_028B0BA8: ; // 0x28b0ba8
|
|
/* 028B0BA8 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0BA8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0BAC */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B0BB0 */ _t5 = ~cpu->r[12];
|
|
/* 028B0BB0 */ cpu->r[12] = cpu->r[0] & _t5;
|
|
/* 028B0BB4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B0BB8: ; // 0x28b0bb8
|
|
/* 028B0BB8 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B0BBC */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0BBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0BC0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0BC4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0BC8 */ return;
|
|
}
|
|
|
|
// fn_028B0B94 @ 0x28b0b94
|
|
void Gambit_fn_028B0B94(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B0B94: ; // 0x28b0b94
|
|
/* 028B0B94 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0B94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0B94 */ cpu->r[1] = _t0;
|
|
/* 028B0B98 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0B9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0BA0 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B0BA4 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0BA4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B0BA4 */ if (_t2) goto L_028B0BB8; else goto L_028B0BA8;
|
|
L_028B0BA8: ; // 0x28b0ba8
|
|
/* 028B0BA8 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0BA8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B0BAC */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B0BB0 */ _t4 = ~cpu->r[12];
|
|
/* 028B0BB0 */ cpu->r[12] = cpu->r[0] & _t4;
|
|
/* 028B0BB4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B0BB8: ; // 0x28b0bb8
|
|
/* 028B0BB8 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B0BBC */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0BBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0BC0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0BC4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0BC8 */ return;
|
|
}
|
|
|
|
// fn_028B0BCC @ 0x28b0bcc
|
|
void Gambit_fn_028B0BCC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B0BCC: ; // 0x28b0bcc
|
|
/* 028B0BCC */ cpu->r[0] = cpu->lr;
|
|
/* 028B0BD0 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B0BD0 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B0BD4 */ cpu->r[5] = 0x00000009u;
|
|
/* 028B0BD8 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0BD8 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B0BD8 */ cpu->r[1] = _t1;
|
|
/* 028B0BDC */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0BE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0BE4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B0BE8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0BE8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B0BE8 */ if (_t3) goto L_028B0BF0; else goto L_028B0BEC;
|
|
L_028B0BEC: ; // 0x28b0bec
|
|
/* 028B0BEC */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0BEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
L_028B0BF0: ; // 0x28b0bf0
|
|
/* 028B0BF0 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B0BF4 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0BF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0BF8 */ cpu->lr = cpu->r[0];
|
|
/* 028B0BFC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0C00 */ return;
|
|
}
|
|
|
|
// fn_028B0BD8 @ 0x28b0bd8
|
|
void Gambit_fn_028B0BD8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B0BD8: ; // 0x28b0bd8
|
|
/* 028B0BD8 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0BD8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0BD8 */ cpu->r[1] = _t0;
|
|
/* 028B0BDC */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0BE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0BE4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B0BE8 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0BE8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B0BE8 */ if (_t2) goto L_028B0BF0; else goto L_028B0BEC;
|
|
L_028B0BEC: ; // 0x28b0bec
|
|
/* 028B0BEC */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0BEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
L_028B0BF0: ; // 0x28b0bf0
|
|
/* 028B0BF0 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B0BF4 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0BF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0BF8 */ cpu->lr = cpu->r[0];
|
|
/* 028B0BFC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0C00 */ return;
|
|
}
|
|
|
|
// fn_028B0C04 @ 0x28b0c04
|
|
void Gambit_fn_028B0C04(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B0C04: ; // 0x28b0c04
|
|
/* 028B0C04 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0C08 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B0C08 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B0C0C */ cpu->r[5] = 0x0000000Au;
|
|
/* 028B0C10 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0C10 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B0C10 */ cpu->r[1] = _t1;
|
|
/* 028B0C14 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0C18 */ cpu->r[12] = cpu->r[3];
|
|
/* 028B0C18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0C1C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0C20 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0C20 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B0C20 */ if (_t3) goto L_028B0C28; else goto L_028B0C24;
|
|
L_028B0C24: ; // 0x28b0c24
|
|
/* 028B0C24 */ _t4 = cpu->r[12] + 0x00000004u;
|
|
/* 028B0C24 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
L_028B0C28: ; // 0x28b0c28
|
|
/* 028B0C28 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0C28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0C2C */ cpu->lr = cpu->r[0];
|
|
/* 028B0C30 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0C34 */ return;
|
|
}
|
|
|
|
// fn_028B0C10 @ 0x28b0c10
|
|
void Gambit_fn_028B0C10(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B0C10: ; // 0x28b0c10
|
|
/* 028B0C10 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0C10 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0C10 */ cpu->r[1] = _t0;
|
|
/* 028B0C14 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0C18 */ cpu->r[12] = cpu->r[3];
|
|
/* 028B0C18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0C1C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0C20 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0C20 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B0C20 */ if (_t2) goto L_028B0C28; else goto L_028B0C24;
|
|
L_028B0C24: ; // 0x28b0c24
|
|
/* 028B0C24 */ _t3 = cpu->r[12] + 0x00000004u;
|
|
/* 028B0C24 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
L_028B0C28: ; // 0x28b0c28
|
|
/* 028B0C28 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0C28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0C2C */ cpu->lr = cpu->r[0];
|
|
/* 028B0C30 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0C34 */ return;
|
|
}
|
|
|
|
// fn_028B0C38 @ 0x28b0c38
|
|
void Gambit_fn_028B0C38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B0C38: ; // 0x28b0c38
|
|
/* 028B0C38 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0C3C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B0C3C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B0C40 */ cpu->r[5] = 0x0000000Bu;
|
|
/* 028B0C44 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0C44 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B0C44 */ cpu->r[1] = _t1;
|
|
/* 028B0C48 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0C4C */ cpu->r[12] = cpu->r[3];
|
|
/* 028B0C4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0C50 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0C54 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0C54 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B0C54 */ if (_t3) goto L_028B0C5C; else goto L_028B0C58;
|
|
L_028B0C58: ; // 0x28b0c58
|
|
/* 028B0C58 */ _t4 = cpu->r[12] + 0x00000004u;
|
|
/* 028B0C58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
L_028B0C5C: ; // 0x28b0c5c
|
|
/* 028B0C5C */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0C5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0C60 */ cpu->lr = cpu->r[0];
|
|
/* 028B0C64 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0C68 */ return;
|
|
}
|
|
|
|
// fn_028B0C44 @ 0x28b0c44
|
|
void Gambit_fn_028B0C44(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B0C44: ; // 0x28b0c44
|
|
/* 028B0C44 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0C44 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0C44 */ cpu->r[1] = _t0;
|
|
/* 028B0C48 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0C4C */ cpu->r[12] = cpu->r[3];
|
|
/* 028B0C4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B0C50 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B0C54 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0C54 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B0C54 */ if (_t2) goto L_028B0C5C; else goto L_028B0C58;
|
|
L_028B0C58: ; // 0x28b0c58
|
|
/* 028B0C58 */ _t3 = cpu->r[12] + 0x00000004u;
|
|
/* 028B0C58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
L_028B0C5C: ; // 0x28b0c5c
|
|
/* 028B0C5C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0C5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0C60 */ cpu->lr = cpu->r[0];
|
|
/* 028B0C64 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0C68 */ return;
|
|
}
|
|
|
|
// fn_028B0C6C @ 0x28b0c6c
|
|
void Gambit_fn_028B0C6C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B0C6C: ; // 0x28b0c6c
|
|
/* 028B0C6C */ cpu->r[0] = cpu->lr;
|
|
/* 028B0C70 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B0C70 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B0C74 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028B0C78 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0C78 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B0C78 */ cpu->r[1] = _t1;
|
|
/* 028B0C7C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0C80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0C84 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B0C88 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0C88 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B0C88 */ if (_t3) goto L_028B0C9C; else goto L_028B0C8C;
|
|
L_028B0C8C: ; // 0x28b0c8c
|
|
/* 028B0C8C */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0C8C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B0C90 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B0C94 */ _t5 = ~cpu->r[12];
|
|
/* 028B0C94 */ cpu->r[12] = cpu->r[0] & _t5;
|
|
/* 028B0C98 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B0C9C: ; // 0x28b0c9c
|
|
/* 028B0C9C */ cpu->r[3] = cpu->r[0];
|
|
/* 028B0CA0 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0CA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0CA4 */ cpu->lr = cpu->r[0];
|
|
/* 028B0CA8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0CAC */ return;
|
|
}
|
|
|
|
// fn_028B0C78 @ 0x28b0c78
|
|
void Gambit_fn_028B0C78(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B0C78: ; // 0x28b0c78
|
|
/* 028B0C78 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B0C78 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0C78 */ cpu->r[1] = _t0;
|
|
/* 028B0C7C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0C80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0C84 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B0C88 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0C88 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B0C88 */ if (_t2) goto L_028B0C9C; else goto L_028B0C8C;
|
|
L_028B0C8C: ; // 0x28b0c8c
|
|
/* 028B0C8C */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B0C8C */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B0C90 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B0C94 */ _t4 = ~cpu->r[12];
|
|
/* 028B0C94 */ cpu->r[12] = cpu->r[0] & _t4;
|
|
/* 028B0C98 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B0C9C: ; // 0x28b0c9c
|
|
/* 028B0C9C */ cpu->r[3] = cpu->r[0];
|
|
/* 028B0CA0 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0CA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0CA4 */ cpu->lr = cpu->r[0];
|
|
/* 028B0CA8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B0CAC */ return;
|
|
}
|
|
|
|
// fn_028B0CB0 @ 0x28b0cb0
|
|
void Gambit_fn_028B0CB0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0CB0: ; // 0x28b0cb0
|
|
/* 028B0CB0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0CB4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0CB4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0CB4 */ cpu->r[1] = _t0;
|
|
/* 028B0CB8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0CB8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0CBC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0CBC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0CC0 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0CC4 */ cpu->r[5] = 0x00000005u;
|
|
/* 028B0CC8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0CCC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0CCC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0CD0 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0CD4 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0CD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0CD8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0CD8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0CD8 */ if (_t5) goto L_028B0D00; else goto L_028B0CDC;
|
|
L_028B0CDC: ; // 0x28b0cdc
|
|
/* 028B0CDC */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0CE0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0CE4 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0CE8 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0CE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0CEC */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0CEC */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0CF0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0CF4 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0CF4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0CF8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0CFC */ return;
|
|
L_028B0D00: ; // 0x28b0d00
|
|
/* 028B0D00 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0D00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0D04 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0D08 */ cpu->lr = cpu->r[0];
|
|
/* 028B0D0C */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0D0C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0D10 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0D10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0D14 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0D14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0D18 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0D1C */ return;
|
|
}
|
|
|
|
// fn_028B0CB4 @ 0x28b0cb4
|
|
void Gambit_fn_028B0CB4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0CB4: ; // 0x28b0cb4
|
|
/* 028B0CB4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0CB4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0CB4 */ cpu->r[1] = _t0;
|
|
/* 028B0CB8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0CB8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0CBC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0CBC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0CC0 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0CC4 */ cpu->r[5] = 0x00000005u;
|
|
/* 028B0CC8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0CCC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0CCC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0CD0 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0CD4 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0CD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0CD8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0CD8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0CD8 */ if (_t5) goto L_028B0D00; else goto L_028B0CDC;
|
|
L_028B0CDC: ; // 0x28b0cdc
|
|
/* 028B0CDC */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0CE0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0CE4 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0CE8 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0CE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0CEC */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0CEC */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0CF0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0CF4 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0CF4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0CF8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0CFC */ return;
|
|
L_028B0D00: ; // 0x28b0d00
|
|
/* 028B0D00 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0D00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0D04 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0D08 */ cpu->lr = cpu->r[0];
|
|
/* 028B0D0C */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0D0C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0D10 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0D10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0D14 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0D14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0D18 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0D1C */ return;
|
|
}
|
|
|
|
// fn_028B0D20 @ 0x28b0d20
|
|
void Gambit_fn_028B0D20(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_028B0D20: ; // 0x28b0d20
|
|
/* 028B0D20 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0D24 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B0D24 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0D24 */ cpu->r[1] = _t0;
|
|
/* 028B0D28 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0D28 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0D2C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0D2C */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028B0D30 */ /* nop */
|
|
/* 028B0D34 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B0D38 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0D38 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B0D3C */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0D3C */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028B0D40 */ cpu->r[5] = 0x00000006u;
|
|
/* 028B0D44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0D48 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0D48 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B0D4C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0D50 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0D54 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0D54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0D58 */ _t6 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0D58 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028B0D5C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0D5C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B0D5C */ if (_t8) goto L_028B0D94; else goto L_028B0D60;
|
|
L_028B0D60: ; // 0x28b0d60
|
|
/* 028B0D60 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B0D64 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0D68 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0D6C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0D6C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0D70 */ /* nop */
|
|
/* 028B0D74 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0D74 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0D78 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0D78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0D7C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0D7C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t12);
|
|
/* 028B0D80 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B0D80 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B0D80 */ if (_t14) goto L_028B0D84; // else: addr-0 trap, fall-through
|
|
L_028B0D84: ; // 0x28b0d84
|
|
/* 028B0D84 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0D84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0D88 */ cpu->lr = cpu->r[0];
|
|
/* 028B0D8C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B0D90 */ return;
|
|
L_028B0D94: ; // 0x28b0d94
|
|
/* 028B0D94 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0D94 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0D98 */ cpu->f[1] = cpu->f[31];
|
|
/* 028B0D9C */ _t17 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0D9C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B0DA0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0DA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0DA4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0DA4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028B0DA8 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B0DA8 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B0DA8 */ if (_t21) goto L_028B0DAC; // else: addr-0 trap, fall-through
|
|
L_028B0DAC: ; // 0x28b0dac
|
|
/* 028B0DAC */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0DAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B0DB0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0DB4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B0DB8 */ return;
|
|
}
|
|
|
|
// fn_028B0D24 @ 0x28b0d24
|
|
void Gambit_fn_028B0D24(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_028B0D24: ; // 0x28b0d24
|
|
/* 028B0D24 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B0D24 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0D24 */ cpu->r[1] = _t0;
|
|
/* 028B0D28 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0D28 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0D2C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0D2C */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028B0D30 */ /* nop */
|
|
/* 028B0D34 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B0D38 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0D38 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B0D3C */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0D3C */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028B0D40 */ cpu->r[5] = 0x00000006u;
|
|
/* 028B0D44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0D48 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0D48 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B0D4C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0D50 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0D54 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0D54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0D58 */ _t6 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0D58 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028B0D5C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0D5C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B0D5C */ if (_t8) goto L_028B0D94; else goto L_028B0D60;
|
|
L_028B0D60: ; // 0x28b0d60
|
|
/* 028B0D60 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B0D64 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0D68 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0D6C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0D6C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0D70 */ /* nop */
|
|
/* 028B0D74 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0D74 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0D78 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0D78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0D7C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0D7C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t12);
|
|
/* 028B0D80 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B0D80 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B0D80 */ if (_t14) goto L_028B0D84; // else: addr-0 trap, fall-through
|
|
L_028B0D84: ; // 0x28b0d84
|
|
/* 028B0D84 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0D84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B0D88 */ cpu->lr = cpu->r[0];
|
|
/* 028B0D8C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B0D90 */ return;
|
|
L_028B0D94: ; // 0x28b0d94
|
|
/* 028B0D94 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0D94 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B0D98 */ cpu->f[1] = cpu->f[31];
|
|
/* 028B0D9C */ _t17 = cpu->r[1] + 0x00000018u;
|
|
/* 028B0D9C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B0DA0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0DA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B0DA4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B0DA4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028B0DA8 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B0DA8 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B0DA8 */ if (_t21) goto L_028B0DAC; // else: addr-0 trap, fall-through
|
|
L_028B0DAC: ; // 0x28b0dac
|
|
/* 028B0DAC */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B0DAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B0DB0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0DB4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B0DB8 */ return;
|
|
}
|
|
|
|
// fn_028B0DBC @ 0x28b0dbc
|
|
void Gambit_fn_028B0DBC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B0DBC: ; // 0x28b0dbc
|
|
/* 028B0DBC */ cpu->r[0] = cpu->lr;
|
|
/* 028B0DC0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0DC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0DC0 */ cpu->r[1] = _t0;
|
|
/* 028B0DC4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0DC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B0DC8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0DCC */ cpu->r[5] = 0x0000000Du;
|
|
/* 028B0DD0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0DD0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B0DD4 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0DD8 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0DDC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0DE0 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B0DE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0DE8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0DE8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B0DE8 */ if (_t4) goto L_028B0DEC; else goto L_028B0DF4;
|
|
L_028B0DEC: ; // 0x28b0dec
|
|
/* 028B0DEC */ cpu->r[3] = 0x10140000u;
|
|
/* 028B0DF0 */ cpu->r[3] = cpu->r[3] + 0xFFFF83E0u;
|
|
L_028B0DF4: ; // 0x28b0df4
|
|
/* 028B0DF4 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0DF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0DF8 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0DF8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0DFC */ cpu->lr = cpu->r[0];
|
|
/* 028B0E00 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0E04 */ return;
|
|
}
|
|
|
|
// fn_028B0DC0 @ 0x28b0dc0
|
|
void Gambit_fn_028B0DC0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B0DC0: ; // 0x28b0dc0
|
|
/* 028B0DC0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0DC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0DC0 */ cpu->r[1] = _t0;
|
|
/* 028B0DC4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0DC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B0DC8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B0DCC */ cpu->r[5] = 0x0000000Du;
|
|
/* 028B0DD0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0DD0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B0DD4 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0DD8 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0DDC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B0DE0 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B0DE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B0DE8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0DE8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B0DE8 */ if (_t4) goto L_028B0DEC; else goto L_028B0DF4;
|
|
L_028B0DEC: ; // 0x28b0dec
|
|
/* 028B0DEC */ cpu->r[3] = 0x10140000u;
|
|
/* 028B0DF0 */ cpu->r[3] = cpu->r[3] + 0xFFFF83E0u;
|
|
L_028B0DF4: ; // 0x28b0df4
|
|
/* 028B0DF4 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0DF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B0DF8 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0DF8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0DFC */ cpu->lr = cpu->r[0];
|
|
/* 028B0E00 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0E04 */ return;
|
|
}
|
|
|
|
// fn_028B0E08 @ 0x28b0e08
|
|
void Gambit_fn_028B0E08(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0E08: ; // 0x28b0e08
|
|
/* 028B0E08 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0E0C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0E0C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0E0C */ cpu->r[1] = _t0;
|
|
/* 028B0E10 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0E10 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0E14 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0E14 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0E18 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0E1C */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B0E20 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0E24 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0E24 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0E28 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0E2C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0E2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0E30 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0E30 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0E30 */ if (_t5) goto L_028B0E58; else goto L_028B0E34;
|
|
L_028B0E34: ; // 0x28b0e34
|
|
/* 028B0E34 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0E38 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0E3C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0E40 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0E40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0E44 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0E44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0E48 */ cpu->lr = cpu->r[0];
|
|
/* 028B0E4C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0E4C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0E50 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0E54 */ return;
|
|
L_028B0E58: ; // 0x28b0e58
|
|
/* 028B0E58 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0E58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0E5C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0E60 */ cpu->lr = cpu->r[0];
|
|
/* 028B0E64 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B0E64 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0E68 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0E68 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0E6C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0E6C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0E70 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0E74 */ return;
|
|
}
|
|
|
|
// fn_028B0E0C @ 0x28b0e0c
|
|
void Gambit_fn_028B0E0C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0E0C: ; // 0x28b0e0c
|
|
/* 028B0E0C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0E0C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0E0C */ cpu->r[1] = _t0;
|
|
/* 028B0E10 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0E10 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0E14 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0E14 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0E18 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0E1C */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B0E20 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0E24 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0E24 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0E28 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0E2C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0E2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0E30 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0E30 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0E30 */ if (_t5) goto L_028B0E58; else goto L_028B0E34;
|
|
L_028B0E34: ; // 0x28b0e34
|
|
/* 028B0E34 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0E38 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0E3C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0E40 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0E40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0E44 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0E44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0E48 */ cpu->lr = cpu->r[0];
|
|
/* 028B0E4C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0E4C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0E50 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0E54 */ return;
|
|
L_028B0E58: ; // 0x28b0e58
|
|
/* 028B0E58 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0E58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0E5C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0E60 */ cpu->lr = cpu->r[0];
|
|
/* 028B0E64 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B0E64 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0E68 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0E68 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0E6C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0E6C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0E70 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0E74 */ return;
|
|
}
|
|
|
|
// fn_028B0E78 @ 0x28b0e78
|
|
void Gambit_fn_028B0E78(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0E78: ; // 0x28b0e78
|
|
/* 028B0E78 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0E7C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0E7C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0E7C */ cpu->r[1] = _t0;
|
|
/* 028B0E80 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0E80 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0E84 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0E84 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0E88 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0E8C */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B0E90 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0E94 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0E94 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0E98 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0E9C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0E9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0EA0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0EA0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0EA0 */ if (_t5) goto L_028B0EC8; else goto L_028B0EA4;
|
|
L_028B0EA4: ; // 0x28b0ea4
|
|
/* 028B0EA4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0EA8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0EAC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0EB0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0EB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0EB4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0EB4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0EB8 */ cpu->lr = cpu->r[0];
|
|
/* 028B0EBC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0EBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0EC0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0EC4 */ return;
|
|
L_028B0EC8: ; // 0x28b0ec8
|
|
/* 028B0EC8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0EC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0ECC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0ED0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0ED4 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0ED4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0ED8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0ED8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0EDC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0EDC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0EE0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0EE4 */ return;
|
|
}
|
|
|
|
// fn_028B0E7C @ 0x28b0e7c
|
|
void Gambit_fn_028B0E7C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0E7C: ; // 0x28b0e7c
|
|
/* 028B0E7C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0E7C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0E7C */ cpu->r[1] = _t0;
|
|
/* 028B0E80 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0E80 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0E84 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0E84 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0E88 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0E8C */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B0E90 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0E94 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0E94 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0E98 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0E9C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0E9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0EA0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0EA0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0EA0 */ if (_t5) goto L_028B0EC8; else goto L_028B0EA4;
|
|
L_028B0EA4: ; // 0x28b0ea4
|
|
/* 028B0EA4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0EA8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0EAC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0EB0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0EB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0EB4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0EB4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0EB8 */ cpu->lr = cpu->r[0];
|
|
/* 028B0EBC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0EBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0EC0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0EC4 */ return;
|
|
L_028B0EC8: ; // 0x28b0ec8
|
|
/* 028B0EC8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0EC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0ECC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0ED0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0ED4 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0ED4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0ED8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0ED8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0EDC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0EDC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0EE0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0EE4 */ return;
|
|
}
|
|
|
|
// fn_028B0EE8 @ 0x28b0ee8
|
|
void Gambit_fn_028B0EE8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0EE8: ; // 0x28b0ee8
|
|
/* 028B0EE8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0EEC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0EEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0EEC */ cpu->r[1] = _t0;
|
|
/* 028B0EF0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0EF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0EF4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0EF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0EF8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0EFC */ cpu->r[5] = 0x00000010u;
|
|
/* 028B0F00 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0F04 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F04 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0F08 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0F0C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0F0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0F10 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0F10 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0F10 */ if (_t5) goto L_028B0F38; else goto L_028B0F14;
|
|
L_028B0F14: ; // 0x28b0f14
|
|
/* 028B0F14 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0F18 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0F1C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0F20 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0F24 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0F24 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0F28 */ cpu->lr = cpu->r[0];
|
|
/* 028B0F2C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0F2C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0F30 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0F34 */ return;
|
|
L_028B0F38: ; // 0x28b0f38
|
|
/* 028B0F38 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0F3C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0F40 */ cpu->lr = cpu->r[0];
|
|
/* 028B0F44 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0F44 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0F48 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0F48 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0F4C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0F4C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0F50 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0F54 */ return;
|
|
}
|
|
|
|
// fn_028B0EEC @ 0x28b0eec
|
|
void Gambit_fn_028B0EEC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0EEC: ; // 0x28b0eec
|
|
/* 028B0EEC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0EEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0EEC */ cpu->r[1] = _t0;
|
|
/* 028B0EF0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0EF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0EF4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0EF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0EF8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0EFC */ cpu->r[5] = 0x00000010u;
|
|
/* 028B0F00 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0F04 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F04 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0F08 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0F0C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0F0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0F10 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0F10 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0F10 */ if (_t5) goto L_028B0F38; else goto L_028B0F14;
|
|
L_028B0F14: ; // 0x28b0f14
|
|
/* 028B0F14 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0F18 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0F1C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0F20 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0F24 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0F24 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0F28 */ cpu->lr = cpu->r[0];
|
|
/* 028B0F2C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0F2C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0F30 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0F34 */ return;
|
|
L_028B0F38: ; // 0x28b0f38
|
|
/* 028B0F38 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0F3C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0F40 */ cpu->lr = cpu->r[0];
|
|
/* 028B0F44 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0F44 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0F48 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0F48 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0F4C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0F4C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0F50 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0F54 */ return;
|
|
}
|
|
|
|
// fn_028B0F58 @ 0x28b0f58
|
|
void Gambit_fn_028B0F58(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0F58: ; // 0x28b0f58
|
|
/* 028B0F58 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0F5C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0F5C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0F5C */ cpu->r[1] = _t0;
|
|
/* 028B0F60 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0F60 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0F64 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0F64 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0F68 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0F6C */ cpu->r[5] = 0x00000011u;
|
|
/* 028B0F70 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0F74 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F74 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0F78 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0F7C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0F7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0F80 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0F80 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0F80 */ if (_t5) goto L_028B0FA8; else goto L_028B0F84;
|
|
L_028B0F84: ; // 0x28b0f84
|
|
/* 028B0F84 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0F88 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0F8C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0F90 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F90 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0F94 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0F94 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0F98 */ cpu->lr = cpu->r[0];
|
|
/* 028B0F9C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0F9C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0FA0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0FA4 */ return;
|
|
L_028B0FA8: ; // 0x28b0fa8
|
|
/* 028B0FA8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0FA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0FAC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0FB0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0FB4 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0FB4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0FB8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0FB8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0FBC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0FBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0FC0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0FC4 */ return;
|
|
}
|
|
|
|
// fn_028B0F5C @ 0x28b0f5c
|
|
void Gambit_fn_028B0F5C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0F5C: ; // 0x28b0f5c
|
|
/* 028B0F5C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0F5C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0F5C */ cpu->r[1] = _t0;
|
|
/* 028B0F60 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0F60 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0F64 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0F64 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0F68 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0F6C */ cpu->r[5] = 0x00000011u;
|
|
/* 028B0F70 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0F74 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F74 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0F78 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0F7C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0F7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0F80 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0F80 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0F80 */ if (_t5) goto L_028B0FA8; else goto L_028B0F84;
|
|
L_028B0F84: ; // 0x28b0f84
|
|
/* 028B0F84 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0F88 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0F8C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B0F90 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0F90 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B0F94 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0F94 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B0F98 */ cpu->lr = cpu->r[0];
|
|
/* 028B0F9C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0F9C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B0FA0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0FA4 */ return;
|
|
L_028B0FA8: ; // 0x28b0fa8
|
|
/* 028B0FA8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0FA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B0FAC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B0FB0 */ cpu->lr = cpu->r[0];
|
|
/* 028B0FB4 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B0FB4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B0FB8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0FB8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B0FBC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0FBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B0FC0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B0FC4 */ return;
|
|
}
|
|
|
|
// fn_028B0FC8 @ 0x28b0fc8
|
|
void Gambit_fn_028B0FC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0FC8: ; // 0x28b0fc8
|
|
/* 028B0FC8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B0FCC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0FCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0FCC */ cpu->r[1] = _t0;
|
|
/* 028B0FD0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0FD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0FD4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0FD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0FD8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0FDC */ cpu->r[5] = 0x00000012u;
|
|
/* 028B0FE0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0FE4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0FE4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0FE8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0FEC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0FEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0FF0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0FF0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0FF0 */ if (_t5) goto L_028B1018; else goto L_028B0FF4;
|
|
L_028B0FF4: ; // 0x28b0ff4
|
|
/* 028B0FF4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0FF8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0FFC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1000 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1000 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1004 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1004 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1008 */ cpu->lr = cpu->r[0];
|
|
/* 028B100C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B100C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1010 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1014 */ return;
|
|
L_028B1018: ; // 0x28b1018
|
|
/* 028B1018 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1018 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B101C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1020 */ cpu->lr = cpu->r[0];
|
|
/* 028B1024 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B1024 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1028 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1028 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B102C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B102C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1030 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1034 */ return;
|
|
}
|
|
|
|
// fn_028B0FCC @ 0x28b0fcc
|
|
void Gambit_fn_028B0FCC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B0FCC: ; // 0x28b0fcc
|
|
/* 028B0FCC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B0FCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B0FCC */ cpu->r[1] = _t0;
|
|
/* 028B0FD0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B0FD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B0FD4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B0FD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B0FD8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B0FDC */ cpu->r[5] = 0x00000012u;
|
|
/* 028B0FE0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B0FE4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B0FE4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B0FE8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B0FEC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B0FEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B0FF0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B0FF0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B0FF0 */ if (_t5) goto L_028B1018; else goto L_028B0FF4;
|
|
L_028B0FF4: ; // 0x28b0ff4
|
|
/* 028B0FF4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B0FF8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B0FFC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1000 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1000 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1004 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1004 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1008 */ cpu->lr = cpu->r[0];
|
|
/* 028B100C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B100C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1010 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1014 */ return;
|
|
L_028B1018: ; // 0x28b1018
|
|
/* 028B1018 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1018 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B101C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1020 */ cpu->lr = cpu->r[0];
|
|
/* 028B1024 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B1024 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1028 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1028 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B102C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B102C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1030 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1034 */ return;
|
|
}
|
|
|
|
// fn_028B1038 @ 0x28b1038
|
|
void Gambit_fn_028B1038(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B1038: ; // 0x28b1038
|
|
/* 028B1038 */ cpu->r[0] = cpu->lr;
|
|
/* 028B103C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B103C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B103C */ cpu->r[1] = _t0;
|
|
/* 028B1040 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1040 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1044 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1044 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1048 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B104C */ cpu->r[5] = 0x00000013u;
|
|
/* 028B1050 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1054 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1054 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B1058 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B105C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B105C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1060 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1060 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1060 */ if (_t5) goto L_028B1088; else goto L_028B1064;
|
|
L_028B1064: ; // 0x28b1064
|
|
/* 028B1064 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1068 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B106C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1070 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1070 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1074 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1074 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1078 */ cpu->lr = cpu->r[0];
|
|
/* 028B107C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B107C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1080 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1084 */ return;
|
|
L_028B1088: ; // 0x28b1088
|
|
/* 028B1088 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1088 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B108C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1090 */ cpu->lr = cpu->r[0];
|
|
/* 028B1094 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B1094 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1098 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1098 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B109C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B109C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B10A0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B10A4 */ return;
|
|
}
|
|
|
|
// fn_028B103C @ 0x28b103c
|
|
void Gambit_fn_028B103C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B103C: ; // 0x28b103c
|
|
/* 028B103C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B103C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B103C */ cpu->r[1] = _t0;
|
|
/* 028B1040 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1040 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1044 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1044 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1048 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B104C */ cpu->r[5] = 0x00000013u;
|
|
/* 028B1050 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1054 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1054 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B1058 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B105C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B105C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1060 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1060 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1060 */ if (_t5) goto L_028B1088; else goto L_028B1064;
|
|
L_028B1064: ; // 0x28b1064
|
|
/* 028B1064 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1068 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B106C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1070 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1070 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1074 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1074 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1078 */ cpu->lr = cpu->r[0];
|
|
/* 028B107C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B107C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1080 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1084 */ return;
|
|
L_028B1088: ; // 0x28b1088
|
|
/* 028B1088 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1088 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B108C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1090 */ cpu->lr = cpu->r[0];
|
|
/* 028B1094 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B1094 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1098 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1098 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B109C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B109C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B10A0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B10A4 */ return;
|
|
}
|
|
|
|
// fn_028B10A8 @ 0x28b10a8
|
|
void Gambit_fn_028B10A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B10A8: ; // 0x28b10a8
|
|
/* 028B10A8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B10AC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B10AC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B10AC */ cpu->r[1] = _t0;
|
|
/* 028B10B0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B10B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B10B4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B10B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B10B8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B10BC */ cpu->r[5] = 0x00000014u;
|
|
/* 028B10C0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B10C4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B10C4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B10C8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B10CC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B10CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B10D0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B10D0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B10D0 */ if (_t5) goto L_028B10F8; else goto L_028B10D4;
|
|
L_028B10D4: ; // 0x28b10d4
|
|
/* 028B10D4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B10D8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B10DC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B10E0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B10E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B10E4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B10E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B10E8 */ cpu->lr = cpu->r[0];
|
|
/* 028B10EC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B10EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B10F0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B10F4 */ return;
|
|
L_028B10F8: ; // 0x28b10f8
|
|
/* 028B10F8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B10F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B10FC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1100 */ cpu->lr = cpu->r[0];
|
|
/* 028B1104 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B1104 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1108 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1108 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B110C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B110C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1110 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1114 */ return;
|
|
}
|
|
|
|
// fn_028B10AC @ 0x28b10ac
|
|
void Gambit_fn_028B10AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B10AC: ; // 0x28b10ac
|
|
/* 028B10AC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B10AC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B10AC */ cpu->r[1] = _t0;
|
|
/* 028B10B0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B10B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B10B4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B10B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B10B8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B10BC */ cpu->r[5] = 0x00000014u;
|
|
/* 028B10C0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B10C4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B10C4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B10C8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B10CC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B10CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B10D0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B10D0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B10D0 */ if (_t5) goto L_028B10F8; else goto L_028B10D4;
|
|
L_028B10D4: ; // 0x28b10d4
|
|
/* 028B10D4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B10D8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B10DC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B10E0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B10E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B10E4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B10E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B10E8 */ cpu->lr = cpu->r[0];
|
|
/* 028B10EC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B10EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B10F0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B10F4 */ return;
|
|
L_028B10F8: ; // 0x28b10f8
|
|
/* 028B10F8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B10F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B10FC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1100 */ cpu->lr = cpu->r[0];
|
|
/* 028B1104 */ _t10 = cpu->r[12] + 0xFFFF83DCu;
|
|
/* 028B1104 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1108 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1108 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B110C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B110C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1110 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1114 */ return;
|
|
}
|
|
|
|
// fn_028B1118 @ 0x28b1118
|
|
void Gambit_fn_028B1118(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B1118: ; // 0x28b1118
|
|
/* 028B1118 */ cpu->r[0] = cpu->lr;
|
|
/* 028B111C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B111C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B111C */ cpu->r[1] = _t0;
|
|
/* 028B1120 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1120 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1124 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1124 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1128 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B112C */ cpu->r[5] = 0x00000015u;
|
|
/* 028B1130 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1134 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1134 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B1138 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B113C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B113C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1140 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1140 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1140 */ if (_t5) goto L_028B1168; else goto L_028B1144;
|
|
L_028B1144: ; // 0x28b1144
|
|
/* 028B1144 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1148 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B114C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1150 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1150 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1154 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1154 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1158 */ cpu->lr = cpu->r[0];
|
|
/* 028B115C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B115C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1160 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1164 */ return;
|
|
L_028B1168: ; // 0x28b1168
|
|
/* 028B1168 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1168 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B116C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1170 */ cpu->lr = cpu->r[0];
|
|
/* 028B1174 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B1174 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1178 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1178 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B117C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B117C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1180 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1184 */ return;
|
|
}
|
|
|
|
// fn_028B111C @ 0x28b111c
|
|
void Gambit_fn_028B111C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B111C: ; // 0x28b111c
|
|
/* 028B111C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B111C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B111C */ cpu->r[1] = _t0;
|
|
/* 028B1120 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1120 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1124 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1124 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1128 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B112C */ cpu->r[5] = 0x00000015u;
|
|
/* 028B1130 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1134 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1134 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B1138 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B113C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B113C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1140 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1140 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1140 */ if (_t5) goto L_028B1168; else goto L_028B1144;
|
|
L_028B1144: ; // 0x28b1144
|
|
/* 028B1144 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1148 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B114C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1150 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1150 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1154 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1154 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1158 */ cpu->lr = cpu->r[0];
|
|
/* 028B115C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B115C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1160 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1164 */ return;
|
|
L_028B1168: ; // 0x28b1168
|
|
/* 028B1168 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1168 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B116C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1170 */ cpu->lr = cpu->r[0];
|
|
/* 028B1174 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B1174 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1178 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1178 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B117C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B117C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1180 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1184 */ return;
|
|
}
|
|
|
|
// fn_028B1188 @ 0x28b1188
|
|
void Gambit_fn_028B1188(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B1188: ; // 0x28b1188
|
|
/* 028B1188 */ cpu->r[0] = cpu->lr;
|
|
/* 028B118C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B118C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B118C */ cpu->r[1] = _t0;
|
|
/* 028B1190 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1190 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1194 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1194 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1198 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B119C */ cpu->r[5] = 0x00000016u;
|
|
/* 028B11A0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B11A4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B11A4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B11A8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B11AC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B11AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B11B0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B11B0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B11B0 */ if (_t5) goto L_028B11D8; else goto L_028B11B4;
|
|
L_028B11B4: ; // 0x28b11b4
|
|
/* 028B11B4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B11B8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B11BC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B11C0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B11C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B11C4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B11C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B11C8 */ cpu->lr = cpu->r[0];
|
|
/* 028B11CC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B11CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B11D0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B11D4 */ return;
|
|
L_028B11D8: ; // 0x28b11d8
|
|
/* 028B11D8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B11D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B11DC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B11E0 */ cpu->lr = cpu->r[0];
|
|
/* 028B11E4 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B11E4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B11E8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B11E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B11EC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B11EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B11F0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B11F4 */ return;
|
|
}
|
|
|
|
// fn_028B118C @ 0x28b118c
|
|
void Gambit_fn_028B118C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B118C: ; // 0x28b118c
|
|
/* 028B118C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B118C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B118C */ cpu->r[1] = _t0;
|
|
/* 028B1190 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1190 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1194 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1194 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1198 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B119C */ cpu->r[5] = 0x00000016u;
|
|
/* 028B11A0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B11A4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B11A4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B11A8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B11AC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B11AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B11B0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B11B0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B11B0 */ if (_t5) goto L_028B11D8; else goto L_028B11B4;
|
|
L_028B11B4: ; // 0x28b11b4
|
|
/* 028B11B4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B11B8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B11BC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B11C0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B11C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B11C4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B11C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B11C8 */ cpu->lr = cpu->r[0];
|
|
/* 028B11CC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B11CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B11D0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B11D4 */ return;
|
|
L_028B11D8: ; // 0x28b11d8
|
|
/* 028B11D8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B11D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B11DC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B11E0 */ cpu->lr = cpu->r[0];
|
|
/* 028B11E4 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B11E4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B11E8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B11E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B11EC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B11EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B11F0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B11F4 */ return;
|
|
}
|
|
|
|
// fn_028B11F8 @ 0x28b11f8
|
|
void Gambit_fn_028B11F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B11F8: ; // 0x28b11f8
|
|
/* 028B11F8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B11FC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B11FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B11FC */ cpu->r[1] = _t0;
|
|
/* 028B1200 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1200 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1204 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1204 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1208 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B120C */ cpu->r[5] = 0x00000017u;
|
|
/* 028B1210 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1214 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1214 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B1218 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B121C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B121C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1220 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1220 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1220 */ if (_t5) goto L_028B1248; else goto L_028B1224;
|
|
L_028B1224: ; // 0x28b1224
|
|
/* 028B1224 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1228 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B122C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1230 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1230 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1234 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1234 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1238 */ cpu->lr = cpu->r[0];
|
|
/* 028B123C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B123C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1240 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1244 */ return;
|
|
L_028B1248: ; // 0x28b1248
|
|
/* 028B1248 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1248 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B124C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1250 */ cpu->lr = cpu->r[0];
|
|
/* 028B1254 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B1254 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1258 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1258 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B125C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B125C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1260 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1264 */ return;
|
|
}
|
|
|
|
// fn_028B11FC @ 0x28b11fc
|
|
void Gambit_fn_028B11FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B11FC: ; // 0x28b11fc
|
|
/* 028B11FC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B11FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B11FC */ cpu->r[1] = _t0;
|
|
/* 028B1200 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1200 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1204 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1204 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1208 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B120C */ cpu->r[5] = 0x00000017u;
|
|
/* 028B1210 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1214 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1214 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B1218 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B121C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B121C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1220 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1220 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1220 */ if (_t5) goto L_028B1248; else goto L_028B1224;
|
|
L_028B1224: ; // 0x28b1224
|
|
/* 028B1224 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1228 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B122C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1230 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1230 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1234 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1234 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1238 */ cpu->lr = cpu->r[0];
|
|
/* 028B123C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B123C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1240 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1244 */ return;
|
|
L_028B1248: ; // 0x28b1248
|
|
/* 028B1248 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1248 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B124C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1250 */ cpu->lr = cpu->r[0];
|
|
/* 028B1254 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B1254 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1258 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1258 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B125C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B125C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1260 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1264 */ return;
|
|
}
|
|
|
|
// fn_028B1268 @ 0x28b1268
|
|
void Gambit_fn_028B1268(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B1268: ; // 0x28b1268
|
|
/* 028B1268 */ cpu->r[0] = cpu->lr;
|
|
/* 028B126C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B126C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B126C */ cpu->r[1] = _t0;
|
|
/* 028B1270 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1270 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1274 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1274 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1278 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B127C */ cpu->r[5] = 0x00000018u;
|
|
/* 028B1280 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1284 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1284 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B1288 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B128C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B128C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1290 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1290 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1290 */ if (_t5) goto L_028B12B8; else goto L_028B1294;
|
|
L_028B1294: ; // 0x28b1294
|
|
/* 028B1294 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1298 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B129C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B12A0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B12A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B12A4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B12A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B12A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B12AC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B12AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B12B0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B12B4 */ return;
|
|
L_028B12B8: ; // 0x28b12b8
|
|
/* 028B12B8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B12B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B12BC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B12C0 */ cpu->lr = cpu->r[0];
|
|
/* 028B12C4 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B12C4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B12C8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B12C8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B12CC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B12CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B12D0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B12D4 */ return;
|
|
}
|
|
|
|
// fn_028B126C @ 0x28b126c
|
|
void Gambit_fn_028B126C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B126C: ; // 0x28b126c
|
|
/* 028B126C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B126C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B126C */ cpu->r[1] = _t0;
|
|
/* 028B1270 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1270 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1274 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1274 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1278 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B127C */ cpu->r[5] = 0x00000018u;
|
|
/* 028B1280 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1284 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1284 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B1288 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B128C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B128C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1290 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1290 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1290 */ if (_t5) goto L_028B12B8; else goto L_028B1294;
|
|
L_028B1294: ; // 0x28b1294
|
|
/* 028B1294 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1298 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B129C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B12A0 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B12A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B12A4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B12A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B12A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B12AC */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B12AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B12B0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B12B4 */ return;
|
|
L_028B12B8: ; // 0x28b12b8
|
|
/* 028B12B8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B12B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B12BC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B12C0 */ cpu->lr = cpu->r[0];
|
|
/* 028B12C4 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B12C4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B12C8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B12C8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B12CC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B12CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B12D0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B12D4 */ return;
|
|
}
|
|
|
|
// fn_028B12D8 @ 0x28b12d8
|
|
void Gambit_fn_028B12D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B12D8: ; // 0x28b12d8
|
|
/* 028B12D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B12DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B12DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B12DC */ cpu->r[1] = _t0;
|
|
/* 028B12E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B12E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B12E4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B12E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B12E8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B12EC */ cpu->r[5] = 0x00000019u;
|
|
/* 028B12F0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B12F4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B12F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B12F8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B12FC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B12FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1300 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1300 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1300 */ if (_t5) goto L_028B1328; else goto L_028B1304;
|
|
L_028B1304: ; // 0x28b1304
|
|
/* 028B1304 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1308 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B130C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1310 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1310 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1314 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1314 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1318 */ cpu->lr = cpu->r[0];
|
|
/* 028B131C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B131C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1320 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1324 */ return;
|
|
L_028B1328: ; // 0x28b1328
|
|
/* 028B1328 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1328 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B132C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1330 */ cpu->lr = cpu->r[0];
|
|
/* 028B1334 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B1334 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1338 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1338 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B133C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B133C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1340 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1344 */ return;
|
|
}
|
|
|
|
// fn_028B12DC @ 0x28b12dc
|
|
void Gambit_fn_028B12DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B12DC: ; // 0x28b12dc
|
|
/* 028B12DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B12DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B12DC */ cpu->r[1] = _t0;
|
|
/* 028B12E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B12E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B12E4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B12E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B12E8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B12EC */ cpu->r[5] = 0x00000019u;
|
|
/* 028B12F0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B12F4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B12F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B12F8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B12FC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B12FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B1300 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1300 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1300 */ if (_t5) goto L_028B1328; else goto L_028B1304;
|
|
L_028B1304: ; // 0x28b1304
|
|
/* 028B1304 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1308 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B130C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B1310 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1310 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1314 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1314 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1318 */ cpu->lr = cpu->r[0];
|
|
/* 028B131C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B131C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1320 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1324 */ return;
|
|
L_028B1328: ; // 0x28b1328
|
|
/* 028B1328 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1328 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B132C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B1330 */ cpu->lr = cpu->r[0];
|
|
/* 028B1334 */ _t10 = cpu->r[12] + 0xFFFF83E4u;
|
|
/* 028B1334 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B1338 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1338 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B133C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B133C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1340 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1344 */ return;
|
|
}
|
|
|
|
// fn_028B1348 @ 0x28b1348
|
|
void Gambit_fn_028B1348(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B1348: ; // 0x28b1348
|
|
/* 028B1348 */ cpu->r[0] = cpu->lr;
|
|
/* 028B134C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B134C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B134C */ cpu->r[1] = _t0;
|
|
/* 028B1350 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1350 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B1354 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1358 */ cpu->r[5] = 0x0000000Du;
|
|
/* 028B135C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B135C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B1360 */ Gambit_fn_028A8A64(cpu);
|
|
/* 028B1364 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B1368 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B136C */ Gambit_fn_028A806C(cpu);
|
|
/* 028B1370 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1370 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B1374 */ cpu->lr = cpu->r[0];
|
|
/* 028B1378 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1378 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B137C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1380 */ return;
|
|
}
|
|
|
|
// fn_028B134C @ 0x28b134c
|
|
void Gambit_fn_028B134C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B134C: ; // 0x28b134c
|
|
/* 028B134C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B134C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B134C */ cpu->r[1] = _t0;
|
|
/* 028B1350 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1350 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B1354 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1358 */ cpu->r[5] = 0x0000000Du;
|
|
/* 028B135C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B135C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B1360 */ Gambit_fn_028A8A64(cpu);
|
|
/* 028B1364 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B1368 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B136C */ Gambit_fn_028A806C(cpu);
|
|
/* 028B1370 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1370 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B1374 */ cpu->lr = cpu->r[0];
|
|
/* 028B1378 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1378 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B137C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1380 */ return;
|
|
}
|
|
|
|
// fn_028B1384 @ 0x28b1384
|
|
void Gambit_fn_028B1384(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1384: ; // 0x28b1384
|
|
/* 028B1384 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1388 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1388 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1388 */ cpu->r[1] = _t0;
|
|
/* 028B138C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B138C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1390 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1390 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1394 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1394 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1398 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B139C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B13A0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B13A0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B13A4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B13A4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B13A8 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B13AC */ cpu->r[5] = 0x00000005u;
|
|
/* 028B13B0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B13B4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B13B8 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B13BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B13C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B13C4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B13C4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B13C4 */ if (_t7) goto L_028B13F8; else goto L_028B13C8;
|
|
L_028B13C8: ; // 0x28b13c8
|
|
/* 028B13C8 */ cpu->r[5] = 0x00000005u;
|
|
/* 028B13CC */ cpu->r[6] = cpu->r[30];
|
|
/* 028B13D0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B13D4 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B13D8 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B13D8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B13DC */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B13DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B13E0 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B13E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B13E4 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B13E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B13E8 */ cpu->lr = cpu->r[0];
|
|
/* 028B13EC */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B13EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B13F0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B13F4 */ return;
|
|
L_028B13F8: ; // 0x28b13f8
|
|
/* 028B13F8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B13FC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1400 */ Gambit_fn_028B0CB0(cpu);
|
|
/* 028B1404 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1404 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1408 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1408 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B140C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B140C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1410 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1410 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1414 */ cpu->lr = cpu->r[0];
|
|
/* 028B1418 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1418 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B141C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1420 */ return;
|
|
}
|
|
|
|
// fn_028B1388 @ 0x28b1388
|
|
void Gambit_fn_028B1388(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1388: ; // 0x28b1388
|
|
/* 028B1388 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1388 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1388 */ cpu->r[1] = _t0;
|
|
/* 028B138C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B138C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1390 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1390 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1394 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1394 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1398 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B139C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B13A0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B13A0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B13A4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B13A4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B13A8 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B13AC */ cpu->r[5] = 0x00000005u;
|
|
/* 028B13B0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B13B4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B13B8 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B13BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B13C0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B13C4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B13C4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B13C4 */ if (_t7) goto L_028B13F8; else goto L_028B13C8;
|
|
L_028B13C8: ; // 0x28b13c8
|
|
/* 028B13C8 */ cpu->r[5] = 0x00000005u;
|
|
/* 028B13CC */ cpu->r[6] = cpu->r[30];
|
|
/* 028B13D0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B13D4 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B13D8 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B13D8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B13DC */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B13DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B13E0 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B13E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B13E4 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B13E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B13E8 */ cpu->lr = cpu->r[0];
|
|
/* 028B13EC */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B13EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B13F0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B13F4 */ return;
|
|
L_028B13F8: ; // 0x28b13f8
|
|
/* 028B13F8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B13FC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1400 */ Gambit_fn_028B0CB0(cpu);
|
|
/* 028B1404 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1404 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1408 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1408 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B140C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B140C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1410 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1410 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1414 */ cpu->lr = cpu->r[0];
|
|
/* 028B1418 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1418 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B141C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1420 */ return;
|
|
}
|
|
|
|
// fn_028B1424 @ 0x28b1424
|
|
void Gambit_fn_028B1424(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1424: ; // 0x28b1424
|
|
/* 028B1424 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1428 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1428 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1428 */ cpu->r[1] = _t0;
|
|
/* 028B142C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B142C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1430 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1430 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1434 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1434 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1438 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B143C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1440 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1440 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1444 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1444 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1448 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B144C */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B1450 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1454 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1458 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B145C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1460 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1464 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1464 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1464 */ if (_t7) goto L_028B1498; else goto L_028B1468;
|
|
L_028B1468: ; // 0x28b1468
|
|
/* 028B1468 */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B146C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1470 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1474 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1478 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1478 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B147C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B147C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1480 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1480 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1484 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1484 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1488 */ cpu->lr = cpu->r[0];
|
|
/* 028B148C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B148C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1490 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1494 */ return;
|
|
L_028B1498: ; // 0x28b1498
|
|
/* 028B1498 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B149C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B14A0 */ Gambit_fn_028B0E08(cpu);
|
|
/* 028B14A4 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B14A4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B14A8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B14A8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B14AC */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B14AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B14B0 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B14B0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B14B4 */ cpu->lr = cpu->r[0];
|
|
/* 028B14B8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B14B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B14BC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B14C0 */ return;
|
|
}
|
|
|
|
// fn_028B1428 @ 0x28b1428
|
|
void Gambit_fn_028B1428(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1428: ; // 0x28b1428
|
|
/* 028B1428 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1428 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1428 */ cpu->r[1] = _t0;
|
|
/* 028B142C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B142C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1430 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1430 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1434 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1434 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1438 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B143C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1440 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1440 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1444 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1444 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1448 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B144C */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B1450 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1454 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1458 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B145C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1460 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1464 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1464 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1464 */ if (_t7) goto L_028B1498; else goto L_028B1468;
|
|
L_028B1468: ; // 0x28b1468
|
|
/* 028B1468 */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B146C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1470 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1474 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1478 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1478 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B147C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B147C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1480 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1480 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1484 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1484 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1488 */ cpu->lr = cpu->r[0];
|
|
/* 028B148C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B148C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1490 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1494 */ return;
|
|
L_028B1498: ; // 0x28b1498
|
|
/* 028B1498 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B149C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B14A0 */ Gambit_fn_028B0E08(cpu);
|
|
/* 028B14A4 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B14A4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B14A8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B14A8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B14AC */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B14AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B14B0 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B14B0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B14B4 */ cpu->lr = cpu->r[0];
|
|
/* 028B14B8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B14B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B14BC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B14C0 */ return;
|
|
}
|
|
|
|
// fn_028B14C4 @ 0x28b14c4
|
|
void Gambit_fn_028B14C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B14C4: ; // 0x28b14c4
|
|
/* 028B14C4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B14C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B14C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B14C8 */ cpu->r[1] = _t0;
|
|
/* 028B14CC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B14CC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B14D0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B14D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B14D4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B14D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B14D8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B14DC */ cpu->r[28] = cpu->r[4];
|
|
/* 028B14E0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B14E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B14E4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B14E4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B14E8 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B14EC */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B14F0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B14F4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B14F8 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B14FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1500 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1504 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1504 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1504 */ if (_t7) goto L_028B1538; else goto L_028B1508;
|
|
L_028B1508: ; // 0x28b1508
|
|
/* 028B1508 */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B150C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1510 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1514 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1518 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1518 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B151C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B151C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1520 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1520 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1524 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1524 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1528 */ cpu->lr = cpu->r[0];
|
|
/* 028B152C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B152C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1530 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1534 */ return;
|
|
L_028B1538: ; // 0x28b1538
|
|
/* 028B1538 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B153C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1540 */ Gambit_fn_028B0E78(cpu);
|
|
/* 028B1544 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1544 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1548 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1548 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B154C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B154C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1550 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1550 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1554 */ cpu->lr = cpu->r[0];
|
|
/* 028B1558 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1558 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B155C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1560 */ return;
|
|
}
|
|
|
|
// fn_028B14C8 @ 0x28b14c8
|
|
void Gambit_fn_028B14C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B14C8: ; // 0x28b14c8
|
|
/* 028B14C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B14C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B14C8 */ cpu->r[1] = _t0;
|
|
/* 028B14CC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B14CC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B14D0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B14D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B14D4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B14D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B14D8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B14DC */ cpu->r[28] = cpu->r[4];
|
|
/* 028B14E0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B14E0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B14E4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B14E4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B14E8 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B14EC */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B14F0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B14F4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B14F8 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B14FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1500 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1504 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1504 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1504 */ if (_t7) goto L_028B1538; else goto L_028B1508;
|
|
L_028B1508: ; // 0x28b1508
|
|
/* 028B1508 */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B150C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1510 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1514 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1518 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1518 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B151C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B151C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1520 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1520 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1524 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1524 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1528 */ cpu->lr = cpu->r[0];
|
|
/* 028B152C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B152C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1530 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1534 */ return;
|
|
L_028B1538: ; // 0x28b1538
|
|
/* 028B1538 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B153C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1540 */ Gambit_fn_028B0E78(cpu);
|
|
/* 028B1544 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1544 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1548 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1548 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B154C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B154C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1550 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1550 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1554 */ cpu->lr = cpu->r[0];
|
|
/* 028B1558 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1558 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B155C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1560 */ return;
|
|
}
|
|
|
|
// fn_028B1564 @ 0x28b1564
|
|
void Gambit_fn_028B1564(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1564: ; // 0x28b1564
|
|
/* 028B1564 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1568 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1568 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1568 */ cpu->r[1] = _t0;
|
|
/* 028B156C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B156C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1570 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1570 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1574 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1574 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1578 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B157C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1580 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1580 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1584 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1584 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1588 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B158C */ cpu->r[5] = 0x00000010u;
|
|
/* 028B1590 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1594 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1598 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B159C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B15A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B15A4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B15A4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B15A4 */ if (_t7) goto L_028B15D8; else goto L_028B15A8;
|
|
L_028B15A8: ; // 0x28b15a8
|
|
/* 028B15A8 */ cpu->r[5] = 0x00000010u;
|
|
/* 028B15AC */ cpu->r[6] = cpu->r[30];
|
|
/* 028B15B0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B15B4 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B15B8 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B15B8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B15BC */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B15BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B15C0 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B15C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B15C4 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B15C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B15C8 */ cpu->lr = cpu->r[0];
|
|
/* 028B15CC */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B15CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B15D0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B15D4 */ return;
|
|
L_028B15D8: ; // 0x28b15d8
|
|
/* 028B15D8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B15DC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B15E0 */ Gambit_fn_028B0EE8(cpu);
|
|
/* 028B15E4 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B15E4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B15E8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B15E8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B15EC */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B15EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B15F0 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B15F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B15F4 */ cpu->lr = cpu->r[0];
|
|
/* 028B15F8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B15F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B15FC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1600 */ return;
|
|
}
|
|
|
|
// fn_028B1568 @ 0x28b1568
|
|
void Gambit_fn_028B1568(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1568: ; // 0x28b1568
|
|
/* 028B1568 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1568 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1568 */ cpu->r[1] = _t0;
|
|
/* 028B156C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B156C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1570 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1570 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1574 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1574 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1578 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B157C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1580 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1580 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1584 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1584 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1588 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B158C */ cpu->r[5] = 0x00000010u;
|
|
/* 028B1590 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1594 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1598 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B159C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B15A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B15A4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B15A4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B15A4 */ if (_t7) goto L_028B15D8; else goto L_028B15A8;
|
|
L_028B15A8: ; // 0x28b15a8
|
|
/* 028B15A8 */ cpu->r[5] = 0x00000010u;
|
|
/* 028B15AC */ cpu->r[6] = cpu->r[30];
|
|
/* 028B15B0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B15B4 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B15B8 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B15B8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B15BC */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B15BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B15C0 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B15C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B15C4 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B15C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B15C8 */ cpu->lr = cpu->r[0];
|
|
/* 028B15CC */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B15CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B15D0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B15D4 */ return;
|
|
L_028B15D8: ; // 0x28b15d8
|
|
/* 028B15D8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B15DC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B15E0 */ Gambit_fn_028B0EE8(cpu);
|
|
/* 028B15E4 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B15E4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B15E8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B15E8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B15EC */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B15EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B15F0 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B15F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B15F4 */ cpu->lr = cpu->r[0];
|
|
/* 028B15F8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B15F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B15FC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1600 */ return;
|
|
}
|
|
|
|
// fn_028B1604 @ 0x28b1604
|
|
void Gambit_fn_028B1604(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1604: ; // 0x28b1604
|
|
/* 028B1604 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1608 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1608 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1608 */ cpu->r[1] = _t0;
|
|
/* 028B160C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B160C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1610 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1610 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1614 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1614 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1618 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B161C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1620 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1620 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1624 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1624 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1628 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B162C */ cpu->r[5] = 0x00000011u;
|
|
/* 028B1630 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1634 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1638 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B163C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1640 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1644 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1644 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1644 */ if (_t7) goto L_028B1678; else goto L_028B1648;
|
|
L_028B1648: ; // 0x28b1648
|
|
/* 028B1648 */ cpu->r[5] = 0x00000011u;
|
|
/* 028B164C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1650 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1654 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1658 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1658 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B165C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B165C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1660 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1660 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1664 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1664 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1668 */ cpu->lr = cpu->r[0];
|
|
/* 028B166C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B166C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1670 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1674 */ return;
|
|
L_028B1678: ; // 0x28b1678
|
|
/* 028B1678 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B167C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1680 */ Gambit_fn_028B0F58(cpu);
|
|
/* 028B1684 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1684 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1688 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1688 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B168C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B168C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1690 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1690 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1694 */ cpu->lr = cpu->r[0];
|
|
/* 028B1698 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1698 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B169C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B16A0 */ return;
|
|
}
|
|
|
|
// fn_028B1608 @ 0x28b1608
|
|
void Gambit_fn_028B1608(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1608: ; // 0x28b1608
|
|
/* 028B1608 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1608 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1608 */ cpu->r[1] = _t0;
|
|
/* 028B160C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B160C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1610 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1610 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1614 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1614 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1618 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B161C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1620 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1620 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1624 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1624 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1628 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B162C */ cpu->r[5] = 0x00000011u;
|
|
/* 028B1630 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1634 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1638 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B163C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1640 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1644 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1644 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1644 */ if (_t7) goto L_028B1678; else goto L_028B1648;
|
|
L_028B1648: ; // 0x28b1648
|
|
/* 028B1648 */ cpu->r[5] = 0x00000011u;
|
|
/* 028B164C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1650 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1654 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1658 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1658 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B165C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B165C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1660 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1660 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1664 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1664 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1668 */ cpu->lr = cpu->r[0];
|
|
/* 028B166C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B166C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1670 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1674 */ return;
|
|
L_028B1678: ; // 0x28b1678
|
|
/* 028B1678 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B167C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1680 */ Gambit_fn_028B0F58(cpu);
|
|
/* 028B1684 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1684 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1688 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1688 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B168C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B168C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1690 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1690 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1694 */ cpu->lr = cpu->r[0];
|
|
/* 028B1698 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1698 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B169C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B16A0 */ return;
|
|
}
|
|
|
|
// fn_028B16A4 @ 0x28b16a4
|
|
void Gambit_fn_028B16A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B16A4: ; // 0x28b16a4
|
|
/* 028B16A4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B16A8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B16A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B16A8 */ cpu->r[1] = _t0;
|
|
/* 028B16AC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B16AC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B16B0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B16B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B16B4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B16B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B16B8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B16BC */ cpu->r[28] = cpu->r[4];
|
|
/* 028B16C0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B16C0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B16C4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B16C4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B16C8 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B16CC */ cpu->r[5] = 0x00000012u;
|
|
/* 028B16D0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B16D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B16D8 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B16DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B16E0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B16E4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B16E4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B16E4 */ if (_t7) goto L_028B1718; else goto L_028B16E8;
|
|
L_028B16E8: ; // 0x28b16e8
|
|
/* 028B16E8 */ cpu->r[5] = 0x00000012u;
|
|
/* 028B16EC */ cpu->r[6] = cpu->r[30];
|
|
/* 028B16F0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B16F4 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B16F8 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B16F8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B16FC */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B16FC */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1700 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1700 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1704 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1704 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1708 */ cpu->lr = cpu->r[0];
|
|
/* 028B170C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B170C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1710 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1714 */ return;
|
|
L_028B1718: ; // 0x28b1718
|
|
/* 028B1718 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B171C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1720 */ Gambit_fn_028B0FC8(cpu);
|
|
/* 028B1724 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1724 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1728 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1728 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B172C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B172C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1730 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1730 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1734 */ cpu->lr = cpu->r[0];
|
|
/* 028B1738 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1738 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B173C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1740 */ return;
|
|
}
|
|
|
|
// fn_028B16A8 @ 0x28b16a8
|
|
void Gambit_fn_028B16A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B16A8: ; // 0x28b16a8
|
|
/* 028B16A8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B16A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B16A8 */ cpu->r[1] = _t0;
|
|
/* 028B16AC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B16AC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B16B0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B16B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B16B4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B16B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B16B8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B16BC */ cpu->r[28] = cpu->r[4];
|
|
/* 028B16C0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B16C0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B16C4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B16C4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B16C8 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B16CC */ cpu->r[5] = 0x00000012u;
|
|
/* 028B16D0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B16D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B16D8 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B16DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B16E0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B16E4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B16E4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B16E4 */ if (_t7) goto L_028B1718; else goto L_028B16E8;
|
|
L_028B16E8: ; // 0x28b16e8
|
|
/* 028B16E8 */ cpu->r[5] = 0x00000012u;
|
|
/* 028B16EC */ cpu->r[6] = cpu->r[30];
|
|
/* 028B16F0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B16F4 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B16F8 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B16F8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B16FC */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B16FC */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1700 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1700 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1704 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1704 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1708 */ cpu->lr = cpu->r[0];
|
|
/* 028B170C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B170C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1710 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1714 */ return;
|
|
L_028B1718: ; // 0x28b1718
|
|
/* 028B1718 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B171C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1720 */ Gambit_fn_028B0FC8(cpu);
|
|
/* 028B1724 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1724 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1728 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1728 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B172C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B172C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1730 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1730 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1734 */ cpu->lr = cpu->r[0];
|
|
/* 028B1738 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1738 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B173C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1740 */ return;
|
|
}
|
|
|
|
// fn_028B1744 @ 0x28b1744
|
|
void Gambit_fn_028B1744(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1744: ; // 0x28b1744
|
|
/* 028B1744 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1748 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1748 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1748 */ cpu->r[1] = _t0;
|
|
/* 028B174C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B174C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1750 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1750 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1754 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1754 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1758 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B175C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1760 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1760 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1764 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1764 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1768 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B176C */ cpu->r[5] = 0x00000013u;
|
|
/* 028B1770 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1774 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1778 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B177C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1780 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1784 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1784 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1784 */ if (_t7) goto L_028B17B8; else goto L_028B1788;
|
|
L_028B1788: ; // 0x28b1788
|
|
/* 028B1788 */ cpu->r[5] = 0x00000013u;
|
|
/* 028B178C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1790 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1794 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1798 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1798 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B179C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B179C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B17A0 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B17A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B17A4 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B17A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B17A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B17AC */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B17AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B17B0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B17B4 */ return;
|
|
L_028B17B8: ; // 0x28b17b8
|
|
/* 028B17B8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B17BC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B17C0 */ Gambit_fn_028B1038(cpu);
|
|
/* 028B17C4 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B17C4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B17C8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B17C8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B17CC */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B17CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B17D0 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B17D0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B17D4 */ cpu->lr = cpu->r[0];
|
|
/* 028B17D8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B17D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B17DC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B17E0 */ return;
|
|
}
|
|
|
|
// fn_028B1748 @ 0x28b1748
|
|
void Gambit_fn_028B1748(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B1748: ; // 0x28b1748
|
|
/* 028B1748 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1748 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1748 */ cpu->r[1] = _t0;
|
|
/* 028B174C */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B174C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1750 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1750 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B1754 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1754 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B1758 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B175C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1760 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1760 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1764 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1764 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1768 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B176C */ cpu->r[5] = 0x00000013u;
|
|
/* 028B1770 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1774 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1778 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B177C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1780 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1784 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1784 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1784 */ if (_t7) goto L_028B17B8; else goto L_028B1788;
|
|
L_028B1788: ; // 0x28b1788
|
|
/* 028B1788 */ cpu->r[5] = 0x00000013u;
|
|
/* 028B178C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1790 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1794 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1798 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1798 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B179C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B179C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B17A0 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B17A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B17A4 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B17A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B17A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B17AC */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B17AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B17B0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B17B4 */ return;
|
|
L_028B17B8: ; // 0x28b17b8
|
|
/* 028B17B8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B17BC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B17C0 */ Gambit_fn_028B1038(cpu);
|
|
/* 028B17C4 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B17C4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B17C8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B17C8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B17CC */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B17CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B17D0 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B17D0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B17D4 */ cpu->lr = cpu->r[0];
|
|
/* 028B17D8 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B17D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B17DC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B17E0 */ return;
|
|
}
|
|
|
|
// fn_028B17E4 @ 0x28b17e4
|
|
void Gambit_fn_028B17E4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B17E4: ; // 0x28b17e4
|
|
/* 028B17E4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B17E8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B17E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B17E8 */ cpu->r[1] = _t0;
|
|
/* 028B17EC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B17EC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B17F0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B17F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B17F4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B17F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B17F8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B17FC */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1800 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1800 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1804 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1804 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1808 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B180C */ cpu->r[5] = 0x00000014u;
|
|
/* 028B1810 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1814 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1818 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B181C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1820 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1824 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1824 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1824 */ if (_t7) goto L_028B1858; else goto L_028B1828;
|
|
L_028B1828: ; // 0x28b1828
|
|
/* 028B1828 */ cpu->r[5] = 0x00000014u;
|
|
/* 028B182C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1830 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1834 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1838 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1838 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B183C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B183C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1840 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1840 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1844 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1844 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1848 */ cpu->lr = cpu->r[0];
|
|
/* 028B184C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B184C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1850 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1854 */ return;
|
|
L_028B1858: ; // 0x28b1858
|
|
/* 028B1858 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B185C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1860 */ Gambit_fn_028B10A8(cpu);
|
|
/* 028B1864 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1864 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1868 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1868 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B186C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B186C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1870 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1870 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1874 */ cpu->lr = cpu->r[0];
|
|
/* 028B1878 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1878 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B187C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1880 */ return;
|
|
}
|
|
|
|
// fn_028B17E8 @ 0x28b17e8
|
|
void Gambit_fn_028B17E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B17E8: ; // 0x28b17e8
|
|
/* 028B17E8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B17E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B17E8 */ cpu->r[1] = _t0;
|
|
/* 028B17EC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B17EC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B17F0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B17F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B17F4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B17F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B17F8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B17FC */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1800 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1800 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B1804 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1804 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1808 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B180C */ cpu->r[5] = 0x00000014u;
|
|
/* 028B1810 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1814 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1818 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B181C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1820 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1824 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1824 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1824 */ if (_t7) goto L_028B1858; else goto L_028B1828;
|
|
L_028B1828: ; // 0x28b1828
|
|
/* 028B1828 */ cpu->r[5] = 0x00000014u;
|
|
/* 028B182C */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1830 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1834 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B1838 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1838 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B183C */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B183C */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1840 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1840 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1844 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1844 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1848 */ cpu->lr = cpu->r[0];
|
|
/* 028B184C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B184C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1850 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1854 */ return;
|
|
L_028B1858: ; // 0x28b1858
|
|
/* 028B1858 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B185C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1860 */ Gambit_fn_028B10A8(cpu);
|
|
/* 028B1864 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1864 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1868 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1868 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B186C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B186C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1870 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1870 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1874 */ cpu->lr = cpu->r[0];
|
|
/* 028B1878 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1878 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B187C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1880 */ return;
|
|
}
|
|
|
|
// fn_028B1884 @ 0x28b1884
|
|
void Gambit_fn_028B1884(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B1884: ; // 0x28b1884
|
|
/* 028B1884 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000005u);
|
|
/* 028B1888 */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1888 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028B1888 */ if (_t1) goto L_028B18A4; else goto L_028B188C;
|
|
L_028B188C: ; // 0x28b188c
|
|
/* 028B188C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x0000000Du);
|
|
/* 028B1890 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B1890 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B1890 */ if (_t3) goto L_028B18B8; else goto L_028B1894;
|
|
L_028B1894: ; // 0x28b1894
|
|
/* 028B1894 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000014u);
|
|
/* 028B1898 */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B1898 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B1898 */ if (_t5) goto L_028B189C; else goto L_028B18AC;
|
|
L_028B189C: ; // 0x28b189c
|
|
/* 028B189C */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028B18A0 */ return;
|
|
L_028B18A4: ; // 0x28b18a4
|
|
/* 028B18A4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B18A8 */ return;
|
|
L_028B18AC: ; // 0x28b18ac
|
|
/* 028B18AC */ cpu->r[12] = cpu->r[4] + 0x10140000u;
|
|
/* 028B18B0 */ _t6 = cpu->r[12] + 0xFFFF83DBu;
|
|
/* 028B18B0 */ cpu->r[3] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028B18B4 */ return;
|
|
L_028B18B8: ; // 0x28b18b8
|
|
/* 028B18B8 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028B18BC */ return;
|
|
}
|
|
|
|
// fn_028B18C0 @ 0x28b18c0
|
|
void Gambit_fn_028B18C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028A89E8: ; // 0x28a89e8
|
|
/* 028A89E8 */ cpu->r[0] = cpu->lr;
|
|
/* 028A89EC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028A89EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028A89EC */ cpu->r[1] = _t0;
|
|
/* 028A89F0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A89F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028A89F4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028A89F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028A89F8 */ _t3 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028A89F8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028A89FC */ _t4 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028A89FC */ cpu->r[7] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028A8A00 */ cpu->r[31] = cpu->r[4];
|
|
/* 028A8A04 */ cpu->ctr = cpu->r[7];
|
|
/* 028A8A08 */ cpu->r[4] = cpu->r[5];
|
|
/* 028A8A0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028A8A10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028A8A14 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028A8A14 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028A8A14 */ if (_t6) goto L_028A8A20; else goto L_028A8A18;
|
|
L_028A8A18: ; // 0x28a8a18
|
|
/* 028A8A18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028A8A1C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028A8A1C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028A8A1C */ if (_t8) goto L_028A8A20; else goto L_028A8A38;
|
|
L_028A8A20: ; // 0x28a8a20
|
|
/* 028A8A20 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028A8A20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028A8A24 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A8A24 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028A8A28 */ cpu->lr = cpu->r[0];
|
|
/* 028A8A2C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028A8A30 */ cpu->r[3] = 0x00000000u;
|
|
/* 028A8A34 */ return;
|
|
L_028A8A38: ; // 0x28a8a38
|
|
/* 028A8A38 */ cpu->r[9] = 0x00000001u;
|
|
/* 028A8A3C */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 028A8A3C */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028A8A40 */ /* nop */
|
|
/* 028A8A44 */ cpu->r[11] = cpu->r[12] & cpu->r[8];
|
|
/* 028A8A48 */ cpu->r[0] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028A8A4C */ cpu->r[3] = cpu->r[11] - cpu->r[0];
|
|
/* 028A8A50 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028A8A50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028A8A54 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A8A54 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028A8A58 */ cpu->lr = cpu->r[0];
|
|
/* 028A8A5C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028A8A60 */ return;
|
|
L_028B18C0: ; // 0x28b18c0
|
|
/* 028B18C0 */ cpu->r[5] = 0x0000000Du;
|
|
/* 028B18C4 */ goto L_028A89E8;
|
|
}
|
|
|
|
// fn_028B18C8 @ 0x28b18c8
|
|
void Gambit_fn_028B18C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B18C8: ; // 0x28b18c8
|
|
/* 028B18C8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B18CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B18CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B18CC */ cpu->r[1] = _t0;
|
|
/* 028B18D0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B18D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B18D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B18D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B18D8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B18D8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B18DC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B18DC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B18DC */ if (_t4) goto L_028B18E0; else goto L_028B18F0;
|
|
L_028B18E0: ; // 0x28b18e0
|
|
/* 028B18E0 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028B18E4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B18E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B18E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B18EC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B18EC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B18EC */ if (_t6) goto L_028B1914; else goto L_028B18F0;
|
|
L_028B18F0: ; // 0x28b18f0
|
|
/* 028B18F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B18F4 */ Gambit_fn_028AA370(cpu);
|
|
/* 028B18F8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B18FC */ cpu->r[11] = 0x00000000u;
|
|
/* 028B1900 */ cpu->r[0] = cpu->r[0] + 0xFFFF8570u;
|
|
/* 028B1904 */ _t7 = cpu->r[31] + 0x0000006Cu;
|
|
/* 028B1904 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028B1908 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028B1908 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028B190C */ _t9 = cpu->r[31] + 0x00000060u;
|
|
/* 028B190C */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028B1910 */ _t10 = cpu->r[31] + 0x00000068u;
|
|
/* 028B1910 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
L_028B1914: ; // 0x28b1914
|
|
/* 028B1914 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1914 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1918 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B191C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B191C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1920 */ cpu->lr = cpu->r[0];
|
|
/* 028B1924 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1928 */ return;
|
|
}
|
|
|
|
// fn_028B18CC @ 0x28b18cc
|
|
void Gambit_fn_028B18CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B18CC: ; // 0x28b18cc
|
|
/* 028B18CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B18CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B18CC */ cpu->r[1] = _t0;
|
|
/* 028B18D0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B18D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B18D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B18D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B18D8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B18D8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B18DC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B18DC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B18DC */ if (_t4) goto L_028B18E0; else goto L_028B18F0;
|
|
L_028B18E0: ; // 0x28b18e0
|
|
/* 028B18E0 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028B18E4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B18E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B18E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B18EC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B18EC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B18EC */ if (_t6) goto L_028B1914; else goto L_028B18F0;
|
|
L_028B18F0: ; // 0x28b18f0
|
|
/* 028B18F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B18F4 */ Gambit_fn_028AA370(cpu);
|
|
/* 028B18F8 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B18FC */ cpu->r[11] = 0x00000000u;
|
|
/* 028B1900 */ cpu->r[0] = cpu->r[0] + 0xFFFF8570u;
|
|
/* 028B1904 */ _t7 = cpu->r[31] + 0x0000006Cu;
|
|
/* 028B1904 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028B1908 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028B1908 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028B190C */ _t9 = cpu->r[31] + 0x00000060u;
|
|
/* 028B190C */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028B1910 */ _t10 = cpu->r[31] + 0x00000068u;
|
|
/* 028B1910 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
L_028B1914: ; // 0x28b1914
|
|
/* 028B1914 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1914 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1918 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B191C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B191C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1920 */ cpu->lr = cpu->r[0];
|
|
/* 028B1924 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1928 */ return;
|
|
}
|
|
|
|
// fn_028B192C @ 0x28b192c
|
|
void Gambit_fn_028B192C(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_028B192C: ; // 0x28b192c
|
|
/* 028B192C */ cpu->r[0] = cpu->lr;
|
|
/* 028B1930 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1930 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1930 */ cpu->r[1] = _t0;
|
|
/* 028B1934 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1934 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1938 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1938 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B193C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B193C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B1940 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1940 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B1944 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1944 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1948 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028B194C */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1950 */ _t6 = cpu->r[29] + 0xFFFF9A5Cu;
|
|
/* 028B1950 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1950 */ cpu->r[29] = _t6;
|
|
/* 028B1954 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1958 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1958 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B1958 */ if (_t8) goto L_028B195C; else goto L_028B19AC;
|
|
L_028B195C: ; // 0x28b195c
|
|
/* 028B195C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B1960 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028B1964 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1968 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B196C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1970 */ cpu->r[28] = cpu->r[31] + 0x00000050u;
|
|
/* 028B1970 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B1974 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1974 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B1974 */ if (_t10) goto L_028B1994; else goto L_028B1978;
|
|
L_028B1978: ; // 0x28b1978
|
|
/* 028B1978 */ cpu->r[5] = 0x00000003u;
|
|
/* 028B197C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B1980 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B1984 */ Gambit_fn_02821D88(cpu);
|
|
/* 028B1988 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B198C */ cpu->r[0] = cpu->r[0] + 0xFFFF8560u;
|
|
/* 028B1990 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B1990 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B1994: ; // 0x28b1994
|
|
/* 028B1994 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B1998 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1998 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B199C */ _t12 = cpu->r[12] + 0xFFFF9A64u;
|
|
/* 028B199C */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028B19A0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B19A0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B19A0 */ if (_t14) goto L_028B19A8; else goto L_028B19A4;
|
|
L_028B19A4: ; // 0x28b19a4
|
|
/* 028B19A4 */ Gambit_fn_028B18C8(cpu);
|
|
L_028B19A8: ; // 0x28b19a8
|
|
/* 028B19A8 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028B19A8 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028B19AC: ; // 0x28b19ac
|
|
/* 028B19AC */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B19AC */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B19B0 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B19B0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B19B4 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B19B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B19B8 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B19B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B19BC */ cpu->lr = cpu->r[0];
|
|
/* 028B19C0 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B19C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B19C4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B19C8 */ return;
|
|
}
|
|
|
|
// fn_028B1930 @ 0x28b1930
|
|
void Gambit_fn_028B1930(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_028B1930: ; // 0x28b1930
|
|
/* 028B1930 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1930 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1930 */ cpu->r[1] = _t0;
|
|
/* 028B1934 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1934 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B1938 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1938 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B193C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B193C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B1940 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1940 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B1944 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1944 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1948 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028B194C */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1950 */ _t6 = cpu->r[29] + 0xFFFF9A5Cu;
|
|
/* 028B1950 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1950 */ cpu->r[29] = _t6;
|
|
/* 028B1954 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1958 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1958 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B1958 */ if (_t8) goto L_028B195C; else goto L_028B19AC;
|
|
L_028B195C: ; // 0x28b195c
|
|
/* 028B195C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B1960 */ cpu->r[3] = 0x000000A8u;
|
|
/* 028B1964 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1968 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B196C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1970 */ cpu->r[28] = cpu->r[31] + 0x00000050u;
|
|
/* 028B1970 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B1974 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1974 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B1974 */ if (_t10) goto L_028B1994; else goto L_028B1978;
|
|
L_028B1978: ; // 0x28b1978
|
|
/* 028B1978 */ cpu->r[5] = 0x00000003u;
|
|
/* 028B197C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B1980 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B1984 */ Gambit_fn_02821D88(cpu);
|
|
/* 028B1988 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B198C */ cpu->r[0] = cpu->r[0] + 0xFFFF8560u;
|
|
/* 028B1990 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B1990 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B1994: ; // 0x28b1994
|
|
/* 028B1994 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B1998 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1998 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B199C */ _t12 = cpu->r[12] + 0xFFFF9A64u;
|
|
/* 028B199C */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028B19A0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B19A0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B19A0 */ if (_t14) goto L_028B19A8; else goto L_028B19A4;
|
|
L_028B19A4: ; // 0x28b19a4
|
|
/* 028B19A4 */ Gambit_fn_028B18C8(cpu);
|
|
L_028B19A8: ; // 0x28b19a8
|
|
/* 028B19A8 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028B19A8 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028B19AC: ; // 0x28b19ac
|
|
/* 028B19AC */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B19AC */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B19B0 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B19B0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B19B4 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B19B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B19B8 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B19B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B19BC */ cpu->lr = cpu->r[0];
|
|
/* 028B19C0 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B19C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B19C4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B19C8 */ return;
|
|
}
|
|
|
|
// fn_028B19CC @ 0x28b19cc
|
|
void Gambit_fn_028B19CC(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_028B19CC: ; // 0x28b19cc
|
|
/* 028B19CC */ _t0 = cpu->r[3] + 0x00000060u;
|
|
/* 028B19CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B19D0 */ _t1 = cpu->r[12] + 0x00001760u;
|
|
/* 028B19D0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B19D4 */ _t2 = cpu->r[3] + 0x00000070u;
|
|
/* 028B19D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[11]);
|
|
/* 028B19D8 */ _t3 = cpu->r[12] + 0x00001764u;
|
|
/* 028B19D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B19DC */ _t4 = cpu->r[3] + 0x00000074u;
|
|
/* 028B19DC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B19E0 */ _t5 = cpu->r[12] + 0x00001770u;
|
|
/* 028B19E0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B19E4 */ _t6 = cpu->r[3] + 0x00000078u;
|
|
/* 028B19E4 */ rbrew_write32(cpu->mem, _t6, cpu->r[11]);
|
|
/* 028B19E8 */ _t7 = cpu->r[12] + 0x00001774u;
|
|
/* 028B19E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B19EC */ _t8 = cpu->r[3] + 0x0000007Cu;
|
|
/* 028B19EC */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028B19F0 */ cpu->r[11] = 0x00000000u;
|
|
/* 028B19F4 */ _t9 = cpu->r[12] + 0x00001778u;
|
|
/* 028B19F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B19F8 */ _t10 = cpu->r[3] + 0x00000084u;
|
|
/* 028B19F8 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 028B19FC */ _t11 = cpu->r[3] + 0x00000080u;
|
|
/* 028B19FC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028B1A00 */ _t12 = cpu->r[12] + 0x000026A4u;
|
|
/* 028B1A00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B1A04 */ _t13 = cpu->r[3] + 0x00000088u;
|
|
/* 028B1A04 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028B1A08 */ _t14 = cpu->r[12] + 0x000026A8u;
|
|
/* 028B1A08 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B1A0C */ _t15 = cpu->r[3] + 0x0000008Cu;
|
|
/* 028B1A0C */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
/* 028B1A10 */ _t16 = cpu->r[12] + 0x000026ACu;
|
|
/* 028B1A10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1A14 */ _t17 = cpu->r[3] + 0x00000090u;
|
|
/* 028B1A14 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 028B1A18 */ _t18 = cpu->r[12] + 0x000026B0u;
|
|
/* 028B1A18 */ cpu->r[11] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B1A1C */ _t19 = cpu->r[3] + 0x00000094u;
|
|
/* 028B1A1C */ rbrew_write32(cpu->mem, _t19, cpu->r[11]);
|
|
/* 028B1A20 */ _t20 = cpu->r[12] + 0x000026B4u;
|
|
/* 028B1A20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B1A24 */ _t21 = cpu->r[3] + 0x00000098u;
|
|
/* 028B1A24 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028B1A28 */ _t22 = cpu->r[12] + 0x000026B8u;
|
|
/* 028B1A28 */ cpu->r[11] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B1A2C */ _t23 = cpu->r[3] + 0x0000009Cu;
|
|
/* 028B1A2C */ rbrew_write32(cpu->mem, _t23, cpu->r[11]);
|
|
/* 028B1A30 */ _t24 = cpu->r[12] + 0x000026BCu;
|
|
/* 028B1A30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B1A34 */ _t25 = cpu->r[3] + 0x000000A0u;
|
|
/* 028B1A34 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 028B1A38 */ return;
|
|
}
|
|
|
|
// fn_028B1A3C @ 0x28b1a3c
|
|
void Gambit_fn_028B1A3C(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_028B1A3C: ; // 0x28b1a3c
|
|
/* 028B1A3C */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B1A3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1A3C */ cpu->r[1] = _t0;
|
|
/* 028B1A40 */ /* nop */
|
|
/* 028B1A44 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1A48 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B1A48 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B1A4C */ cpu->r[29] = cpu->r[6];
|
|
/* 028B1A50 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B1A54 */ _t2 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B1A54 */ cpu->r[6] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B1A58 */ cpu->r[31] = cpu->r[9];
|
|
/* 028B1A5C */ _t3 = cpu->r[6] + 0x00000074u;
|
|
/* 028B1A5C */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B1A60 */ cpu->r[26] = cpu->r[3];
|
|
/* 028B1A64 */ cpu->ctr = cpu->r[9];
|
|
/* 028B1A68 */ cpu->r[27] = cpu->r[4];
|
|
/* 028B1A6C */ cpu->r[30] = cpu->r[7];
|
|
/* 028B1A70 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B1A74 */ cpu->r[24] = cpu->r[8];
|
|
/* 028B1A78 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1A7C */ _t4 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B1A7C */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B1A80 */ _t5 = cpu->r[10] + 0x0000007Cu;
|
|
/* 028B1A80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B1A84 */ cpu->ctr = cpu->r[0];
|
|
/* 028B1A88 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B1A8C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1A90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B1A94 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1A94 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B1A94 */ if (_t7) goto L_028B1AC0; else goto L_028B1A98;
|
|
L_028B1A98: ; // 0x28b1a98
|
|
/* 028B1A98 */ _t8 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B1A98 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1A9C */ _t9 = cpu->r[12] + 0x00000074u;
|
|
/* 028B1A9C */ cpu->r[5] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1AA0 */ cpu->ctr = cpu->r[5];
|
|
/* 028B1AA4 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B1AA8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1AAC */ _t10 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B1AAC */ cpu->r[6] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1AB0 */ _t11 = cpu->r[6] + 0x0000007Cu;
|
|
/* 028B1AB0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1AB4 */ cpu->ctr = cpu->r[7];
|
|
/* 028B1AB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B1ABC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B1AC0: ; // 0x28b1ac0
|
|
/* 028B1AC0 */ cpu->r[8] = 0x00000001u;
|
|
/* 028B1AC4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028B1AC8 */ cpu->r[25] = 0x00000000u;
|
|
/* 028B1ACC */ _t12 = cpu->r[26] + 0x000000A4u;
|
|
/* 028B1ACC */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[8]);
|
|
/* 028B1AD0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1AD4 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B1AD8 */ cpu->r[7] = cpu->r[24];
|
|
/* 028B1ADC */ cpu->r[6] = cpu->r[30];
|
|
/* 028B1AE0 */ _t13 = cpu->r[26] + 0x00000044u;
|
|
/* 028B1AE0 */ rbrew_write32(cpu->mem, _t13, cpu->r[25]);
|
|
/* 028B1AE4 */ Gambit_fn_028AA458(cpu);
|
|
/* 028B1AE8 */ cpu->r[3] = cpu->r[26];
|
|
/* 028B1AEC */ _t14 = cpu->r[26] + 0x00000060u;
|
|
/* 028B1AEC */ rbrew_write32(cpu->mem, _t14, cpu->r[27]);
|
|
/* 028B1AF0 */ Gambit_fn_028B19CC(cpu);
|
|
/* 028B1AF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B1AF8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1AF8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B1AF8 */ if (_t16) goto L_028B1AFC; else goto L_028B1B34;
|
|
L_028B1AFC: ; // 0x28b1afc
|
|
/* 028B1AFC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1B00 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B1B04 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1B08 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B1B0C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1B0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B1B10 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1B10 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B1B10 */ if (_t18) goto L_028B1B34; else goto L_028B1B14;
|
|
L_028B1B14: ; // 0x28b1b14
|
|
/* 028B1B14 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1B18 */ cpu->r[4] = 0x0000000Cu;
|
|
/* 028B1B1C */ Gambit_fn_02C89380(cpu);
|
|
/* 028B1B20 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B1B24 */ cpu->r[0] = cpu->r[0] + 0xFFFF8468u;
|
|
/* 028B1B28 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028B1B2C */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028B1B2C */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 028B1B30 */ Gambit_fn_02836D50(cpu);
|
|
L_028B1B34: ; // 0x28b1b34
|
|
/* 028B1B34 */ cpu->r[27] = 0x101D0000u;
|
|
/* 028B1B38 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[30] * (int32_t)0x0000013Cu);
|
|
/* 028B1B3C */ _t20 = cpu->r[27] + 0xFFFFC3D4u;
|
|
/* 028B1B3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B1B3C */ cpu->r[27] = _t20;
|
|
/* 028B1B40 */ cpu->r[10] = 0x101D0000u;
|
|
/* 028B1B44 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1B48 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1B4C */ cpu->r[3] = cpu->r[11] + cpu->r[0];
|
|
/* 028B1B50 */ _t21 = cpu->r[10] + 0xFFFF9A60u;
|
|
/* 028B1B50 */ rbrew_write32(cpu->mem, _t21, cpu->r[31]);
|
|
/* 028B1B54 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B1B58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1B5C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1B5C */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B1B5C */ if (_t23) goto L_028B1BA8; else goto L_028B1B60;
|
|
L_028B1B60: ; // 0x28b1b60
|
|
/* 028B1B60 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B1B64 */ _t24 = cpu->r[27] + 0x00000000u;
|
|
/* 028B1B64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B1B68 */ cpu->r[5] = 0x0000013Cu;
|
|
/* 028B1B6C */ cpu->r[6] = cpu->r[6] + 0x000020E4u;
|
|
/* 028B1B70 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B1B74 */ cpu->r[3] = cpu->r[3] + cpu->r[0];
|
|
/* 028B1B78 */ cpu->r[7] = 0x00000000u;
|
|
/* 028B1B7C */ Gambit_fn_02C82DBC(cpu);
|
|
/* 028B1B80 */ _t25 = cpu->r[26] + 0x00000068u;
|
|
/* 028B1B80 */ rbrew_write32(cpu->mem, _t25, cpu->r[25]);
|
|
/* 028B1B84 */ _t26 = cpu->r[26] + 0x00000064u;
|
|
/* 028B1B84 */ rbrew_write32(cpu->mem, _t26, cpu->r[3]);
|
|
/* 028B1B88 */ _t27 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B1B88 */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B1B8C */ _t28 = cpu->r[12] + 0x0000007Cu;
|
|
/* 028B1B8C */ cpu->r[5] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B1B90 */ cpu->ctr = cpu->r[5];
|
|
/* 028B1B94 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B1B98 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1B9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B1BA0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1BA0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028B1BA0 */ if (_t30) goto L_028B1BE4; else goto L_028B1BA4;
|
|
L_028B1BA4: ; // 0x28b1ba4
|
|
/* 028B1BA4 */ goto L_028B1BD0;
|
|
L_028B1BA8: ; // 0x28b1ba8
|
|
/* 028B1BA8 */ _t31 = cpu->r[26] + 0x00000068u;
|
|
/* 028B1BA8 */ rbrew_write32(cpu->mem, _t31, cpu->r[25]);
|
|
/* 028B1BAC */ cpu->r[3] = 0x00000000u;
|
|
/* 028B1BB0 */ _t32 = cpu->r[26] + 0x00000064u;
|
|
/* 028B1BB0 */ rbrew_write32(cpu->mem, _t32, cpu->r[3]);
|
|
/* 028B1BB4 */ _t33 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B1BB4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B1BB8 */ _t34 = cpu->r[12] + 0x0000007Cu;
|
|
/* 028B1BB8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B1BBC */ cpu->ctr = cpu->r[5];
|
|
/* 028B1BC0 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B1BC4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1BC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B1BCC */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1BCC */ _t36 = _t35 & 0x00000001u;
|
|
/* 028B1BCC */ if (_t36) goto L_028B1BE4; else goto L_028B1BD0;
|
|
L_028B1BD0: ; // 0x28b1bd0
|
|
/* 028B1BD0 */ _t37 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B1BD0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028B1BD4 */ _t38 = cpu->r[7] + 0x0000007Cu;
|
|
/* 028B1BD4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B1BD8 */ cpu->ctr = cpu->r[8];
|
|
/* 028B1BDC */ cpu->r[3] = cpu->r[29];
|
|
/* 028B1BE0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B1BE4: ; // 0x28b1be4
|
|
/* 028B1BE4 */ /* nop */
|
|
/* 028B1BE8 */ _t39 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B1BE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028B1BEC */ cpu->lr = cpu->r[0];
|
|
/* 028B1BF0 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B1BF4 */ return;
|
|
}
|
|
|
|
// fn_028B1BF8 @ 0x28b1bf8
|
|
void Gambit_fn_028B1BF8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028B1BF8: ; // 0x28b1bf8
|
|
/* 028B1BF8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B1BF8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1BF8 */ cpu->r[1] = _t0;
|
|
/* 028B1BFC */ /* nop */
|
|
/* 028B1C00 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1C04 */ cpu->r[27] = cpu->r[3];
|
|
/* 028B1C08 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B1C08 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B1C0C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B1C10 */ _t2 = cpu->r[3] + 0xFFFF9A60u;
|
|
/* 028B1C10 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B1C14 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B1C18 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B1C18 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B1C1C */ _t4 = cpu->r[12] + 0x00000014u;
|
|
/* 028B1C1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B1C20 */ cpu->ctr = cpu->r[0];
|
|
/* 028B1C24 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1C28 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B1C2C */ cpu->r[31] = cpu->r[6];
|
|
/* 028B1C30 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1C34 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B1C38 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1C3C */ cpu->r[5] = cpu->r[29];
|
|
/* 028B1C40 */ cpu->r[6] = cpu->r[31];
|
|
/* 028B1C44 */ Gambit_fn_028AA564(cpu);
|
|
/* 028B1C48 */ cpu->r[26] = cpu->r[3];
|
|
/* 028B1C4C */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1C50 */ cpu->r[3] = 0x00000068u;
|
|
/* 028B1C54 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1C58 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B1C5C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1C5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B1C60 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1C60 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B1C60 */ if (_t6) goto L_028B1C80; else goto L_028B1C64;
|
|
L_028B1C64: ; // 0x28b1c64
|
|
/* 028B1C64 */ cpu->r[7] = cpu->r[29];
|
|
/* 028B1C68 */ cpu->r[6] = cpu->r[26];
|
|
/* 028B1C6C */ cpu->r[5] = cpu->r[27];
|
|
/* 028B1C70 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B1C74 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1C78 */ Gambit_fn_028B2560(cpu);
|
|
/* 028B1C7C */ cpu->r[31] = cpu->r[3];
|
|
L_028B1C80: ; // 0x28b1c80
|
|
/* 028B1C80 */ cpu->r[6] = cpu->r[29];
|
|
/* 028B1C84 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B1C88 */ cpu->r[4] = cpu->r[26];
|
|
/* 028B1C8C */ cpu->r[3] = cpu->r[27];
|
|
/* 028B1C90 */ Gambit_fn_028AA69C(cpu);
|
|
/* 028B1C94 */ _t7 = cpu->r[30] + 0x00000000u;
|
|
/* 028B1C94 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1C98 */ _t8 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B1C98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1C9C */ cpu->ctr = cpu->r[0];
|
|
/* 028B1CA0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B1CA4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1CA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1CAC */ /* nop */
|
|
/* 028B1CB0 */ _t9 = cpu->r[1] + 0x00000024u;
|
|
/* 028B1CB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1CB4 */ cpu->lr = cpu->r[0];
|
|
/* 028B1CB8 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B1CBC */ return;
|
|
}
|
|
|
|
// fn_028B1CC0 @ 0x28b1cc0
|
|
void Gambit_fn_028B1CC0(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_028B1CC0: ; // 0x28b1cc0
|
|
/* 028B1CC0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1CC4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1CC4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1CC4 */ cpu->r[1] = _t0;
|
|
/* 028B1CC8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1CC8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B1CCC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1CCC */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B1CD0 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028B1CD4 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1CD4 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B1CD8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1CD8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028B1CDC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1CDC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1CE0 */ _t6 = cpu->r[31] + 0xFFFF9A60u;
|
|
/* 028B1CE0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1CE4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B1CE8 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028B1CE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1CEC */ _t8 = cpu->r[12] + 0x00000014u;
|
|
/* 028B1CEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1CF0 */ cpu->ctr = cpu->r[0];
|
|
/* 028B1CF4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1CF8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B1CFC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1D00 */ _t9 = cpu->r[30] + 0x00000020u;
|
|
/* 028B1D00 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1D04 */ _t10 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B1D04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1D08 */ cpu->r[3] = cpu->r[30] + cpu->r[0];
|
|
/* 028B1D0C */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B1D10 */ _t11 = cpu->r[28] + 0x00000018u;
|
|
/* 028B1D10 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1D14 */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028B1D14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B1D18 */ _t12 = cpu->r[28] + 0x00000018u;
|
|
/* 028B1D18 */ rbrew_write32(cpu->mem, _t12, cpu->r[10]);
|
|
/* 028B1D1C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1D1C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B1D1C */ if (_t14) goto L_028B1D20; else goto L_028B1D50;
|
|
L_028B1D20: ; // 0x28b1d20
|
|
/* 028B1D20 */ _t15 = cpu->r[29] + 0x00000014u;
|
|
/* 028B1D20 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1D24 */ cpu->r[3] = cpu->r[28] + cpu->r[5];
|
|
/* 028B1D28 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B1D2C */ _t16 = cpu->r[29] + 0x00000010u;
|
|
/* 028B1D2C */ cpu->r[6] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1D30 */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 028B1D34 */ _t17 = cpu->r[29] + 0x00000010u;
|
|
/* 028B1D34 */ rbrew_write32(cpu->mem, _t17, cpu->r[6]);
|
|
/* 028B1D38 */ _t18 = cpu->r[28] + 0x00000048u;
|
|
/* 028B1D38 */ cpu->r[7] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B1D3C */ _t19 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B1D3C */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B1D40 */ cpu->ctr = cpu->r[8];
|
|
/* 028B1D44 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B1D48 */ cpu->r[4] = 0x00000003u;
|
|
/* 028B1D4C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B1D50: ; // 0x28b1d50
|
|
/* 028B1D50 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028B1D50 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B1D54 */ _t21 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028B1D54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B1D58 */ cpu->ctr = cpu->r[0];
|
|
/* 028B1D5C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1D60 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1D64 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1D64 */ cpu->r[28] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B1D68 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1D68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B1D6C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1D6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B1D70 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1D70 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B1D74 */ cpu->lr = cpu->r[0];
|
|
/* 028B1D78 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1D78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B1D7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1D80 */ return;
|
|
}
|
|
|
|
// fn_028B1CC4 @ 0x28b1cc4
|
|
void Gambit_fn_028B1CC4(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_028B1CC4: ; // 0x28b1cc4
|
|
/* 028B1CC4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1CC4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1CC4 */ cpu->r[1] = _t0;
|
|
/* 028B1CC8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1CC8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B1CCC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1CCC */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B1CD0 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028B1CD4 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1CD4 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B1CD8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1CD8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028B1CDC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1CDC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B1CE0 */ _t6 = cpu->r[31] + 0xFFFF9A60u;
|
|
/* 028B1CE0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1CE4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B1CE8 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028B1CE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1CEC */ _t8 = cpu->r[12] + 0x00000014u;
|
|
/* 028B1CEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1CF0 */ cpu->ctr = cpu->r[0];
|
|
/* 028B1CF4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1CF8 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B1CFC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1D00 */ _t9 = cpu->r[30] + 0x00000020u;
|
|
/* 028B1D00 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1D04 */ _t10 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B1D04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1D08 */ cpu->r[3] = cpu->r[30] + cpu->r[0];
|
|
/* 028B1D0C */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B1D10 */ _t11 = cpu->r[28] + 0x00000018u;
|
|
/* 028B1D10 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B1D14 */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028B1D14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B1D18 */ _t12 = cpu->r[28] + 0x00000018u;
|
|
/* 028B1D18 */ rbrew_write32(cpu->mem, _t12, cpu->r[10]);
|
|
/* 028B1D1C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1D1C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B1D1C */ if (_t14) goto L_028B1D20; else goto L_028B1D50;
|
|
L_028B1D20: ; // 0x28b1d20
|
|
/* 028B1D20 */ _t15 = cpu->r[29] + 0x00000014u;
|
|
/* 028B1D20 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B1D24 */ cpu->r[3] = cpu->r[28] + cpu->r[5];
|
|
/* 028B1D28 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B1D2C */ _t16 = cpu->r[29] + 0x00000010u;
|
|
/* 028B1D2C */ cpu->r[6] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B1D30 */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 028B1D34 */ _t17 = cpu->r[29] + 0x00000010u;
|
|
/* 028B1D34 */ rbrew_write32(cpu->mem, _t17, cpu->r[6]);
|
|
/* 028B1D38 */ _t18 = cpu->r[28] + 0x00000048u;
|
|
/* 028B1D38 */ cpu->r[7] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B1D3C */ _t19 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B1D3C */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B1D40 */ cpu->ctr = cpu->r[8];
|
|
/* 028B1D44 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B1D48 */ cpu->r[4] = 0x00000003u;
|
|
/* 028B1D4C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B1D50: ; // 0x28b1d50
|
|
/* 028B1D50 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028B1D50 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B1D54 */ _t21 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028B1D54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B1D58 */ cpu->ctr = cpu->r[0];
|
|
/* 028B1D5C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1D60 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1D64 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028B1D64 */ cpu->r[28] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B1D68 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1D68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B1D6C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1D6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B1D70 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1D70 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B1D74 */ cpu->lr = cpu->r[0];
|
|
/* 028B1D78 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1D78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B1D7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1D80 */ return;
|
|
}
|
|
|
|
// fn_028B1D84 @ 0x28b1d84
|
|
void Gambit_fn_028B1D84(CPUState* cpu) {
|
|
L_028B1D84: ; // 0x28b1d84
|
|
/* 028B1D84 */ return;
|
|
}
|
|
|
|
// fn_028B1D88 @ 0x28b1d88
|
|
void Gambit_fn_028B1D88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028B1D88: ; // 0x28b1d88
|
|
/* 028B1D88 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1D8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1D8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1D8C */ cpu->r[1] = _t0;
|
|
/* 028B1D90 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1D90 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B1D94 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1D94 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B1D98 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1D9C */ cpu->r[3] = 0x00000064u;
|
|
/* 028B1DA0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B1DA4 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1DA4 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B1DA8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1DA8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B1DAC */ cpu->r[29] = cpu->r[5];
|
|
/* 028B1DB0 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1DB4 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1DB8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B1DBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1DC0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1DC0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B1DC0 */ if (_t6) goto L_028B1DD4; else goto L_028B1DC4;
|
|
L_028B1DC4: ; // 0x28b1dc4
|
|
/* 028B1DC4 */ cpu->r[6] = cpu->r[29];
|
|
/* 028B1DC8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B1DCC */ cpu->r[4] = cpu->r[31];
|
|
/* 028B1DD0 */ Gambit_fn_028B2B58(cpu);
|
|
L_028B1DD4: ; // 0x28b1dd4
|
|
/* 028B1DD4 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1DD4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1DD8 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1DD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1DDC */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1DDC */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1DE0 */ cpu->lr = cpu->r[0];
|
|
/* 028B1DE4 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1DE4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1DE8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1DEC */ return;
|
|
}
|
|
|
|
// fn_028B1D8C @ 0x28b1d8c
|
|
void Gambit_fn_028B1D8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028B1D8C: ; // 0x28b1d8c
|
|
/* 028B1D8C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1D8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1D8C */ cpu->r[1] = _t0;
|
|
/* 028B1D90 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1D90 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B1D94 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1D94 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B1D98 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B1D9C */ cpu->r[3] = 0x00000064u;
|
|
/* 028B1DA0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B1DA4 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1DA4 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B1DA8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1DA8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B1DAC */ cpu->r[29] = cpu->r[5];
|
|
/* 028B1DB0 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1DB4 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B1DB8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B1DBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1DC0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1DC0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B1DC0 */ if (_t6) goto L_028B1DD4; else goto L_028B1DC4;
|
|
L_028B1DC4: ; // 0x28b1dc4
|
|
/* 028B1DC4 */ cpu->r[6] = cpu->r[29];
|
|
/* 028B1DC8 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B1DCC */ cpu->r[4] = cpu->r[31];
|
|
/* 028B1DD0 */ Gambit_fn_028B2B58(cpu);
|
|
L_028B1DD4: ; // 0x28b1dd4
|
|
/* 028B1DD4 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1DD4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1DD8 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1DD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B1DDC */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1DDC */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B1DE0 */ cpu->lr = cpu->r[0];
|
|
/* 028B1DE4 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1DE4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B1DE8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1DEC */ return;
|
|
}
|
|
|
|
// fn_028B1DF0 @ 0x28b1df0
|
|
void Gambit_fn_028B1DF0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B1DF0: ; // 0x28b1df0
|
|
/* 028B1DF0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1DF4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B1DF4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1DF4 */ cpu->r[1] = _t0;
|
|
/* 028B1DF8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1DFC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1DFC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B1E00 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B1E04 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1E04 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B1E08 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B1E0C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1E0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B1E10 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1E10 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B1E10 */ if (_t4) goto L_028B1E50; else goto L_028B1E14;
|
|
L_028B1E14: ; // 0x28b1e14
|
|
/* 028B1E14 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1E14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1E18 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1E18 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B1E18 */ if (_t6) goto L_028B1E1C; else goto L_028B1E2C;
|
|
L_028B1E1C: ; // 0x28b1e1c
|
|
/* 028B1E1C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B1E20 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B1E24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1E28 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1E28 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B1E28 */ if (_t8) goto L_028B1E44; else goto L_028B1E2C;
|
|
L_028B1E2C: ; // 0x28b1e2c
|
|
/* 028B1E2C */ cpu->r[10] = 0x10140000u;
|
|
/* 028B1E30 */ cpu->r[11] = 0x00000000u;
|
|
/* 028B1E34 */ cpu->r[10] = cpu->r[10] + 0xFFFF8448u;
|
|
/* 028B1E38 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028B1E38 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028B1E3C */ _t10 = cpu->r[3] + 0x00000008u;
|
|
/* 028B1E3C */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028B1E40 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028B1E40 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
L_028B1E44: ; // 0x28b1e44
|
|
/* 028B1E44 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B1E48 */ cpu->r[0] = cpu->r[0] + 0xFFFF8458u;
|
|
/* 028B1E4C */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028B1E4C */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028B1E50: ; // 0x28b1e50
|
|
/* 028B1E50 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1E50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1E54 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1E58 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1E58 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B1E5C */ cpu->lr = cpu->r[0];
|
|
/* 028B1E60 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1E64 */ return;
|
|
}
|
|
|
|
// fn_028B1DF4 @ 0x28b1df4
|
|
void Gambit_fn_028B1DF4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B1DF4: ; // 0x28b1df4
|
|
/* 028B1DF4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B1DF4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1DF4 */ cpu->r[1] = _t0;
|
|
/* 028B1DF8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1DFC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1DFC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B1E00 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B1E04 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1E04 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B1E08 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B1E0C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1E0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B1E10 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1E10 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B1E10 */ if (_t4) goto L_028B1E50; else goto L_028B1E14;
|
|
L_028B1E14: ; // 0x28b1e14
|
|
/* 028B1E14 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1E14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1E18 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1E18 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B1E18 */ if (_t6) goto L_028B1E1C; else goto L_028B1E2C;
|
|
L_028B1E1C: ; // 0x28b1e1c
|
|
/* 028B1E1C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B1E20 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B1E24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1E28 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1E28 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B1E28 */ if (_t8) goto L_028B1E44; else goto L_028B1E2C;
|
|
L_028B1E2C: ; // 0x28b1e2c
|
|
/* 028B1E2C */ cpu->r[10] = 0x10140000u;
|
|
/* 028B1E30 */ cpu->r[11] = 0x00000000u;
|
|
/* 028B1E34 */ cpu->r[10] = cpu->r[10] + 0xFFFF8448u;
|
|
/* 028B1E38 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028B1E38 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028B1E3C */ _t10 = cpu->r[3] + 0x00000008u;
|
|
/* 028B1E3C */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028B1E40 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028B1E40 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
L_028B1E44: ; // 0x28b1e44
|
|
/* 028B1E44 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B1E48 */ cpu->r[0] = cpu->r[0] + 0xFFFF8458u;
|
|
/* 028B1E4C */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028B1E4C */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028B1E50: ; // 0x28b1e50
|
|
/* 028B1E50 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1E50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B1E54 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1E58 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1E58 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B1E5C */ cpu->lr = cpu->r[0];
|
|
/* 028B1E60 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B1E64 */ return;
|
|
}
|
|
|
|
// fn_028B1E68 @ 0x28b1e68
|
|
void Gambit_fn_028B1E68(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;
|
|
|
|
L_028B1E68: ; // 0x28b1e68
|
|
/* 028B1E68 */ cpu->r[0] = cpu->lr;
|
|
/* 028B1E6C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1E6C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1E6C */ cpu->r[1] = _t0;
|
|
/* 028B1E70 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1E70 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B1E74 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1E74 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1E78 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1E78 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B1E7C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1E80 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1E80 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B1E84 */ _t5 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028B1E84 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B1E88 */ _t6 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B1E88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1E8C */ _t7 = cpu->r[11] + 0x00000034u;
|
|
/* 028B1E8C */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1E90 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B1E94 */ cpu->ctr = cpu->r[8];
|
|
/* 028B1E98 */ cpu->r[4] = 0x0000004Cu;
|
|
/* 028B1E9C */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1EA0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1EA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1EA8 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B1EAC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1EAC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B1EAC */ if (_t9) goto L_028B1FB0; else goto L_028B1EB0;
|
|
L_028B1EB0: ; // 0x28b1eb0
|
|
/* 028B1EB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1EB4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1EB4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B1EB4 */ if (_t11) goto L_028B1F90; else goto L_028B1EB8;
|
|
L_028B1EB8: ; // 0x28b1eb8
|
|
/* 028B1EB8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1EB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B1EBC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1EBC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B1EBC */ if (_t13) goto L_028B1EC0; else goto L_028B1ED0;
|
|
L_028B1EC0: ; // 0x28b1ec0
|
|
/* 028B1EC0 */ cpu->r[3] = 0x00000028u;
|
|
/* 028B1EC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B1EC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1ECC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1ECC */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B1ECC */ if (_t15) goto L_028B1F00; else goto L_028B1ED0;
|
|
L_028B1ED0: ; // 0x28b1ed0
|
|
/* 028B1ED0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B1ED4 */ _t16 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B1ED4 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
/* 028B1ED8 */ cpu->r[0] = cpu->r[0] + 0xFFFF8488u;
|
|
/* 028B1EDC */ _t17 = cpu->r[3] + 0x00000008u;
|
|
/* 028B1EDC */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 028B1EE0 */ _t18 = cpu->r[3] + 0x00000024u;
|
|
/* 028B1EE0 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028B1EE4 */ _t19 = cpu->r[3] + 0x00000014u;
|
|
/* 028B1EE4 */ rbrew_write32(cpu->mem, _t19, cpu->r[29]);
|
|
/* 028B1EE8 */ _t20 = cpu->r[3] + 0x00000010u;
|
|
/* 028B1EE8 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
/* 028B1EEC */ _t21 = cpu->r[3] + 0x00000004u;
|
|
/* 028B1EEC */ rbrew_write32(cpu->mem, _t21, cpu->r[29]);
|
|
/* 028B1EF0 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028B1EF0 */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028B1EF4 */ _t23 = cpu->r[3] + 0x00000018u;
|
|
/* 028B1EF4 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028B1EF8 */ _t24 = cpu->r[3] + 0x00000020u;
|
|
/* 028B1EF8 */ rbrew_write32(cpu->mem, _t24, cpu->r[29]);
|
|
/* 028B1EFC */ _t25 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B1EFC */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
L_028B1F00: ; // 0x28b1f00
|
|
/* 028B1F00 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B1F04 */ cpu->r[0] = cpu->r[0] + 0xFFFF8328u;
|
|
/* 028B1F08 */ cpu->r[3] = cpu->r[31] + 0x00000028u;
|
|
/* 028B1F08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1F0C */ _t26 = cpu->r[31] + 0x00000024u;
|
|
/* 028B1F0C */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028B1F10 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1F10 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B1F10 */ if (_t28) goto L_028B1F14; else goto L_028B1F24;
|
|
L_028B1F14: ; // 0x28b1f14
|
|
/* 028B1F14 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B1F18 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B1F1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1F20 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1F20 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028B1F20 */ if (_t30) goto L_028B1F28; else goto L_028B1F24;
|
|
L_028B1F24: ; // 0x28b1f24
|
|
/* 028B1F24 */ _t31 = cpu->r[3] + 0x00000000u;
|
|
/* 028B1F24 */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
L_028B1F28: ; // 0x28b1f28
|
|
/* 028B1F28 */ _t32 = cpu->r[31] + 0x00000030u;
|
|
/* 028B1F28 */ rbrew_write8(cpu->mem, _t32, (uint8_t)cpu->r[29]);
|
|
/* 028B1F2C */ cpu->r[3] = cpu->r[31] + 0x0000003Cu;
|
|
/* 028B1F2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1F30 */ _t33 = cpu->r[31] + 0x00000034u;
|
|
/* 028B1F30 */ rbrew_write32(cpu->mem, _t33, cpu->r[29]);
|
|
/* 028B1F34 */ _t34 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028B1F34 */ rbrew_write32(cpu->mem, _t34, cpu->r[29]);
|
|
/* 028B1F38 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1F38 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028B1F38 */ if (_t36) goto L_028B1F3C; else goto L_028B1F4C;
|
|
L_028B1F3C: ; // 0x28b1f3c
|
|
/* 028B1F3C */ cpu->r[3] = 0x00000010u;
|
|
/* 028B1F40 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B1F44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1F48 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1F48 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028B1F48 */ if (_t38) goto L_028B1F6C; else goto L_028B1F4C;
|
|
L_028B1F4C: ; // 0x28b1f4c
|
|
/* 028B1F4C */ cpu->r[10] = 0x10110000u;
|
|
/* 028B1F50 */ _t39 = cpu->r[10] + 0x00004468u;
|
|
/* 028B1F50 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028B1F54 */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 028B1F54 */ rbrew_write_f32(cpu->mem, _t40, cpu->f[0]);
|
|
/* 028B1F58 */ _t41 = cpu->r[3] + 0x00000004u;
|
|
/* 028B1F58 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[0]);
|
|
/* 028B1F5C */ cpu->r[12] = 0x10110000u;
|
|
/* 028B1F60 */ _t42 = cpu->r[3] + 0x00000008u;
|
|
/* 028B1F60 */ rbrew_write_f32(cpu->mem, _t42, cpu->f[0]);
|
|
/* 028B1F64 */ _t43 = cpu->r[12] + 0x00004464u;
|
|
/* 028B1F64 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028B1F68 */ _t44 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B1F68 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[0]);
|
|
L_028B1F6C: ; // 0x28b1f6c
|
|
/* 028B1F6C */ _t45 = cpu->r[31] + 0x00000028u;
|
|
/* 028B1F6C */ rbrew_write32(cpu->mem, _t45, cpu->r[29]);
|
|
/* 028B1F70 */ _t46 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1F70 */ cpu->r[29] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028B1F74 */ _t47 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1F74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028B1F78 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1F7C */ _t48 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1F7C */ cpu->r[30] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028B1F80 */ cpu->lr = cpu->r[0];
|
|
/* 028B1F84 */ _t49 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1F84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B1F88 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1F8C */ return;
|
|
L_028B1F90: ; // 0x28b1f90
|
|
/* 028B1F90 */ _t50 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1F90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028B1F94 */ _t51 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1F94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028B1F98 */ _t52 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1F98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028B1F9C */ cpu->lr = cpu->r[0];
|
|
/* 028B1FA0 */ _t53 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1FA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028B1FA4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1FA8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B1FAC */ return;
|
|
L_028B1FB0: ; // 0x28b1fb0
|
|
/* 028B1FB0 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B1FB4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028B1FB8 */ cpu->r[6] = cpu->r[6] + 0xFFFF84D8u;
|
|
/* 028B1FBC */ cpu->r[4] = 0x00000021u;
|
|
/* 028B1FC0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1FC4 */ _t54 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B1FC4 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028B1FC4 */ if (_t55) goto L_028B1FC8; // else: addr-0 trap, fall-through
|
|
L_028B1FC8: ; // 0x28b1fc8
|
|
/* 028B1FC8 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028B1FCC */ _t56 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1FCC */ cpu->r[29] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028B1FD0 */ _t57 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1FD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028B1FD4 */ _t58 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1FD4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028B1FD8 */ cpu->lr = cpu->r[0];
|
|
/* 028B1FDC */ _t59 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1FDC */ cpu->r[31] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028B1FE0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1FE4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B1FE8 */ return;
|
|
}
|
|
|
|
// fn_028B1E6C @ 0x28b1e6c
|
|
void Gambit_fn_028B1E6C(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;
|
|
|
|
L_028B1E6C: ; // 0x28b1e6c
|
|
/* 028B1E6C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B1E6C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B1E6C */ cpu->r[1] = _t0;
|
|
/* 028B1E70 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1E70 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B1E74 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1E74 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B1E78 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1E78 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B1E7C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1E80 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1E80 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B1E84 */ _t5 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028B1E84 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B1E88 */ _t6 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B1E88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B1E8C */ _t7 = cpu->r[11] + 0x00000034u;
|
|
/* 028B1E8C */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B1E90 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B1E94 */ cpu->ctr = cpu->r[8];
|
|
/* 028B1E98 */ cpu->r[4] = 0x0000004Cu;
|
|
/* 028B1E9C */ cpu->r[5] = 0x00000004u;
|
|
/* 028B1EA0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B1EA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1EA8 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B1EAC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1EAC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B1EAC */ if (_t9) goto L_028B1FB0; else goto L_028B1EB0;
|
|
L_028B1EB0: ; // 0x28b1eb0
|
|
/* 028B1EB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1EB4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1EB4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B1EB4 */ if (_t11) goto L_028B1F90; else goto L_028B1EB8;
|
|
L_028B1EB8: ; // 0x28b1eb8
|
|
/* 028B1EB8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B1EB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B1EBC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1EBC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B1EBC */ if (_t13) goto L_028B1EC0; else goto L_028B1ED0;
|
|
L_028B1EC0: ; // 0x28b1ec0
|
|
/* 028B1EC0 */ cpu->r[3] = 0x00000028u;
|
|
/* 028B1EC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B1EC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1ECC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1ECC */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B1ECC */ if (_t15) goto L_028B1F00; else goto L_028B1ED0;
|
|
L_028B1ED0: ; // 0x28b1ed0
|
|
/* 028B1ED0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B1ED4 */ _t16 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B1ED4 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
/* 028B1ED8 */ cpu->r[0] = cpu->r[0] + 0xFFFF8488u;
|
|
/* 028B1EDC */ _t17 = cpu->r[3] + 0x00000008u;
|
|
/* 028B1EDC */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 028B1EE0 */ _t18 = cpu->r[3] + 0x00000024u;
|
|
/* 028B1EE0 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 028B1EE4 */ _t19 = cpu->r[3] + 0x00000014u;
|
|
/* 028B1EE4 */ rbrew_write32(cpu->mem, _t19, cpu->r[29]);
|
|
/* 028B1EE8 */ _t20 = cpu->r[3] + 0x00000010u;
|
|
/* 028B1EE8 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
/* 028B1EEC */ _t21 = cpu->r[3] + 0x00000004u;
|
|
/* 028B1EEC */ rbrew_write32(cpu->mem, _t21, cpu->r[29]);
|
|
/* 028B1EF0 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 028B1EF0 */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028B1EF4 */ _t23 = cpu->r[3] + 0x00000018u;
|
|
/* 028B1EF4 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028B1EF8 */ _t24 = cpu->r[3] + 0x00000020u;
|
|
/* 028B1EF8 */ rbrew_write32(cpu->mem, _t24, cpu->r[29]);
|
|
/* 028B1EFC */ _t25 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B1EFC */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
L_028B1F00: ; // 0x28b1f00
|
|
/* 028B1F00 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B1F04 */ cpu->r[0] = cpu->r[0] + 0xFFFF8328u;
|
|
/* 028B1F08 */ cpu->r[3] = cpu->r[31] + 0x00000028u;
|
|
/* 028B1F08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1F0C */ _t26 = cpu->r[31] + 0x00000024u;
|
|
/* 028B1F0C */ rbrew_write32(cpu->mem, _t26, cpu->r[0]);
|
|
/* 028B1F10 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1F10 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B1F10 */ if (_t28) goto L_028B1F14; else goto L_028B1F24;
|
|
L_028B1F14: ; // 0x28b1f14
|
|
/* 028B1F14 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B1F18 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B1F1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1F20 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1F20 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028B1F20 */ if (_t30) goto L_028B1F28; else goto L_028B1F24;
|
|
L_028B1F24: ; // 0x28b1f24
|
|
/* 028B1F24 */ _t31 = cpu->r[3] + 0x00000000u;
|
|
/* 028B1F24 */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
L_028B1F28: ; // 0x28b1f28
|
|
/* 028B1F28 */ _t32 = cpu->r[31] + 0x00000030u;
|
|
/* 028B1F28 */ rbrew_write8(cpu->mem, _t32, (uint8_t)cpu->r[29]);
|
|
/* 028B1F2C */ cpu->r[3] = cpu->r[31] + 0x0000003Cu;
|
|
/* 028B1F2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1F30 */ _t33 = cpu->r[31] + 0x00000034u;
|
|
/* 028B1F30 */ rbrew_write32(cpu->mem, _t33, cpu->r[29]);
|
|
/* 028B1F34 */ _t34 = cpu->r[31] + 0x0000002Cu;
|
|
/* 028B1F34 */ rbrew_write32(cpu->mem, _t34, cpu->r[29]);
|
|
/* 028B1F38 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1F38 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028B1F38 */ if (_t36) goto L_028B1F3C; else goto L_028B1F4C;
|
|
L_028B1F3C: ; // 0x28b1f3c
|
|
/* 028B1F3C */ cpu->r[3] = 0x00000010u;
|
|
/* 028B1F40 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B1F44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B1F48 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B1F48 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028B1F48 */ if (_t38) goto L_028B1F6C; else goto L_028B1F4C;
|
|
L_028B1F4C: ; // 0x28b1f4c
|
|
/* 028B1F4C */ cpu->r[10] = 0x10110000u;
|
|
/* 028B1F50 */ _t39 = cpu->r[10] + 0x00004468u;
|
|
/* 028B1F50 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 028B1F54 */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 028B1F54 */ rbrew_write_f32(cpu->mem, _t40, cpu->f[0]);
|
|
/* 028B1F58 */ _t41 = cpu->r[3] + 0x00000004u;
|
|
/* 028B1F58 */ rbrew_write_f32(cpu->mem, _t41, cpu->f[0]);
|
|
/* 028B1F5C */ cpu->r[12] = 0x10110000u;
|
|
/* 028B1F60 */ _t42 = cpu->r[3] + 0x00000008u;
|
|
/* 028B1F60 */ rbrew_write_f32(cpu->mem, _t42, cpu->f[0]);
|
|
/* 028B1F64 */ _t43 = cpu->r[12] + 0x00004464u;
|
|
/* 028B1F64 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 028B1F68 */ _t44 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B1F68 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[0]);
|
|
L_028B1F6C: ; // 0x28b1f6c
|
|
/* 028B1F6C */ _t45 = cpu->r[31] + 0x00000028u;
|
|
/* 028B1F6C */ rbrew_write32(cpu->mem, _t45, cpu->r[29]);
|
|
/* 028B1F70 */ _t46 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1F70 */ cpu->r[29] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028B1F74 */ _t47 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1F74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028B1F78 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1F7C */ _t48 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1F7C */ cpu->r[30] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028B1F80 */ cpu->lr = cpu->r[0];
|
|
/* 028B1F84 */ _t49 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1F84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B1F88 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1F8C */ return;
|
|
L_028B1F90: ; // 0x28b1f90
|
|
/* 028B1F90 */ _t50 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1F90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028B1F94 */ _t51 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1F94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028B1F98 */ _t52 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1F98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028B1F9C */ cpu->lr = cpu->r[0];
|
|
/* 028B1FA0 */ _t53 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1FA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028B1FA4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1FA8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B1FAC */ return;
|
|
L_028B1FB0: ; // 0x28b1fb0
|
|
/* 028B1FB0 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B1FB4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028B1FB8 */ cpu->r[6] = cpu->r[6] + 0xFFFF84D8u;
|
|
/* 028B1FBC */ cpu->r[4] = 0x00000021u;
|
|
/* 028B1FC0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B1FC4 */ _t54 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B1FC4 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028B1FC4 */ if (_t55) goto L_028B1FC8; // else: addr-0 trap, fall-through
|
|
L_028B1FC8: ; // 0x28b1fc8
|
|
/* 028B1FC8 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028B1FCC */ _t56 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B1FCC */ cpu->r[29] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028B1FD0 */ _t57 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B1FD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028B1FD4 */ _t58 = cpu->r[1] + 0x00000010u;
|
|
/* 028B1FD4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028B1FD8 */ cpu->lr = cpu->r[0];
|
|
/* 028B1FDC */ _t59 = cpu->r[1] + 0x00000014u;
|
|
/* 028B1FDC */ cpu->r[31] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028B1FE0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B1FE4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B1FE8 */ return;
|
|
}
|
|
|
|
// fn_028B1FEC @ 0x28b1fec
|
|
void Gambit_fn_028B1FEC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B1FEC: ; // 0x28b1fec
|
|
/* 028B1FEC */ _t0 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B1FEC */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B1FF0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[11]);
|
|
/* 028B1FF4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B1FF8 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B1FF8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B1FF8 */ if (_t2) goto L_028B1FFC; else goto L_028B2008;
|
|
L_028B1FFC: ; // 0x28b1ffc
|
|
/* 028B1FFC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000013Cu);
|
|
/* 028B2000 */ _t3 = cpu->r[3] + 0x00000064u;
|
|
/* 028B2000 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B2004 */ cpu->r[0] = cpu->r[12] + cpu->r[0];
|
|
L_028B2008: ; // 0x28b2008
|
|
/* 028B2008 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B200C */ return;
|
|
}
|
|
|
|
// fn_028B2010 @ 0x28b2010
|
|
void Gambit_fn_028B2010(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028B2010: ; // 0x28b2010
|
|
/* 028B2010 */ cpu->r[0] = cpu->lr;
|
|
/* 028B2014 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B2014 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2014 */ cpu->r[1] = _t0;
|
|
/* 028B2018 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2018 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B201C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B201C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B2020 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2020 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B2024 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B2028 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2028 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B202C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B202C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B202C */ if (_t5) goto L_028B2078; else goto L_028B2030;
|
|
L_028B2030: ; // 0x28b2030
|
|
/* 028B2030 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B2034 */ cpu->r[10] = cpu->r[10] + 0xFFFF8560u;
|
|
/* 028B2038 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B203C */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B203C */ rbrew_write32(cpu->mem, _t6, cpu->r[10]);
|
|
/* 028B2040 */ _t7 = cpu->r[12] + 0xFFFF9A64u;
|
|
/* 028B2040 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B2040 */ cpu->r[12] = _t7;
|
|
/* 028B2044 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[11]);
|
|
/* 028B2048 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2048 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B2048 */ if (_t9) goto L_028B204C; else goto L_028B205C;
|
|
L_028B204C: ; // 0x28b204c
|
|
/* 028B204C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B2050 */ cpu->r[11] = 0x101D0000u;
|
|
/* 028B2054 */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 028B2054 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B2058 */ _t11 = cpu->r[11] + 0xFFFF9A5Cu;
|
|
/* 028B2058 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B205C: ; // 0x28b205c
|
|
/* 028B205C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2060 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B2064 */ Gambit_fn_02821E68(cpu);
|
|
/* 028B2068 */ cpu->r[9] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2068 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B206C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B206C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B206C */ if (_t13) goto L_028B2078; else goto L_028B2070;
|
|
L_028B2070: ; // 0x28b2070
|
|
/* 028B2070 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2074 */ Gambit_fn_02801BB0(cpu);
|
|
L_028B2078: ; // 0x28b2078
|
|
/* 028B2078 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2078 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B207C */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028B207C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2080 */ cpu->lr = cpu->r[0];
|
|
/* 028B2084 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2084 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B2088 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B208C */ return;
|
|
}
|
|
|
|
// fn_028B2014 @ 0x28b2014
|
|
void Gambit_fn_028B2014(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028B2014: ; // 0x28b2014
|
|
/* 028B2014 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B2014 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2014 */ cpu->r[1] = _t0;
|
|
/* 028B2018 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2018 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B201C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B201C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B2020 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2020 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B2024 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B2028 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2028 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B202C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B202C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B202C */ if (_t5) goto L_028B2078; else goto L_028B2030;
|
|
L_028B2030: ; // 0x28b2030
|
|
/* 028B2030 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B2034 */ cpu->r[10] = cpu->r[10] + 0xFFFF8560u;
|
|
/* 028B2038 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B203C */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B203C */ rbrew_write32(cpu->mem, _t6, cpu->r[10]);
|
|
/* 028B2040 */ _t7 = cpu->r[12] + 0xFFFF9A64u;
|
|
/* 028B2040 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B2040 */ cpu->r[12] = _t7;
|
|
/* 028B2044 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[11]);
|
|
/* 028B2048 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2048 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B2048 */ if (_t9) goto L_028B204C; else goto L_028B205C;
|
|
L_028B204C: ; // 0x28b204c
|
|
/* 028B204C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B2050 */ cpu->r[11] = 0x101D0000u;
|
|
/* 028B2054 */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 028B2054 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B2058 */ _t11 = cpu->r[11] + 0xFFFF9A5Cu;
|
|
/* 028B2058 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B205C: ; // 0x28b205c
|
|
/* 028B205C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2060 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B2064 */ Gambit_fn_02821E68(cpu);
|
|
/* 028B2068 */ cpu->r[9] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2068 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B206C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B206C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B206C */ if (_t13) goto L_028B2078; else goto L_028B2070;
|
|
L_028B2070: ; // 0x28b2070
|
|
/* 028B2070 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2074 */ Gambit_fn_02801BB0(cpu);
|
|
L_028B2078: ; // 0x28b2078
|
|
/* 028B2078 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2078 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B207C */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028B207C */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2080 */ cpu->lr = cpu->r[0];
|
|
/* 028B2084 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2084 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B2088 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B208C */ return;
|
|
}
|
|
|
|
// fn_028B2090 @ 0x28b2090
|
|
void Gambit_fn_028B2090(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B2090: ; // 0x28b2090
|
|
/* 028B2090 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028B2094 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B2098 */ cpu->r[9] = 0x10140000u;
|
|
/* 028B209C */ cpu->r[12] = cpu->r[12] + 0x00006FB8u;
|
|
/* 028B20A0 */ cpu->r[9] = cpu->r[9] + 0xFFFF8430u;
|
|
/* 028B20A4 */ cpu->r[0] = cpu->r[0] + 0xFFFF8500u;
|
|
/* 028B20A8 */ cpu->r[11] = 0x101F0000u;
|
|
/* 028B20AC */ _t0 = cpu->r[12] + 0x00000004u;
|
|
/* 028B20AC */ rbrew_write32(cpu->mem, _t0, cpu->r[9]);
|
|
/* 028B20B0 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B20B4 */ cpu->r[11] = cpu->r[11] + 0x00006FB0u;
|
|
/* 028B20B8 */ _t1 = cpu->r[12] + 0x00000000u;
|
|
/* 028B20B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B20BC */ cpu->r[10] = cpu->r[10] + 0xFFFF8508u;
|
|
/* 028B20C0 */ _t2 = cpu->r[11] + 0x00000004u;
|
|
/* 028B20C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[9]);
|
|
/* 028B20C4 */ _t3 = cpu->r[11] + 0x00000000u;
|
|
/* 028B20C4 */ rbrew_write32(cpu->mem, _t3, cpu->r[10]);
|
|
/* 028B20C8 */ return;
|
|
}
|
|
|
|
// fn_028B20CC @ 0x28b20cc
|
|
void Gambit_fn_028B20CC(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_028B20CC: ; // 0x28b20cc
|
|
/* 028B20CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B20D0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B20D0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B20D0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B20D0 */ goto L_028B20D4;
|
|
L_028B20D4: ; // 0x28b20d4
|
|
/* 028B20D4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B20D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B20D8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B20D8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B20D8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B20D8 */ goto L_028B20DC;
|
|
L_028B20DC: ; // 0x28b20dc
|
|
/* 028B20DC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B20E0 @ 0x28b20e0
|
|
void Gambit_fn_028B20E0(CPUState* cpu) {
|
|
L_028B20E0: ; // 0x28b20e0
|
|
/* 028B20E0 */ return;
|
|
}
|
|
|
|
// fn_028B20E8 @ 0x28b20e8
|
|
void Gambit_fn_028B20E8(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_028B20E8: ; // 0x28b20e8
|
|
/* 028B20E8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B20E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B20E8 */ cpu->r[1] = _t0;
|
|
/* 028B20EC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B20EC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B20F0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B20F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B20F4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B20F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B20F8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028B20F8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028B20FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B20FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2100 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2100 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B2104 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2104 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B2104 */ if (_t7) goto L_028B2108; else goto L_028B2118;
|
|
L_028B2108: ; // 0x28b2108
|
|
/* 028B2108 */ cpu->r[3] = 0x0000013Cu;
|
|
/* 028B210C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2110 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2110 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2114 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2114 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B2114 */ if (_t9) goto L_028B2298; else goto L_028B2118;
|
|
L_028B2118: ; // 0x28b2118
|
|
/* 028B2118 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B211C */ Gambit_fn_028A5208(cpu);
|
|
/* 028B2120 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B2124 */ cpu->r[0] = cpu->r[0] + 0xFFFF83A0u;
|
|
/* 028B2128 */ cpu->r[28] = cpu->r[31] + 0x00000054u;
|
|
/* 028B2128 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B212C */ _t10 = cpu->r[31] + 0x00000050u;
|
|
/* 028B212C */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B2130 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2130 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B2130 */ if (_t12) goto L_028B2134; else goto L_028B2144;
|
|
L_028B2134: ; // 0x28b2134
|
|
/* 028B2134 */ cpu->r[3] = 0x000000E4u;
|
|
/* 028B2138 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B213C */ cpu->r[28] = cpu->r[3];
|
|
/* 028B213C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B2140 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2140 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B2140 */ if (_t14) goto L_028B2298; else goto L_028B2144;
|
|
L_028B2144: ; // 0x28b2144
|
|
/* 028B2144 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B2144 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2148 */ cpu->r[29] = 0x10110000u;
|
|
/* 028B214C */ cpu->r[30] = 0x10110000u;
|
|
/* 028B2150 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2150 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B2150 */ if (_t16) goto L_028B2154; else goto L_028B2164;
|
|
L_028B2154: ; // 0x28b2154
|
|
/* 028B2154 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B2158 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B215C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2160 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2160 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B2160 */ if (_t18) goto L_028B217C; else goto L_028B2164;
|
|
L_028B2164: ; // 0x28b2164
|
|
/* 028B2164 */ _t19 = cpu->r[29] + 0x00004468u;
|
|
/* 028B2164 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 028B2168 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2168 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[0]);
|
|
/* 028B216C */ _t21 = cpu->r[3] + 0x00000004u;
|
|
/* 028B216C */ rbrew_write_f32(cpu->mem, _t21, cpu->f[0]);
|
|
/* 028B2170 */ _t22 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2170 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[0]);
|
|
/* 028B2174 */ _t23 = cpu->r[30] + 0x00004464u;
|
|
/* 028B2174 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 028B2178 */ _t24 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B2178 */ rbrew_write_f32(cpu->mem, _t24, cpu->f[0]);
|
|
L_028B217C: ; // 0x28b217c
|
|
/* 028B217C */ cpu->r[6] = cpu->r[28] + 0x00000010u;
|
|
/* 028B217C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028B2180 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2180 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028B2180 */ if (_t26) goto L_028B2184; else goto L_028B218C;
|
|
L_028B2184: ; // 0x28b2184
|
|
/* 028B2184 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B2188 */ Gambit_fn_02801A78(cpu);
|
|
L_028B218C: ; // 0x28b218c
|
|
/* 028B218C */ cpu->r[7] = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B218C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B2190 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2190 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B2190 */ if (_t28) goto L_028B2194; else goto L_028B219C;
|
|
L_028B2194: ; // 0x28b2194
|
|
/* 028B2194 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B2198 */ Gambit_fn_02801A78(cpu);
|
|
L_028B219C: ; // 0x28b219c
|
|
/* 028B219C */ cpu->r[8] = cpu->r[28] + 0x00000028u;
|
|
/* 028B219C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B21A0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B21A0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028B21A0 */ if (_t30) goto L_028B21A4; else goto L_028B21AC;
|
|
L_028B21A4: ; // 0x28b21a4
|
|
/* 028B21A4 */ cpu->r[3] = 0x00000030u;
|
|
/* 028B21A8 */ Gambit_fn_02801A78(cpu);
|
|
L_028B21AC: ; // 0x28b21ac
|
|
/* 028B21AC */ cpu->r[9] = cpu->r[28] + 0x00000068u;
|
|
/* 028B21AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B21B0 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B21B0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028B21B0 */ if (_t32) goto L_028B21B4; else goto L_028B21BC;
|
|
L_028B21B4: ; // 0x28b21b4
|
|
/* 028B21B4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028B21B8 */ Gambit_fn_02801A78(cpu);
|
|
L_028B21BC: ; // 0x28b21bc
|
|
/* 028B21BC */ cpu->r[10] = cpu->r[28] + 0x00000070u;
|
|
/* 028B21BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B21C0 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B21C0 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028B21C0 */ if (_t34) goto L_028B21C4; else goto L_028B21CC;
|
|
L_028B21C4: ; // 0x28b21c4
|
|
/* 028B21C4 */ cpu->r[3] = 0x00000008u;
|
|
/* 028B21C8 */ Gambit_fn_02801A78(cpu);
|
|
L_028B21CC: ; // 0x28b21cc
|
|
/* 028B21CC */ cpu->r[0] = cpu->r[28] + 0x00000084u;
|
|
/* 028B21CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B21D0 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B21D0 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028B21D0 */ if (_t36) goto L_028B21D4; else goto L_028B21DC;
|
|
L_028B21D4: ; // 0x28b21d4
|
|
/* 028B21D4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B21D8 */ Gambit_fn_02801A78(cpu);
|
|
L_028B21DC: ; // 0x28b21dc
|
|
/* 028B21DC */ cpu->r[0] = cpu->r[28] + 0x00000094u;
|
|
/* 028B21DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B21E0 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B21E0 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028B21E0 */ if (_t38) goto L_028B21E4; else goto L_028B21EC;
|
|
L_028B21E4: ; // 0x28b21e4
|
|
/* 028B21E4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B21E8 */ Gambit_fn_02801A78(cpu);
|
|
L_028B21EC: ; // 0x28b21ec
|
|
/* 028B21EC */ cpu->r[0] = cpu->r[28] + 0x000000A0u;
|
|
/* 028B21EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B21F0 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B21F0 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028B21F0 */ if (_t40) goto L_028B21F4; else goto L_028B21FC;
|
|
L_028B21F4: ; // 0x28b21f4
|
|
/* 028B21F4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B21F8 */ Gambit_fn_02801A78(cpu);
|
|
L_028B21FC: ; // 0x28b21fc
|
|
/* 028B21FC */ cpu->r[3] = cpu->r[28] + 0x000000ACu;
|
|
/* 028B21FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2200 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2200 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028B2200 */ if (_t42) goto L_028B2204; else goto L_028B2214;
|
|
L_028B2204: ; // 0x28b2204
|
|
/* 028B2204 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B2208 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B220C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2210 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2210 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028B2210 */ if (_t44) goto L_028B222C; else goto L_028B2214;
|
|
L_028B2214: ; // 0x28b2214
|
|
/* 028B2214 */ _t45 = cpu->r[29] + 0x00004468u;
|
|
/* 028B2214 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 028B2218 */ _t46 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2218 */ rbrew_write_f32(cpu->mem, _t46, cpu->f[0]);
|
|
/* 028B221C */ _t47 = cpu->r[3] + 0x00000004u;
|
|
/* 028B221C */ rbrew_write_f32(cpu->mem, _t47, cpu->f[0]);
|
|
/* 028B2220 */ _t48 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2220 */ rbrew_write_f32(cpu->mem, _t48, cpu->f[0]);
|
|
/* 028B2224 */ _t49 = cpu->r[30] + 0x00004464u;
|
|
/* 028B2224 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 028B2228 */ _t50 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B2228 */ rbrew_write_f32(cpu->mem, _t50, cpu->f[0]);
|
|
L_028B222C: ; // 0x28b222c
|
|
/* 028B222C */ cpu->r[3] = cpu->r[28] + 0x000000BCu;
|
|
/* 028B222C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2230 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2230 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028B2230 */ if (_t52) goto L_028B2234; else goto L_028B2244;
|
|
L_028B2234: ; // 0x28b2234
|
|
/* 028B2234 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B2238 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B223C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2240 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2240 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028B2240 */ if (_t54) goto L_028B225C; else goto L_028B2244;
|
|
L_028B2244: ; // 0x28b2244
|
|
/* 028B2244 */ _t55 = cpu->r[29] + 0x00004468u;
|
|
/* 028B2244 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 028B2248 */ _t56 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2248 */ rbrew_write_f32(cpu->mem, _t56, cpu->f[0]);
|
|
/* 028B224C */ _t57 = cpu->r[3] + 0x00000004u;
|
|
/* 028B224C */ rbrew_write_f32(cpu->mem, _t57, cpu->f[0]);
|
|
/* 028B2250 */ _t58 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2250 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[0]);
|
|
/* 028B2254 */ _t59 = cpu->r[30] + 0x00004464u;
|
|
/* 028B2254 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 028B2258 */ _t60 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B2258 */ rbrew_write_f32(cpu->mem, _t60, cpu->f[0]);
|
|
L_028B225C: ; // 0x28b225c
|
|
/* 028B225C */ cpu->r[3] = cpu->r[28] + 0x000000D8u;
|
|
/* 028B225C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2260 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B2264 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2264 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028B2264 */ if (_t62) goto L_028B2268; else goto L_028B2278;
|
|
L_028B2268: ; // 0x28b2268
|
|
/* 028B2268 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B226C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2270 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2274 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2274 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028B2274 */ if (_t64) goto L_028B227C; else goto L_028B2278;
|
|
L_028B2278: ; // 0x28b2278
|
|
/* 028B2278 */ _t65 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2278 */ rbrew_write32(cpu->mem, _t65, cpu->r[30]);
|
|
L_028B227C: ; // 0x28b227c
|
|
/* 028B227C */ cpu->r[3] = cpu->r[28] + 0x000000DCu;
|
|
/* 028B227C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2280 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2280 */ _t67 = _t66 & 0x00000001u;
|
|
/* 028B2280 */ if (_t67) goto L_028B2284; else goto L_028B2294;
|
|
L_028B2284: ; // 0x28b2284
|
|
/* 028B2284 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B2288 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B228C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2290 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2290 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028B2290 */ if (_t69) goto L_028B2298; else goto L_028B2294;
|
|
L_028B2294: ; // 0x28b2294
|
|
/* 028B2294 */ _t70 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2294 */ rbrew_write32(cpu->mem, _t70, cpu->r[30]);
|
|
L_028B2298: ; // 0x28b2298
|
|
/* 028B2298 */ _t71 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2298 */ cpu->r[28] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028B229C */ _t72 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B229C */ cpu->r[29] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028B22A0 */ _t73 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B22A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028B22A4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B22A8 */ _t74 = cpu->r[1] + 0x00000010u;
|
|
/* 028B22A8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028B22AC */ cpu->lr = cpu->r[0];
|
|
/* 028B22B0 */ _t75 = cpu->r[1] + 0x00000014u;
|
|
/* 028B22B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028B22B4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B22B8 */ return;
|
|
}
|
|
|
|
// fn_028B22BC @ 0x28b22bc
|
|
void Gambit_fn_028B22BC(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_028B22BC: ; // 0x28b22bc
|
|
/* 028B22BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B22C0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B22C0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B22C0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B22C0 */ goto L_028B22C4;
|
|
L_028B22C4: ; // 0x28b22c4
|
|
/* 028B22C4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B22C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B22C8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B22C8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B22C8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B22C8 */ goto L_028B22CC;
|
|
L_028B22CC: ; // 0x28b22cc
|
|
/* 028B22CC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B22D0 @ 0x28b22d0
|
|
void Gambit_fn_028B22D0(CPUState* cpu) {
|
|
L_028B22D0: ; // 0x28b22d0
|
|
/* 028B22D0 */ return;
|
|
}
|
|
|
|
// fn_028B22D4 @ 0x28b22d4
|
|
void Gambit_fn_028B22D4(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B22D4: ; // 0x28b22d4
|
|
/* 028B22D4 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B22D8 */ _t0 = cpu->r[3] + 0xFFFF9A60u;
|
|
/* 028B22D8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B22DC */ return;
|
|
}
|
|
|
|
// fn_028B22E0 @ 0x28b22e0
|
|
void Gambit_fn_028B22E0(CPUState* cpu) {
|
|
L_028B22E0: ; // 0x28b22e0
|
|
/* 028B22E0 */ cpu->r[3] = 0x00000013u;
|
|
/* 028B22E4 */ return;
|
|
}
|
|
|
|
// fn_028B22E8 @ 0x28b22e8
|
|
void Gambit_fn_028B22E8(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_028B22E8: ; // 0x28b22e8
|
|
/* 028B22E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B22EC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B22EC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B22EC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B22EC */ goto L_028B22F0;
|
|
L_028B22F0: ; // 0x28b22f0
|
|
/* 028B22F0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B22F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B22F4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B22F4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B22F4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B22F4 */ goto L_028B22F8;
|
|
L_028B22F8: ; // 0x28b22f8
|
|
/* 028B22F8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B22FC @ 0x28b22fc
|
|
void Gambit_fn_028B22FC(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_028B22FC: ; // 0x28b22fc
|
|
/* 028B22FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2300 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2300 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B2300 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2300 */ goto L_028B2304;
|
|
L_028B2304: ; // 0x28b2304
|
|
/* 028B2304 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2308 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2308 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B2308 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2308 */ goto L_028B230C;
|
|
L_028B230C: ; // 0x28b230c
|
|
/* 028B230C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B2310 @ 0x28b2310
|
|
void Gambit_fn_028B2310(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_02836DD0: ; // 0x2836dd0
|
|
/* 02836DD0 */ cpu->r[0] = cpu->lr;
|
|
/* 02836DD4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02836DD4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02836DD4 */ cpu->r[1] = _t0;
|
|
/* 02836DD8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836DD8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02836DDC */ cpu->r[12] = 0x101D0000u;
|
|
/* 02836DE0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02836DE0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02836DE4 */ _t3 = cpu->r[12] + 0xFFFF994Cu;
|
|
/* 02836DE4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02836DE8 */ cpu->r[31] = cpu->r[3];
|
|
/* 02836DEC */ _t4 = cpu->r[12] + 0x00000060u;
|
|
/* 02836DEC */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02836DF0 */ rbrew_dispatch(cpu, 0x02d0ab60u);
|
|
/* 02836DF4 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 02836DF4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02836DF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[3]);
|
|
/* 02836DFC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836DFC */ _t7 = _t6 & 0x00000001u;
|
|
/* 02836DFC */ if (_t7) goto L_02836E00; else goto L_02836E20;
|
|
L_02836E00: ; // 0x2836e00
|
|
/* 02836E00 */ _t8 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E00 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02836E04 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 02836E08 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E08 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 02836E0C */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 02836E0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02836E10 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836E10 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02836E14 */ cpu->lr = cpu->r[0];
|
|
/* 02836E18 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02836E1C */ return;
|
|
L_02836E20: ; // 0x2836e20
|
|
/* 02836E20 */ _t12 = cpu->r[0] + cpu->r[31];
|
|
/* 02836E20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02836E24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02836E28 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836E28 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02836E28 */ if (_t14) goto L_02836E2C; else goto L_02836E20;
|
|
L_02836E2C: ; // 0x2836e2c
|
|
/* 02836E2C */ /* nop */
|
|
/* 02836E30 */ /* nop */
|
|
/* 02836E34 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836E34 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02836E34 */ if (_t16) goto L_02836E38; else goto L_02836E20;
|
|
L_02836E38: ; // 0x2836e38
|
|
/* 02836E38 */ cpu->r[11] = 0x00000001u;
|
|
/* 02836E3C */ _t17 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E3C */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 02836E40 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02836E40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02836E44 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836E44 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02836E48 */ cpu->lr = cpu->r[0];
|
|
/* 02836E4C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02836E50 */ return;
|
|
L_028B2310: ; // 0x28b2310
|
|
/* 028B2310 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028B2314 */ goto L_02836DD0;
|
|
}
|
|
|
|
// fn_028B2318 @ 0x28b2318
|
|
void Gambit_fn_028B2318(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_02836E54: ; // 0x2836e54
|
|
/* 02836E54 */ cpu->r[0] = cpu->lr;
|
|
/* 02836E58 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02836E58 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02836E58 */ cpu->r[1] = _t0;
|
|
/* 02836E5C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836E5C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02836E60 */ cpu->r[12] = 0x101D0000u;
|
|
/* 02836E64 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02836E64 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02836E68 */ _t3 = cpu->r[12] + 0xFFFF994Cu;
|
|
/* 02836E68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02836E6C */ cpu->r[31] = cpu->r[3];
|
|
/* 02836E70 */ _t4 = cpu->r[12] + 0x00000060u;
|
|
/* 02836E70 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02836E74 */ rbrew_dispatch(cpu, 0x02d0ab60u);
|
|
/* 02836E78 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 02836E78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02836E7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[3]);
|
|
/* 02836E80 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836E80 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02836E80 */ if (_t7) goto L_02836E84; else goto L_02836EA8;
|
|
L_02836E84: ; // 0x2836e84
|
|
/* 02836E84 */ _t8 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E84 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02836E88 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 02836E88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02836E8C */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E8C */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 02836E90 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836E90 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02836E90 */ if (_t11) goto L_02836E94; else goto L_02836EA8;
|
|
L_02836E94: ; // 0x2836e94
|
|
/* 02836E94 */ _t12 = cpu->r[0] + cpu->r[31];
|
|
/* 02836E94 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02836E98 */ cpu->r[0] = 0x00000000u;
|
|
/* 02836E9C */ /* nop */
|
|
/* 02836EA0 */ /* nop */
|
|
/* 02836EA4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836EA4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02836EA4 */ if (_t14) goto L_02836EA8; else goto L_02836E94;
|
|
L_02836EA8: ; // 0x2836ea8
|
|
/* 02836EA8 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 02836EA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02836EAC */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836EAC */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02836EB0 */ cpu->lr = cpu->r[0];
|
|
/* 02836EB4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02836EB8 */ return;
|
|
L_028B2318: ; // 0x28b2318
|
|
/* 028B2318 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028B231C */ goto L_02836E54;
|
|
}
|
|
|
|
// fn_028B2320 @ 0x28b2320
|
|
void Gambit_fn_028B2320(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_028B2320: ; // 0x28b2320
|
|
/* 028B2320 */ cpu->r[0] = cpu->lr;
|
|
/* 028B2324 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B2324 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2324 */ cpu->r[1] = _t0;
|
|
/* 028B2328 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2328 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B232C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B232C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B2330 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2330 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B2334 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B2338 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B233C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B233C */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B2340 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B2340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2344 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2344 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B2348 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B234C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B234C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B234C */ if (_t7) goto L_028B2350; else goto L_028B2360;
|
|
L_028B2350: ; // 0x28b2350
|
|
/* 028B2350 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B2354 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2358 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B2358 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B235C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B235C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B235C */ if (_t9) goto L_028B239C; else goto L_028B2360;
|
|
L_028B2360: ; // 0x28b2360
|
|
/* 028B2360 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B2360 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2364 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2364 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B2364 */ if (_t11) goto L_028B2368; else goto L_028B2378;
|
|
L_028B2368: ; // 0x28b2368
|
|
/* 028B2368 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B236C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2370 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2374 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2374 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B2374 */ if (_t13) goto L_028B2390; else goto L_028B2378;
|
|
L_028B2378: ; // 0x28b2378
|
|
/* 028B2378 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B237C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B2380 */ cpu->r[10] = cpu->r[10] + 0xFFFF85D8u;
|
|
/* 028B2384 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2384 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B2388 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2388 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B238C */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B238C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B2390: ; // 0x28b2390
|
|
/* 028B2390 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B2394 */ cpu->r[0] = cpu->r[0] + 0xFFFF8608u;
|
|
/* 028B2398 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B2398 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B239C: ; // 0x28b239c
|
|
/* 028B239C */ cpu->r[5] = cpu->r[31];
|
|
/* 028B23A0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B23A4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B23A8 */ Gambit_fn_028AC9E4(cpu);
|
|
/* 028B23AC */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B23AC */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B23B0 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B23B0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B23B4 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B23B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B23B8 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B23B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B23BC */ cpu->lr = cpu->r[0];
|
|
/* 028B23C0 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B23C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B23C4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B23C8 */ return;
|
|
}
|
|
|
|
// fn_028B2324 @ 0x28b2324
|
|
void Gambit_fn_028B2324(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_028B2324: ; // 0x28b2324
|
|
/* 028B2324 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B2324 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2324 */ cpu->r[1] = _t0;
|
|
/* 028B2328 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2328 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B232C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B232C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B2330 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2330 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B2334 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B2338 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B233C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B233C */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B2340 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B2340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2344 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2344 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B2348 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B234C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B234C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B234C */ if (_t7) goto L_028B2350; else goto L_028B2360;
|
|
L_028B2350: ; // 0x28b2350
|
|
/* 028B2350 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B2354 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2358 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B2358 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B235C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B235C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B235C */ if (_t9) goto L_028B239C; else goto L_028B2360;
|
|
L_028B2360: ; // 0x28b2360
|
|
/* 028B2360 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B2360 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2364 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2364 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B2364 */ if (_t11) goto L_028B2368; else goto L_028B2378;
|
|
L_028B2368: ; // 0x28b2368
|
|
/* 028B2368 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B236C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2370 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2374 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2374 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B2374 */ if (_t13) goto L_028B2390; else goto L_028B2378;
|
|
L_028B2378: ; // 0x28b2378
|
|
/* 028B2378 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B237C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B2380 */ cpu->r[10] = cpu->r[10] + 0xFFFF85D8u;
|
|
/* 028B2384 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2384 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B2388 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2388 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B238C */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B238C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B2390: ; // 0x28b2390
|
|
/* 028B2390 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B2394 */ cpu->r[0] = cpu->r[0] + 0xFFFF8608u;
|
|
/* 028B2398 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B2398 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B239C: ; // 0x28b239c
|
|
/* 028B239C */ cpu->r[5] = cpu->r[31];
|
|
/* 028B23A0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B23A4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B23A8 */ Gambit_fn_028AC9E4(cpu);
|
|
/* 028B23AC */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B23AC */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B23B0 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B23B0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B23B4 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B23B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B23B8 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B23B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B23BC */ cpu->lr = cpu->r[0];
|
|
/* 028B23C0 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B23C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B23C4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B23C8 */ return;
|
|
}
|
|
|
|
// fn_028B23CC @ 0x28b23cc
|
|
void Gambit_fn_028B23CC(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_028AC9E4: ; // 0x28ac9e4
|
|
/* 028AC9E4 */ cpu->r[0] = cpu->lr;
|
|
/* 028AC9E8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028AC9E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC9E8 */ cpu->r[1] = _t0;
|
|
/* 028AC9EC */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028AC9EC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC9F0 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC9F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AC9F4 */ _t3 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC9F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AC9F8 */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AC9F8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AC9FC */ cpu->r[29] = cpu->r[3];
|
|
/* 028ACA00 */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028ACA00 */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028ACA04 */ _t6 = cpu->r[8] + 0x00000048u;
|
|
/* 028ACA04 */ cpu->r[10] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028ACA08 */ cpu->r[31] = cpu->r[5];
|
|
/* 028ACA0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028ACA10 */ cpu->r[30] = cpu->r[4];
|
|
/* 028ACA14 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA14 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028ACA14 */ if (_t8) goto L_028ACA80; else goto L_028ACA18;
|
|
L_028ACA18: ; // 0x28aca18
|
|
/* 028ACA18 */ cpu->r[4] = 0x10140000u;
|
|
/* 028ACA1C */ cpu->r[5] = cpu->r[30];
|
|
/* 028ACA20 */ cpu->r[4] = cpu->r[4] + 0xFFFF8164u;
|
|
/* 028ACA24 */ cpu->r[3] = cpu->r[29];
|
|
/* 028ACA28 */ _t9 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028ACA28 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028ACA28 */ if (_t10) goto L_028ACA2C; // else: addr-0 trap, fall-through
|
|
L_028ACA2C: ; // 0x28aca2c
|
|
/* 028ACA2C */ Gambit_fn_028AC6C8(cpu);
|
|
/* 028ACA30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACA34 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA34 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028ACA34 */ if (_t12) goto L_028ACA80; else goto L_028ACA38;
|
|
L_028ACA38: ; // 0x28aca38
|
|
/* 028ACA38 */ cpu->r[11] = 0x00000000u;
|
|
/* 028ACA3C */ _t13 = cpu->r[29] + 0x00000020u;
|
|
/* 028ACA3C */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028ACA40 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028ACA44 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA44 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028ACA48 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACA48 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028ACA4C */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028ACA4C */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028ACA50 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACA50 */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 028ACA54 */ _t18 = cpu->r[1] + 0x00000018u;
|
|
/* 028ACA54 */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 028ACA58 */ _t19 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028ACA58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028ACA5C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA60 */ cpu->r[5] = cpu->r[30];
|
|
/* 028ACA64 */ Gambit_fn_028AE274(cpu);
|
|
/* 028ACA68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACA6C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA6C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028ACA6C */ if (_t21) goto L_028ACA80; else goto L_028ACA70;
|
|
L_028ACA70: ; // 0x28aca70
|
|
/* 028ACA70 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA74 */ cpu->r[5] = cpu->r[31];
|
|
/* 028ACA78 */ cpu->r[3] = cpu->r[29];
|
|
/* 028ACA7C */ Gambit_fn_028AC7F4(cpu);
|
|
L_028ACA80: ; // 0x28aca80
|
|
/* 028ACA80 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028ACA80 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028ACA84 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028ACA84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028ACA88 */ _t24 = cpu->r[1] + 0x00000020u;
|
|
/* 028ACA88 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028ACA8C */ cpu->lr = cpu->r[0];
|
|
/* 028ACA90 */ _t25 = cpu->r[1] + 0x00000024u;
|
|
/* 028ACA90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028ACA94 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028ACA98 */ return;
|
|
L_028B23CC: ; // 0x28b23cc
|
|
/* 028B23CC */ goto L_028AC9E4;
|
|
}
|
|
|
|
// fn_028B23D0 @ 0x28b23d0
|
|
void Gambit_fn_028B23D0(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_028B23D0: ; // 0x28b23d0
|
|
/* 028B23D0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B23D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B23D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B23D4 */ cpu->r[1] = _t0;
|
|
/* 028B23D8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B23D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B23DC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B23DC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B23E0 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B23E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B23E4 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B23E8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B23EC */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B23EC */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B23F0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B23F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B23F4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B23F4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B23F8 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B23FC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B23FC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B23FC */ if (_t7) goto L_028B2400; else goto L_028B2410;
|
|
L_028B2400: ; // 0x28b2400
|
|
/* 028B2400 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B2404 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2408 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B2408 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B240C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B240C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B240C */ if (_t9) goto L_028B244C; else goto L_028B2410;
|
|
L_028B2410: ; // 0x28b2410
|
|
/* 028B2410 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B2410 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2414 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2414 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B2414 */ if (_t11) goto L_028B2418; else goto L_028B2428;
|
|
L_028B2418: ; // 0x28b2418
|
|
/* 028B2418 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B241C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2420 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2424 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2424 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B2424 */ if (_t13) goto L_028B2440; else goto L_028B2428;
|
|
L_028B2428: ; // 0x28b2428
|
|
/* 028B2428 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B242C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B2430 */ cpu->r[10] = cpu->r[10] + 0xFFFF85D8u;
|
|
/* 028B2434 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2434 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B2438 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2438 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B243C */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B243C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B2440: ; // 0x28b2440
|
|
/* 028B2440 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B2444 */ cpu->r[0] = cpu->r[0] + 0xFFFF8608u;
|
|
/* 028B2448 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B2448 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B244C: ; // 0x28b244c
|
|
/* 028B244C */ cpu->r[5] = cpu->r[31];
|
|
/* 028B2450 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B2454 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2458 */ Gambit_fn_028AC7F4(cpu);
|
|
/* 028B245C */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B245C */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B2460 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2460 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B2464 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2464 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B2468 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2468 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B246C */ cpu->lr = cpu->r[0];
|
|
/* 028B2470 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2470 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B2474 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B2478 */ return;
|
|
}
|
|
|
|
// fn_028B23D4 @ 0x28b23d4
|
|
void Gambit_fn_028B23D4(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_028B23D4: ; // 0x28b23d4
|
|
/* 028B23D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B23D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B23D4 */ cpu->r[1] = _t0;
|
|
/* 028B23D8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B23D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B23DC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B23DC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B23E0 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B23E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B23E4 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B23E8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B23EC */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B23EC */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B23F0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B23F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B23F4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B23F4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B23F8 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B23FC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B23FC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B23FC */ if (_t7) goto L_028B2400; else goto L_028B2410;
|
|
L_028B2400: ; // 0x28b2400
|
|
/* 028B2400 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B2404 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2408 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B2408 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B240C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B240C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B240C */ if (_t9) goto L_028B244C; else goto L_028B2410;
|
|
L_028B2410: ; // 0x28b2410
|
|
/* 028B2410 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B2410 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2414 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2414 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B2414 */ if (_t11) goto L_028B2418; else goto L_028B2428;
|
|
L_028B2418: ; // 0x28b2418
|
|
/* 028B2418 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B241C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2420 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2424 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2424 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B2424 */ if (_t13) goto L_028B2440; else goto L_028B2428;
|
|
L_028B2428: ; // 0x28b2428
|
|
/* 028B2428 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B242C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B2430 */ cpu->r[10] = cpu->r[10] + 0xFFFF85D8u;
|
|
/* 028B2434 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2434 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B2438 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2438 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B243C */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B243C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B2440: ; // 0x28b2440
|
|
/* 028B2440 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B2444 */ cpu->r[0] = cpu->r[0] + 0xFFFF8608u;
|
|
/* 028B2448 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B2448 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B244C: ; // 0x28b244c
|
|
/* 028B244C */ cpu->r[5] = cpu->r[31];
|
|
/* 028B2450 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B2454 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2458 */ Gambit_fn_028AC7F4(cpu);
|
|
/* 028B245C */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B245C */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B2460 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2460 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B2464 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2464 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B2468 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2468 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B246C */ cpu->lr = cpu->r[0];
|
|
/* 028B2470 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2470 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B2474 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B2478 */ return;
|
|
}
|
|
|
|
// fn_028B247C @ 0x28b247c
|
|
void Gambit_fn_028B247C(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_028B247C: ; // 0x28b247c
|
|
/* 028B247C */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B247C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B247C */ cpu->r[1] = _t0;
|
|
/* 028B2480 */ /* nop */
|
|
/* 028B2484 */ cpu->r[0] = cpu->lr;
|
|
/* 028B2488 */ cpu->r[27] = cpu->r[3];
|
|
/* 028B248C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B248C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B2490 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B2494 */ _t2 = cpu->r[3] + 0xFFFF9A60u;
|
|
/* 028B2494 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B2498 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2498 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B249C */ _t4 = cpu->r[12] + 0x00000014u;
|
|
/* 028B249C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B24A0 */ cpu->ctr = cpu->r[0];
|
|
/* 028B24A4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B24A8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B24AC */ _t5 = cpu->r[27] + 0x00000014u;
|
|
/* 028B24AC */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B24B0 */ cpu->r[8] = cpu->r[27] + 0x00000008u;
|
|
/* 028B24B4 */ _t6 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028B24B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B24B8 */ cpu->r[31] = cpu->r[8] - cpu->r[29];
|
|
/* 028B24BC */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028B24C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B24C4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B24C4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B24C4 */ if (_t8) goto L_028B2500; else goto L_028B24C8;
|
|
L_028B24C8: ; // 0x28b24c8
|
|
/* 028B24C8 */ cpu->r[26] = 0x00000001u;
|
|
L_028B24CC: ; // 0x28b24cc
|
|
/* 028B24CC */ _t9 = cpu->r[28] + 0x00000028u;
|
|
/* 028B24CC */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B24D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B24D4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B24D4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B24D4 */ if (_t11) goto L_028B24E8; else goto L_028B24D8;
|
|
L_028B24D8: ; // 0x28b24d8
|
|
/* 028B24D8 */ _t12 = cpu->r[3] + 0x00000050u;
|
|
/* 028B24D8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B24DC */ _t13 = cpu->r[9] + 0x00000044u;
|
|
/* 028B24DC */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B24E0 */ cpu->ctr = cpu->r[10];
|
|
/* 028B24E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B24E8: ; // 0x28b24e8
|
|
/* 028B24E8 */ cpu->r[6] = cpu->r[28] + cpu->r[29];
|
|
/* 028B24EC */ _t14 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B24EC */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[26]);
|
|
/* 028B24F0 */ _t15 = cpu->r[6] + 0x00000004u;
|
|
/* 028B24F0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B24F4 */ cpu->r[28] = cpu->r[11] - cpu->r[29];
|
|
/* 028B24F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B24FC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B24FC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B24FC */ if (_t17) goto L_028B2500; else goto L_028B24CC;
|
|
L_028B2500: ; // 0x28b2500
|
|
/* 028B2500 */ _t18 = cpu->r[30] + 0x00000000u;
|
|
/* 028B2500 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B2504 */ _t19 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B2504 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B2508 */ cpu->ctr = cpu->r[0];
|
|
/* 028B250C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2510 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B2514 */ _t20 = cpu->r[27] + 0x00000054u;
|
|
/* 028B2514 */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B2518 */ Gambit_fn_028AACF8(cpu);
|
|
/* 028B251C */ /* nop */
|
|
/* 028B2520 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 028B2520 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B2524 */ cpu->lr = cpu->r[0];
|
|
/* 028B2528 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B252C */ return;
|
|
}
|
|
|
|
// fn_028B2530 @ 0x28b2530
|
|
void Gambit_fn_028B2530(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028B2530: ; // 0x28b2530
|
|
/* 028B2530 */ _t0 = cpu->r[3] + 0x00000020u;
|
|
/* 028B2530 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B2534 */ _t1 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B2534 */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B2538 */ return;
|
|
}
|
|
|
|
// fn_028B253C @ 0x28b253c
|
|
void Gambit_fn_028B253C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028B253C: ; // 0x28b253c
|
|
/* 028B253C */ cpu->r[0] = cpu->lr;
|
|
/* 028B2540 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B2540 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B2544 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B2544 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B2544 */ cpu->r[1] = _t1;
|
|
/* 028B2548 */ Gambit_fn_028B2530(cpu);
|
|
/* 028B254C */ Gambit_fn_028B2CAC(cpu);
|
|
/* 028B2550 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2550 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B2554 */ cpu->lr = cpu->r[0];
|
|
/* 028B2558 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B255C */ return;
|
|
}
|
|
|
|
// fn_028B2544 @ 0x28b2544
|
|
void Gambit_fn_028B2544(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028B2544: ; // 0x28b2544
|
|
/* 028B2544 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B2544 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2544 */ cpu->r[1] = _t0;
|
|
/* 028B2548 */ Gambit_fn_028B2530(cpu);
|
|
/* 028B254C */ Gambit_fn_028B2CAC(cpu);
|
|
/* 028B2550 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2550 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B2554 */ cpu->lr = cpu->r[0];
|
|
/* 028B2558 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B255C */ return;
|
|
}
|
|
|
|
// fn_028B2560 @ 0x28b2560
|
|
void Gambit_fn_028B2560(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028B2560: ; // 0x28b2560
|
|
/* 028B2560 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B2560 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2560 */ cpu->r[1] = _t0;
|
|
/* 028B2564 */ cpu->r[0] = cpu->lr;
|
|
/* 028B2568 */ /* nop */
|
|
/* 028B256C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B256C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2570 */ cpu->r[27] = cpu->r[4];
|
|
/* 028B2574 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B2578 */ cpu->r[30] = cpu->r[7];
|
|
/* 028B257C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B257C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B2580 */ cpu->r[29] = cpu->r[6];
|
|
/* 028B2584 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2584 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B2584 */ if (_t3) goto L_028B2588; else goto L_028B2598;
|
|
L_028B2588: ; // 0x28b2588
|
|
/* 028B2588 */ cpu->r[3] = 0x00000068u;
|
|
/* 028B258C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2590 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2590 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2594 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2594 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B2594 */ if (_t5) goto L_028B25D8; else goto L_028B2598;
|
|
L_028B2598: ; // 0x28b2598
|
|
/* 028B2598 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B259C */ cpu->r[4] = cpu->r[27];
|
|
/* 028B25A0 */ cpu->r[5] = cpu->r[28];
|
|
/* 028B25A4 */ cpu->r[6] = cpu->r[29];
|
|
/* 028B25A8 */ cpu->r[7] = cpu->r[30];
|
|
/* 028B25AC */ Gambit_fn_028ACDD8(cpu);
|
|
/* 028B25B0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B25B4 */ cpu->r[11] = 0x00000000u;
|
|
/* 028B25B8 */ cpu->r[0] = cpu->r[0] + 0xFFFF862Cu;
|
|
/* 028B25BC */ _t6 = cpu->r[31] + 0x00000060u;
|
|
/* 028B25BC */ rbrew_write32(cpu->mem, _t6, cpu->r[11]);
|
|
/* 028B25C0 */ _t7 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028B25C0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028B25C4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B25C8 */ _t8 = cpu->r[31] + 0x00000067u;
|
|
/* 028B25C8 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[11]);
|
|
/* 028B25CC */ cpu->r[0] = cpu->r[0] | 0x0000FFFFu;
|
|
/* 028B25D0 */ _t9 = cpu->r[31] + 0x00000064u;
|
|
/* 028B25D0 */ rbrew_write16(cpu->mem, _t9, (uint16_t)cpu->r[0]);
|
|
/* 028B25D4 */ _t10 = cpu->r[31] + 0x00000066u;
|
|
/* 028B25D4 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[11]);
|
|
L_028B25D8: ; // 0x28b25d8
|
|
/* 028B25D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B25DC */ /* nop */
|
|
/* 028B25E0 */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 028B25E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B25E4 */ cpu->lr = cpu->r[0];
|
|
/* 028B25E8 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B25EC */ return;
|
|
}
|
|
|
|
// fn_028B25F0 @ 0x28b25f0
|
|
void Gambit_fn_028B25F0(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_028B25F0: ; // 0x28b25f0
|
|
/* 028B25F0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B25F4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B25F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B25F4 */ cpu->r[1] = _t0;
|
|
/* 028B25F8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B25F8 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B25FC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B25FC */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B2600 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 028B2600 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B2604 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2604 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B2608 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B260C */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B260C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B2610 */ _t6 = cpu->r[30] + 0x00000014u;
|
|
/* 028B2610 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B2614 */ cpu->r[29] = cpu->r[30] + 0x00000008u;
|
|
/* 028B2618 */ _t7 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B2618 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B261C */ cpu->r[31] = cpu->r[29] - cpu->r[10];
|
|
/* 028B2620 */ cpu->r[8] = cpu->r[0] - cpu->r[10];
|
|
/* 028B2624 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[31]);
|
|
/* 028B2628 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2628 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B2628 */ if (_t9) goto L_028B2674; else goto L_028B262C;
|
|
L_028B262C: ; // 0x28b262c
|
|
/* 028B262C */ cpu->r[11] = cpu->r[8] + cpu->r[10];
|
|
/* 028B2630 */ _t10 = cpu->r[11] + 0x00000004u;
|
|
/* 028B2630 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B2634 */ cpu->r[28] = cpu->r[8];
|
|
/* 028B2638 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2638 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028B263C */ cpu->r[8] = cpu->r[9] - cpu->r[10];
|
|
/* 028B2640 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B2644 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2644 */ rbrew_write32(cpu->mem, _t12, cpu->r[8]);
|
|
/* 028B2648 */ Gambit_fn_028A5630(cpu);
|
|
/* 028B264C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2650 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2650 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B2650 */ if (_t14) goto L_028B2664; else goto L_028B2654;
|
|
L_028B2654: ; // 0x28b2654
|
|
/* 028B2654 */ _t15 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028B2654 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2658 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B265C */ cpu->r[5] = cpu->r[29];
|
|
/* 028B2660 */ Gambit_fn_028AA014(cpu);
|
|
L_028B2664: ; // 0x28b2664
|
|
/* 028B2664 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2664 */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B2668 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[31]);
|
|
/* 028B266C */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B266C */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B2670 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2670 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B2670 */ if (_t19) goto L_028B2674; else goto L_028B262C;
|
|
L_028B2674: ; // 0x28b2674
|
|
/* 028B2674 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2674 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B2678 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2678 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B267C */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B267C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B2680 */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028B2680 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B2684 */ cpu->lr = cpu->r[0];
|
|
/* 028B2688 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2688 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B268C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B2690 */ return;
|
|
}
|
|
|
|
// fn_028B25F4 @ 0x28b25f4
|
|
void Gambit_fn_028B25F4(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_028B25F4: ; // 0x28b25f4
|
|
/* 028B25F4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B25F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B25F4 */ cpu->r[1] = _t0;
|
|
/* 028B25F8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B25F8 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B25FC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B25FC */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B2600 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 028B2600 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B2604 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2604 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B2608 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B260C */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B260C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B2610 */ _t6 = cpu->r[30] + 0x00000014u;
|
|
/* 028B2610 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B2614 */ cpu->r[29] = cpu->r[30] + 0x00000008u;
|
|
/* 028B2618 */ _t7 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B2618 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B261C */ cpu->r[31] = cpu->r[29] - cpu->r[10];
|
|
/* 028B2620 */ cpu->r[8] = cpu->r[0] - cpu->r[10];
|
|
/* 028B2624 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[31]);
|
|
/* 028B2628 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2628 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B2628 */ if (_t9) goto L_028B2674; else goto L_028B262C;
|
|
L_028B262C: ; // 0x28b262c
|
|
/* 028B262C */ cpu->r[11] = cpu->r[8] + cpu->r[10];
|
|
/* 028B2630 */ _t10 = cpu->r[11] + 0x00000004u;
|
|
/* 028B2630 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B2634 */ cpu->r[28] = cpu->r[8];
|
|
/* 028B2638 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2638 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028B263C */ cpu->r[8] = cpu->r[9] - cpu->r[10];
|
|
/* 028B2640 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B2644 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2644 */ rbrew_write32(cpu->mem, _t12, cpu->r[8]);
|
|
/* 028B2648 */ Gambit_fn_028A5630(cpu);
|
|
/* 028B264C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2650 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2650 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B2650 */ if (_t14) goto L_028B2664; else goto L_028B2654;
|
|
L_028B2654: ; // 0x28b2654
|
|
/* 028B2654 */ _t15 = cpu->r[30] + 0x0000001Cu;
|
|
/* 028B2654 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2658 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B265C */ cpu->r[5] = cpu->r[29];
|
|
/* 028B2660 */ Gambit_fn_028AA014(cpu);
|
|
L_028B2664: ; // 0x28b2664
|
|
/* 028B2664 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2664 */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B2668 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[31]);
|
|
/* 028B266C */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B266C */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B2670 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2670 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B2670 */ if (_t19) goto L_028B2674; else goto L_028B262C;
|
|
L_028B2674: ; // 0x28b2674
|
|
/* 028B2674 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2674 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B2678 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2678 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B267C */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B267C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B2680 */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 028B2680 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B2684 */ cpu->lr = cpu->r[0];
|
|
/* 028B2688 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2688 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B268C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B2690 */ return;
|
|
}
|
|
|
|
// fn_028B2694 @ 0x28b2694
|
|
void Gambit_fn_028B2694(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028B2694: ; // 0x28b2694
|
|
/* 028B2694 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B2698 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B269C */ cpu->r[0] = cpu->r[0] | 0x0000FFFFu;
|
|
/* 028B26A0 */ _t0 = cpu->r[3] + 0x00000067u;
|
|
/* 028B26A0 */ rbrew_write8(cpu->mem, _t0, (uint8_t)cpu->r[12]);
|
|
/* 028B26A4 */ _t1 = cpu->r[3] + 0x00000064u;
|
|
/* 028B26A4 */ rbrew_write16(cpu->mem, _t1, (uint16_t)cpu->r[0]);
|
|
/* 028B26A8 */ return;
|
|
}
|
|
|
|
// fn_028B26AC @ 0x28b26ac
|
|
void Gambit_fn_028B26AC(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_028B26AC: ; // 0x28b26ac
|
|
/* 028B26AC */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B26AC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B26AC */ cpu->r[1] = _t0;
|
|
/* 028B26B0 */ /* nop */
|
|
/* 028B26B4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B26B8 */ cpu->r[26] = cpu->r[3];
|
|
/* 028B26BC */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B26BC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B26C0 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B26C4 */ _t2 = cpu->r[3] + 0xFFFF9A60u;
|
|
/* 028B26C4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B26C8 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B26C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B26CC */ _t4 = cpu->r[12] + 0x00000014u;
|
|
/* 028B26CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B26D0 */ cpu->ctr = cpu->r[0];
|
|
/* 028B26D4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B26D8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B26DC */ _t5 = cpu->r[26] + 0x00000014u;
|
|
/* 028B26DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B26E0 */ cpu->r[25] = cpu->r[26] + 0x00000008u;
|
|
/* 028B26E4 */ _t6 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028B26E4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B26E8 */ cpu->r[31] = cpu->r[25] - cpu->r[29];
|
|
/* 028B26EC */ cpu->r[28] = cpu->r[8] - cpu->r[29];
|
|
/* 028B26F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B26F4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B26F4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B26F4 */ if (_t8) goto L_028B2730; else goto L_028B26F8;
|
|
L_028B26F8: ; // 0x28b26f8
|
|
/* 028B26F8 */ cpu->r[27] = 0x00000001u;
|
|
L_028B26FC: ; // 0x28b26fc
|
|
/* 028B26FC */ _t9 = cpu->r[28] + 0x00000028u;
|
|
/* 028B26FC */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B2700 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2704 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2704 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B2704 */ if (_t11) goto L_028B2718; else goto L_028B2708;
|
|
L_028B2708: ; // 0x28b2708
|
|
/* 028B2708 */ _t12 = cpu->r[3] + 0x00000050u;
|
|
/* 028B2708 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B270C */ _t13 = cpu->r[9] + 0x00000044u;
|
|
/* 028B270C */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B2710 */ cpu->ctr = cpu->r[10];
|
|
/* 028B2714 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B2718: ; // 0x28b2718
|
|
/* 028B2718 */ cpu->r[7] = cpu->r[28] + cpu->r[29];
|
|
/* 028B271C */ _t14 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B271C */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[27]);
|
|
/* 028B2720 */ _t15 = cpu->r[7] + 0x00000004u;
|
|
/* 028B2720 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2724 */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028B2728 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B272C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B272C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B272C */ if (_t17) goto L_028B2730; else goto L_028B26FC;
|
|
L_028B2730: ; // 0x28b2730
|
|
/* 028B2730 */ _t18 = cpu->r[26] + 0x0000001Cu;
|
|
/* 028B2730 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B2734 */ cpu->r[4] = cpu->r[25];
|
|
/* 028B2738 */ Gambit_fn_028AA06C(cpu);
|
|
/* 028B273C */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 028B273C */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B2740 */ _t20 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B2740 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B2744 */ cpu->ctr = cpu->r[0];
|
|
/* 028B2748 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B274C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B2750 */ /* nop */
|
|
/* 028B2754 */ _t21 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B2754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B2758 */ cpu->lr = cpu->r[0];
|
|
/* 028B275C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B2760 */ return;
|
|
}
|
|
|
|
// fn_028B2764 @ 0x28b2764
|
|
void Gambit_fn_028B2764(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_028B2764: ; // 0x28b2764
|
|
/* 028B2764 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B2764 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2764 */ cpu->r[1] = _t0;
|
|
/* 028B2768 */ /* nop */
|
|
/* 028B276C */ cpu->r[0] = cpu->lr;
|
|
/* 028B2770 */ cpu->r[26] = cpu->r[3];
|
|
/* 028B2774 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B2774 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B2778 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B277C */ _t2 = cpu->r[3] + 0xFFFF9A60u;
|
|
/* 028B277C */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B2780 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2780 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B2784 */ _t4 = cpu->r[12] + 0x00000014u;
|
|
/* 028B2784 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B2788 */ cpu->ctr = cpu->r[0];
|
|
/* 028B278C */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2790 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B2794 */ _t5 = cpu->r[26] + 0x00000014u;
|
|
/* 028B2794 */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B2798 */ cpu->r[25] = cpu->r[26] + 0x00000008u;
|
|
/* 028B279C */ _t6 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028B279C */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B27A0 */ cpu->r[31] = cpu->r[25] - cpu->r[29];
|
|
/* 028B27A4 */ cpu->r[28] = cpu->r[8] - cpu->r[29];
|
|
/* 028B27A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B27AC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B27AC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B27AC */ if (_t8) goto L_028B27E8; else goto L_028B27B0;
|
|
L_028B27B0: ; // 0x28b27b0
|
|
/* 028B27B0 */ cpu->r[27] = 0x00000001u;
|
|
L_028B27B4: ; // 0x28b27b4
|
|
/* 028B27B4 */ _t9 = cpu->r[28] + 0x00000028u;
|
|
/* 028B27B4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B27B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B27BC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B27BC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B27BC */ if (_t11) goto L_028B27D0; else goto L_028B27C0;
|
|
L_028B27C0: ; // 0x28b27c0
|
|
/* 028B27C0 */ _t12 = cpu->r[3] + 0x00000050u;
|
|
/* 028B27C0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B27C4 */ _t13 = cpu->r[9] + 0x00000044u;
|
|
/* 028B27C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B27C8 */ cpu->ctr = cpu->r[10];
|
|
/* 028B27CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B27D0: ; // 0x28b27d0
|
|
/* 028B27D0 */ cpu->r[7] = cpu->r[28] + cpu->r[29];
|
|
/* 028B27D4 */ _t14 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B27D4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[27]);
|
|
/* 028B27D8 */ _t15 = cpu->r[7] + 0x00000004u;
|
|
/* 028B27D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B27DC */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028B27E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B27E4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B27E4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B27E4 */ if (_t17) goto L_028B27E8; else goto L_028B27B4;
|
|
L_028B27E8: ; // 0x28b27e8
|
|
/* 028B27E8 */ _t18 = cpu->r[26] + 0x0000001Cu;
|
|
/* 028B27E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B27EC */ cpu->r[4] = cpu->r[25];
|
|
/* 028B27F0 */ Gambit_fn_028AA06C(cpu);
|
|
/* 028B27F4 */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 028B27F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B27F8 */ _t20 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B27F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B27FC */ cpu->ctr = cpu->r[0];
|
|
/* 028B2800 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2804 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B2808 */ /* nop */
|
|
/* 028B280C */ _t21 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B280C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B2810 */ cpu->lr = cpu->r[0];
|
|
/* 028B2814 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B2818 */ return;
|
|
}
|
|
|
|
// fn_028B281C @ 0x28b281c
|
|
void Gambit_fn_028B281C(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_028B281C: ; // 0x28b281c
|
|
/* 028B281C */ cpu->r[0] = cpu->lr;
|
|
/* 028B2820 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B2820 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2820 */ cpu->r[1] = _t0;
|
|
/* 028B2824 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2824 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B2828 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2828 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B282C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B282C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B2830 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2834 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2834 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B2838 */ _t5 = cpu->r[30] + 0x00000020u;
|
|
/* 028B2838 */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B283C */ _t6 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B283C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B2840 */ _t7 = cpu->r[9] + 0x00000008u;
|
|
/* 028B2840 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B2844 */ _t8 = cpu->r[12] + 0x00000008u;
|
|
/* 028B2844 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B2848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B284C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B284C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B284C */ if (_t10) goto L_028B28A8; else goto L_028B2850;
|
|
L_028B2850: ; // 0x28b2850
|
|
/* 028B2850 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028B2854 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 028B2858 */ _t11 = cpu->r[29] + 0xFFFFC3D4u;
|
|
/* 028B2858 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B2858 */ cpu->r[29] = _t11;
|
|
/* 028B285C */ cpu->r[5] = 0x00000004u;
|
|
/* 028B2860 */ cpu->r[3] = cpu->r[8] + cpu->r[10];
|
|
/* 028B2864 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B2868 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B286C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B286C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B286C */ if (_t13) goto L_028B289C; else goto L_028B2870;
|
|
L_028B2870: ; // 0x28b2870
|
|
/* 028B2870 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B2874 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 028B2874 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B2878 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028B287C */ cpu->r[6] = cpu->r[6] + 0x00002AA0u;
|
|
/* 028B2880 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B2884 */ cpu->r[3] = cpu->r[3] + cpu->r[0];
|
|
/* 028B2888 */ cpu->r[7] = 0x00000000u;
|
|
/* 028B288C */ Gambit_fn_02C82DBC(cpu);
|
|
/* 028B2890 */ _t15 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028B2890 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
/* 028B2894 */ _t16 = cpu->r[30] + 0x00000040u;
|
|
/* 028B2894 */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
/* 028B2898 */ goto L_028B28A8;
|
|
L_028B289C: ; // 0x28b289c
|
|
/* 028B289C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B28A0 */ _t17 = cpu->r[30] + 0x00000040u;
|
|
/* 028B28A0 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
/* 028B28A4 */ _t18 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028B28A4 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
L_028B28A8: ; // 0x28b28a8
|
|
/* 028B28A8 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B28A8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B28AC */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B28AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B28B0 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B28B0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B28B4 */ cpu->lr = cpu->r[0];
|
|
/* 028B28B8 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B28B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B28BC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B28C0 */ return;
|
|
}
|
|
|
|
// fn_028B2820 @ 0x28b2820
|
|
void Gambit_fn_028B2820(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_028B2820: ; // 0x28b2820
|
|
/* 028B2820 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B2820 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2820 */ cpu->r[1] = _t0;
|
|
/* 028B2824 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2824 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B2828 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2828 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B282C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B282C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B2830 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2834 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2834 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B2838 */ _t5 = cpu->r[30] + 0x00000020u;
|
|
/* 028B2838 */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B283C */ _t6 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B283C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B2840 */ _t7 = cpu->r[9] + 0x00000008u;
|
|
/* 028B2840 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B2844 */ _t8 = cpu->r[12] + 0x00000008u;
|
|
/* 028B2844 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B2848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B284C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B284C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B284C */ if (_t10) goto L_028B28A8; else goto L_028B2850;
|
|
L_028B2850: ; // 0x28b2850
|
|
/* 028B2850 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028B2854 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 028B2858 */ _t11 = cpu->r[29] + 0xFFFFC3D4u;
|
|
/* 028B2858 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B2858 */ cpu->r[29] = _t11;
|
|
/* 028B285C */ cpu->r[5] = 0x00000004u;
|
|
/* 028B2860 */ cpu->r[3] = cpu->r[8] + cpu->r[10];
|
|
/* 028B2864 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B2868 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B286C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B286C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B286C */ if (_t13) goto L_028B289C; else goto L_028B2870;
|
|
L_028B2870: ; // 0x28b2870
|
|
/* 028B2870 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B2874 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 028B2874 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B2878 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028B287C */ cpu->r[6] = cpu->r[6] + 0x00002AA0u;
|
|
/* 028B2880 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B2884 */ cpu->r[3] = cpu->r[3] + cpu->r[0];
|
|
/* 028B2888 */ cpu->r[7] = 0x00000000u;
|
|
/* 028B288C */ Gambit_fn_02C82DBC(cpu);
|
|
/* 028B2890 */ _t15 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028B2890 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
/* 028B2894 */ _t16 = cpu->r[30] + 0x00000040u;
|
|
/* 028B2894 */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
/* 028B2898 */ goto L_028B28A8;
|
|
L_028B289C: ; // 0x28b289c
|
|
/* 028B289C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B28A0 */ _t17 = cpu->r[30] + 0x00000040u;
|
|
/* 028B28A0 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
/* 028B28A4 */ _t18 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028B28A4 */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
L_028B28A8: ; // 0x28b28a8
|
|
/* 028B28A8 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B28A8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B28AC */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B28AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B28B0 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B28B0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B28B4 */ cpu->lr = cpu->r[0];
|
|
/* 028B28B8 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B28B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B28BC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B28C0 */ return;
|
|
}
|
|
|
|
// fn_028B28C4 @ 0x28b28c4
|
|
void Gambit_fn_028B28C4(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;
|
|
|
|
L_028B28C4: ; // 0x28b28c4
|
|
/* 028B28C4 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028B28C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B28C4 */ cpu->r[1] = _t0;
|
|
/* 028B28C8 */ /* nop */
|
|
/* 028B28CC */ cpu->r[0] = cpu->lr;
|
|
/* 028B28D0 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B28D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B28D4 */ cpu->r[25] = cpu->r[3];
|
|
/* 028B28D8 */ _t2 = cpu->r[25] + 0x00000020u;
|
|
/* 028B28D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B28DC */ _t3 = cpu->r[25] + 0x00000028u;
|
|
/* 028B28DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B28E0 */ _t4 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B28E0 */ cpu->r[23] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B28E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B28E8 */ cpu->r[26] = 0x00000000u;
|
|
/* 028B28EC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B28EC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B28EC */ if (_t6) goto L_028B28F0; else goto L_028B28FC;
|
|
L_028B28F0: ; // 0x28b28f0
|
|
/* 028B28F0 */ cpu->r[7] = 0x101F0000u;
|
|
/* 028B28F4 */ cpu->r[7] = cpu->r[7] + 0x00005E30u;
|
|
/* 028B28F8 */ _t7 = cpu->r[25] + 0x00000028u;
|
|
/* 028B28F8 */ rbrew_write32(cpu->mem, _t7, cpu->r[7]);
|
|
L_028B28FC: ; // 0x28b28fc
|
|
/* 028B28FC */ _t8 = cpu->r[23] + 0x00000008u;
|
|
/* 028B28FC */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B2900 */ _t9 = cpu->r[10] + 0x00000004u;
|
|
/* 028B2900 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B2904 */ cpu->r[28] = 0x00000000u;
|
|
/* 028B2908 */ _t10 = cpu->r[25] + 0x0000003Cu;
|
|
/* 028B2908 */ cpu->r[27] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B290C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028B2910 */ cpu->r[24] = 0x101D0000u;
|
|
/* 028B2914 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B2914 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B2914 */ if (_t12) goto L_028B2918; else goto L_028B2A78;
|
|
L_028B2918: ; // 0x28b2918
|
|
/* 028B2918 */ cpu->r[31] = 0x00000000u;
|
|
L_028B291C: ; // 0x28b291c
|
|
/* 028B291C */ cpu->r[3] = cpu->r[23];
|
|
/* 028B2920 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B2924 */ Gambit_fn_028AD640(cpu);
|
|
/* 028B2928 */ cpu->r[21] = cpu->r[3];
|
|
/* 028B2928 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 028B292C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B292C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B292C */ if (_t14) goto L_028B2A78; else goto L_028B2930;
|
|
L_028B2930: ; // 0x28b2930
|
|
/* 028B2930 */ _t15 = cpu->r[21] + 0x00000004u;
|
|
/* 028B2930 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2934 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2938 */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B2938 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B2938 */ if (_t17) goto L_028B2A28; else goto L_028B293C;
|
|
L_028B293C: ; // 0x28b293c
|
|
/* 028B293C */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 028B2940 */ cpu->r[3] = cpu->r[25];
|
|
/* 028B2944 */ cpu->r[22] = cpu->r[27] + cpu->r[12];
|
|
/* 028B2948 */ Gambit_fn_028B253C(cpu);
|
|
/* 028B294C */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B294C */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B2950 */ _t19 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028B2950 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B2954 */ cpu->ctr = cpu->r[9];
|
|
/* 028B2958 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B295C */ cpu->r[4] = cpu->r[21];
|
|
/* 028B2960 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B2964 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2968 */ _t20 = cpu->r[30] + 0x00000000u;
|
|
/* 028B2968 */ cpu->r[10] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028B296C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B2970 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2970 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028B2970 */ if (_t22) goto L_028B29E8; else goto L_028B2974;
|
|
L_028B2974: ; // 0x28b2974
|
|
/* 028B2974 */ _t23 = cpu->r[25] + 0x00000024u;
|
|
/* 028B2974 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B2978 */ _t24 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2978 */ cpu->r[11] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B297C */ _t25 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028B297C */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B2980 */ cpu->ctr = cpu->r[0];
|
|
/* 028B2984 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B2988 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B298C */ _t26 = cpu->r[22] + 0x00000000u;
|
|
/* 028B298C */ rbrew_write32(cpu->mem, _t26, cpu->r[3]);
|
|
/* 028B2990 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2994 */ _t27 = cpu->r[22] + 0x00000004u;
|
|
/* 028B2994 */ rbrew_write32(cpu->mem, _t27, cpu->r[31]);
|
|
/* 028B2998 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2998 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028B2998 */ if (_t29) goto L_028B299C; else goto L_028B2A10;
|
|
L_028B299C: ; // 0x28b299c
|
|
/* 028B299C */ _t30 = cpu->r[24] + 0xFFFF9A5Cu;
|
|
/* 028B299C */ cpu->r[3] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B29A0 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B29A4 */ _t31 = cpu->r[21] + 0x00000000u;
|
|
/* 028B29A4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B29A8 */ cpu->r[4] = 0x0000000Bu;
|
|
/* 028B29AC */ _t32 = cpu->r[25] + 0x00000020u;
|
|
/* 028B29AC */ cpu->r[5] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B29B0 */ cpu->r[6] = cpu->r[6] + 0xFFFF861Cu;
|
|
/* 028B29B4 */ cpu->r[7] = cpu->r[30];
|
|
/* 028B29B8 */ _t33 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B29B8 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028B29B8 */ if (_t34) goto L_028B29BC; // else: addr-0 trap, fall-through
|
|
L_028B29BC: ; // 0x28b29bc
|
|
/* 028B29BC */ Gambit_fn_028AA73C(cpu);
|
|
/* 028B29C0 */ _t35 = cpu->r[25] + 0x00000030u;
|
|
/* 028B29C0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028B29C4 */ _t36 = cpu->r[22] + 0x00000004u;
|
|
/* 028B29C4 */ rbrew_write32(cpu->mem, _t36, cpu->r[5]);
|
|
/* 028B29C8 */ _t37 = cpu->r[25] + 0x00000028u;
|
|
/* 028B29C8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028B29CC */ cpu->r[3] = cpu->r[29];
|
|
/* 028B29D0 */ cpu->r[4] = cpu->r[21];
|
|
/* 028B29D4 */ _t38 = cpu->r[22] + 0x00000000u;
|
|
/* 028B29D4 */ rbrew_write32(cpu->mem, _t38, cpu->r[6]);
|
|
/* 028B29D8 */ Gambit_fn_028B0C38(cpu);
|
|
/* 028B29DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000001u);
|
|
/* 028B29E0 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B29E0 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028B29E0 */ if (_t40) goto L_028B29E4; else goto L_028B2A28;
|
|
L_028B29E4: ; // 0x28b29e4
|
|
/* 028B29E4 */ goto L_028B2A24;
|
|
L_028B29E8: ; // 0x28b29e8
|
|
/* 028B29E8 */ _t41 = cpu->r[25] + 0x00000030u;
|
|
/* 028B29E8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B29EC */ _t42 = cpu->r[22] + 0x00000004u;
|
|
/* 028B29EC */ rbrew_write32(cpu->mem, _t42, cpu->r[8]);
|
|
/* 028B29F0 */ _t43 = cpu->r[25] + 0x00000028u;
|
|
/* 028B29F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028B29F4 */ cpu->r[4] = cpu->r[21];
|
|
/* 028B29F8 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B29FC */ _t44 = cpu->r[22] + 0x00000000u;
|
|
/* 028B29FC */ rbrew_write32(cpu->mem, _t44, cpu->r[0]);
|
|
/* 028B2A00 */ Gambit_fn_028B0C04(cpu);
|
|
/* 028B2A04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2A08 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2A08 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028B2A08 */ if (_t46) goto L_028B2A10; else goto L_028B2A0C;
|
|
L_028B2A0C: ; // 0x28b2a0c
|
|
/* 028B2A0C */ cpu->r[26] = 0x00000001u;
|
|
L_028B2A10: ; // 0x28b2a10
|
|
/* 028B2A10 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B2A14 */ cpu->r[4] = cpu->r[21];
|
|
/* 028B2A18 */ Gambit_fn_028B0C38(cpu);
|
|
/* 028B2A1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000001u);
|
|
/* 028B2A20 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2A20 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028B2A20 */ if (_t48) goto L_028B2A24; else goto L_028B2A28;
|
|
L_028B2A24: ; // 0x28b2a24
|
|
/* 028B2A24 */ cpu->r[26] = 0x00000001u;
|
|
L_028B2A28: ; // 0x28b2a28
|
|
/* 028B2A28 */ _t49 = cpu->r[23] + 0x00000008u;
|
|
/* 028B2A28 */ cpu->r[11] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B2A2C */ _t50 = cpu->r[11] + 0x00000004u;
|
|
/* 028B2A2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028B2A30 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028B2A34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028B2A38 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B2A38 */ _t52 = _t51 & 0x00000001u;
|
|
/* 028B2A38 */ if (_t52) goto L_028B291C; else goto L_028B2A3C;
|
|
L_028B2A3C: ; // 0x28b2a3c
|
|
/* 028B2A3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028B2A40 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2A40 */ _t54 = _t53 & 0x00000001u;
|
|
/* 028B2A40 */ if (_t54) goto L_028B2A78; else goto L_028B2A44;
|
|
L_028B2A44: ; // 0x28b2a44
|
|
/* 028B2A44 */ _t55 = cpu->r[25] + 0x0000002Cu;
|
|
/* 028B2A44 */ cpu->r[6] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028B2A48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028B2A4C */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2A4C */ _t57 = _t56 & 0x00000001u;
|
|
/* 028B2A4C */ if (_t57) goto L_028B2A50; else goto L_028B2A78;
|
|
L_028B2A50: ; // 0x28b2a50
|
|
/* 028B2A50 */ _t58 = cpu->r[25] + 0x00000030u;
|
|
/* 028B2A50 */ cpu->r[7] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028B2A54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B2A58 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2A58 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028B2A58 */ if (_t60) goto L_028B2A5C; else goto L_028B2A78;
|
|
L_028B2A5C: ; // 0x28b2a5c
|
|
/* 028B2A5C */ _t61 = cpu->r[24] + 0xFFFF9A5Cu;
|
|
/* 028B2A5C */ cpu->r[3] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028B2A60 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B2A64 */ _t62 = cpu->r[25] + 0x00000020u;
|
|
/* 028B2A64 */ cpu->r[5] = rbrew_read32(cpu->mem, _t62);
|
|
/* 028B2A68 */ cpu->r[6] = cpu->r[6] + 0xFFFF8618u;
|
|
/* 028B2A6C */ cpu->r[4] = 0x0000000Fu;
|
|
/* 028B2A70 */ _t63 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B2A70 */ _t64 = _t63 & 0x00000001u;
|
|
/* 028B2A70 */ if (_t64) goto L_028B2A74; // else: addr-0 trap, fall-through
|
|
L_028B2A74: ; // 0x28b2a74
|
|
/* 028B2A74 */ Gambit_fn_028AA73C(cpu);
|
|
L_028B2A78: ; // 0x28b2a78
|
|
/* 028B2A78 */ /* nop */
|
|
/* 028B2A7C */ _t65 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B2A7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028B2A80 */ cpu->lr = cpu->r[0];
|
|
/* 028B2A84 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028B2A88 */ return;
|
|
}
|
|
|
|
// fn_028B2A8C @ 0x28b2a8c
|
|
void Gambit_fn_028B2A8C(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_028B2A8C: ; // 0x28b2a8c
|
|
/* 028B2A8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2A90 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2A90 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B2A90 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2A90 */ goto L_028B2A94;
|
|
L_028B2A94: ; // 0x28b2a94
|
|
/* 028B2A94 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2A94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2A98 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2A98 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B2A98 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2A98 */ goto L_028B2A9C;
|
|
L_028B2A9C: ; // 0x28b2a9c
|
|
/* 028B2A9C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B2AA4 @ 0x28b2aa4
|
|
void Gambit_fn_028B2AA4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028B2AA4: ; // 0x28b2aa4
|
|
/* 028B2AA4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B2AA4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2AA4 */ cpu->r[1] = _t0;
|
|
/* 028B2AA8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2AA8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B2AAC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2AAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2AB0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2AB0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B2AB4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2AB4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B2AB4 */ if (_t4) goto L_028B2AB8; else goto L_028B2AC8;
|
|
L_028B2AB8: ; // 0x28b2ab8
|
|
/* 028B2AB8 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B2ABC */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2AC0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2AC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2AC4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2AC4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B2AC4 */ if (_t6) goto L_028B2B04; else goto L_028B2AC8;
|
|
L_028B2AC8: ; // 0x28b2ac8
|
|
/* 028B2AC8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B2AC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2ACC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2ACC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B2ACC */ if (_t8) goto L_028B2AD0; else goto L_028B2AE0;
|
|
L_028B2AD0: ; // 0x28b2ad0
|
|
/* 028B2AD0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B2AD4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2AD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2ADC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2ADC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B2ADC */ if (_t10) goto L_028B2AF8; else goto L_028B2AE0;
|
|
L_028B2AE0: ; // 0x28b2ae0
|
|
/* 028B2AE0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B2AE4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B2AE8 */ cpu->r[12] = cpu->r[12] + 0xFFFF85E8u;
|
|
/* 028B2AEC */ _t11 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2AEC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028B2AF0 */ _t12 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2AF0 */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 028B2AF4 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2AF4 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
L_028B2AF8: ; // 0x28b2af8
|
|
/* 028B2AF8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B2AFC */ cpu->r[11] = cpu->r[11] + 0xFFFF85F8u;
|
|
/* 028B2B00 */ _t14 = cpu->r[31] + 0x00000008u;
|
|
/* 028B2B00 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
L_028B2B04: ; // 0x28b2b04
|
|
/* 028B2B04 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2B04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2B08 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B2B0C */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2B0C */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B2B10 */ cpu->lr = cpu->r[0];
|
|
/* 028B2B14 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B2B18 */ return;
|
|
}
|
|
|
|
// fn_028B2B1C @ 0x28b2b1c
|
|
void Gambit_fn_028B2B1C(CPUState* cpu) {
|
|
L_028B2B1C: ; // 0x28b2b1c
|
|
/* 028B2B1C */ return;
|
|
}
|
|
|
|
// fn_028B2B20 @ 0x28b2b20
|
|
void Gambit_fn_028B2B20(CPUState* cpu) {
|
|
L_028B2B20: ; // 0x28b2b20
|
|
/* 028B2B20 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B2B24 */ return;
|
|
}
|
|
|
|
// fn_028B2B28 @ 0x28b2b28
|
|
void Gambit_fn_028B2B28(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_028B2B28: ; // 0x28b2b28
|
|
/* 028B2B28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2B2C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2B2C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B2B2C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2B2C */ goto L_028B2B30;
|
|
L_028B2B30: ; // 0x28b2b30
|
|
/* 028B2B30 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2B30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2B34 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2B34 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B2B34 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2B34 */ goto L_028B2B38;
|
|
L_028B2B38: ; // 0x28b2b38
|
|
/* 028B2B38 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B2B3C @ 0x28b2b3c
|
|
void Gambit_fn_028B2B3C(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B2B3C: ; // 0x28b2b3c
|
|
/* 028B2B3C */ _t0 = cpu->r[3] + 0x00000066u;
|
|
/* 028B2B3C */ cpu->r[3] = rbrew_read8(cpu->mem, _t0);
|
|
/* 028B2B40 */ return;
|
|
}
|
|
|
|
// fn_028B2B44 @ 0x28b2b44
|
|
void Gambit_fn_028B2B44(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_028B2B44: ; // 0x28b2b44
|
|
/* 028B2B44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2B48 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2B48 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B2B48 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2B48 */ goto L_028B2B4C;
|
|
L_028B2B4C: ; // 0x28b2b4c
|
|
/* 028B2B4C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2B50 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2B50 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B2B50 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2B50 */ goto L_028B2B54;
|
|
L_028B2B54: ; // 0x28b2b54
|
|
/* 028B2B54 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B2B58 @ 0x28b2b58
|
|
void Gambit_fn_028B2B58(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_028B2B58: ; // 0x28b2b58
|
|
/* 028B2B58 */ cpu->r[0] = cpu->lr;
|
|
/* 028B2B5C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B2B5C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2B5C */ cpu->r[1] = _t0;
|
|
/* 028B2B60 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2B60 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B2B64 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2B64 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B2B68 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2B68 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B2B6C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B2B70 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B2B74 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2B74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2B78 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2B78 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B2B7C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2B7C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B2B80 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B2B84 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2B84 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B2B84 */ if (_t7) goto L_028B2B88; else goto L_028B2B98;
|
|
L_028B2B88: ; // 0x28b2b88
|
|
/* 028B2B88 */ cpu->r[3] = 0x00000064u;
|
|
/* 028B2B8C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2B90 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2B90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2B94 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2B94 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B2B94 */ if (_t9) goto L_028B2C1C; else goto L_028B2B98;
|
|
L_028B2B98: ; // 0x28b2b98
|
|
/* 028B2B98 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B2B9C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B2BA0 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B2BA4 */ Gambit_fn_028AD314(cpu);
|
|
/* 028B2BA8 */ cpu->r[7] = 0x10140000u;
|
|
/* 028B2BAC */ cpu->r[4] = cpu->r[30];
|
|
/* 028B2BB0 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B2BB4 */ cpu->r[7] = cpu->r[7] + 0xFFFF86FCu;
|
|
/* 028B2BB8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B2BBC */ _t10 = cpu->r[31] + 0x00000060u;
|
|
/* 028B2BBC */ rbrew_write32(cpu->mem, _t10, cpu->r[7]);
|
|
/* 028B2BC0 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B2BC4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2BC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B2BC8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2BC8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B2BC8 */ if (_t12) goto L_028B2C0C; else goto L_028B2BCC;
|
|
L_028B2BCC: ; // 0x28b2bcc
|
|
/* 028B2BCC */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2BCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2BD0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2BD0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B2BD0 */ if (_t14) goto L_028B2BD4; else goto L_028B2BE4;
|
|
L_028B2BD4: ; // 0x28b2bd4
|
|
/* 028B2BD4 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B2BD8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2BDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2BE0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2BE0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B2BE0 */ if (_t16) goto L_028B2C00; else goto L_028B2BE4;
|
|
L_028B2BE4: ; // 0x28b2be4
|
|
/* 028B2BE4 */ cpu->r[8] = 0x10140000u;
|
|
/* 028B2BE8 */ cpu->r[9] = 0x00000000u;
|
|
/* 028B2BEC */ cpu->r[8] = cpu->r[8] + 0xFFFF86A8u;
|
|
/* 028B2BF0 */ _t17 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2BF0 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028B2BF4 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B2BF4 */ rbrew_write32(cpu->mem, _t18, cpu->r[8]);
|
|
/* 028B2BF8 */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2BF8 */ rbrew_write32(cpu->mem, _t19, cpu->r[9]);
|
|
/* 028B2BFC */ _t20 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2BFC */ rbrew_write32(cpu->mem, _t20, cpu->r[9]);
|
|
L_028B2C00: ; // 0x28b2c00
|
|
/* 028B2C00 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B2C04 */ cpu->r[0] = cpu->r[0] + 0xFFFF83F0u;
|
|
/* 028B2C08 */ _t21 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B2C08 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
L_028B2C0C: ; // 0x28b2c0c
|
|
/* 028B2C0C */ _t22 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B2C0C */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028B2C10 */ _t23 = cpu->r[30] + 0x00000008u;
|
|
/* 028B2C10 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028B2C14 */ _t24 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B2C14 */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B2C18 */ _t25 = cpu->r[12] + 0x00000004u;
|
|
/* 028B2C18 */ rbrew_write32(cpu->mem, _t25, cpu->r[31]);
|
|
L_028B2C1C: ; // 0x28b2c1c
|
|
/* 028B2C1C */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2C1C */ cpu->r[28] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B2C20 */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2C20 */ cpu->r[29] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B2C24 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2C24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B2C28 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B2C2C */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2C2C */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B2C30 */ cpu->lr = cpu->r[0];
|
|
/* 028B2C34 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2C34 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B2C38 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B2C3C */ return;
|
|
}
|
|
|
|
// fn_028B2B5C @ 0x28b2b5c
|
|
void Gambit_fn_028B2B5C(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_028B2B5C: ; // 0x28b2b5c
|
|
/* 028B2B5C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B2B5C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2B5C */ cpu->r[1] = _t0;
|
|
/* 028B2B60 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2B60 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B2B64 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2B64 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B2B68 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2B68 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B2B6C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B2B70 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B2B74 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2B74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2B78 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2B78 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B2B7C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2B7C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B2B80 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B2B84 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2B84 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B2B84 */ if (_t7) goto L_028B2B88; else goto L_028B2B98;
|
|
L_028B2B88: ; // 0x28b2b88
|
|
/* 028B2B88 */ cpu->r[3] = 0x00000064u;
|
|
/* 028B2B8C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2B90 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2B90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2B94 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2B94 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B2B94 */ if (_t9) goto L_028B2C1C; else goto L_028B2B98;
|
|
L_028B2B98: ; // 0x28b2b98
|
|
/* 028B2B98 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B2B9C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B2BA0 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B2BA4 */ Gambit_fn_028AD314(cpu);
|
|
/* 028B2BA8 */ cpu->r[7] = 0x10140000u;
|
|
/* 028B2BAC */ cpu->r[4] = cpu->r[30];
|
|
/* 028B2BB0 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B2BB4 */ cpu->r[7] = cpu->r[7] + 0xFFFF86FCu;
|
|
/* 028B2BB8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B2BBC */ _t10 = cpu->r[31] + 0x00000060u;
|
|
/* 028B2BBC */ rbrew_write32(cpu->mem, _t10, cpu->r[7]);
|
|
/* 028B2BC0 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B2BC4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2BC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B2BC8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2BC8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B2BC8 */ if (_t12) goto L_028B2C0C; else goto L_028B2BCC;
|
|
L_028B2BCC: ; // 0x28b2bcc
|
|
/* 028B2BCC */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2BCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2BD0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2BD0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B2BD0 */ if (_t14) goto L_028B2BD4; else goto L_028B2BE4;
|
|
L_028B2BD4: ; // 0x28b2bd4
|
|
/* 028B2BD4 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B2BD8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B2BDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2BE0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2BE0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B2BE0 */ if (_t16) goto L_028B2C00; else goto L_028B2BE4;
|
|
L_028B2BE4: ; // 0x28b2be4
|
|
/* 028B2BE4 */ cpu->r[8] = 0x10140000u;
|
|
/* 028B2BE8 */ cpu->r[9] = 0x00000000u;
|
|
/* 028B2BEC */ cpu->r[8] = cpu->r[8] + 0xFFFF86A8u;
|
|
/* 028B2BF0 */ _t17 = cpu->r[3] + 0x00000008u;
|
|
/* 028B2BF0 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 028B2BF4 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B2BF4 */ rbrew_write32(cpu->mem, _t18, cpu->r[8]);
|
|
/* 028B2BF8 */ _t19 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2BF8 */ rbrew_write32(cpu->mem, _t19, cpu->r[9]);
|
|
/* 028B2BFC */ _t20 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2BFC */ rbrew_write32(cpu->mem, _t20, cpu->r[9]);
|
|
L_028B2C00: ; // 0x28b2c00
|
|
/* 028B2C00 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B2C04 */ cpu->r[0] = cpu->r[0] + 0xFFFF83F0u;
|
|
/* 028B2C08 */ _t21 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B2C08 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
L_028B2C0C: ; // 0x28b2c0c
|
|
/* 028B2C0C */ _t22 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B2C0C */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028B2C10 */ _t23 = cpu->r[30] + 0x00000008u;
|
|
/* 028B2C10 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028B2C14 */ _t24 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B2C14 */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B2C18 */ _t25 = cpu->r[12] + 0x00000004u;
|
|
/* 028B2C18 */ rbrew_write32(cpu->mem, _t25, cpu->r[31]);
|
|
L_028B2C1C: ; // 0x28b2c1c
|
|
/* 028B2C1C */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2C1C */ cpu->r[28] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B2C20 */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2C20 */ cpu->r[29] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B2C24 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B2C24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B2C28 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B2C2C */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2C2C */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B2C30 */ cpu->lr = cpu->r[0];
|
|
/* 028B2C34 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2C34 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B2C38 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B2C3C */ return;
|
|
}
|
|
|
|
// fn_028B2C40 @ 0x28b2c40
|
|
void Gambit_fn_028B2C40(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028B2C40: ; // 0x28b2c40
|
|
/* 028B2C40 */ cpu->r[0] = cpu->lr;
|
|
/* 028B2C44 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B2C44 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2C44 */ cpu->r[1] = _t0;
|
|
/* 028B2C48 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2C48 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B2C4C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2C4C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B2C50 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2C50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B2C54 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B2C58 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2C58 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B2C5C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2C5C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B2C5C */ if (_t5) goto L_028B2C94; else goto L_028B2C60;
|
|
L_028B2C60: ; // 0x28b2c60
|
|
/* 028B2C60 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B2C60 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B2C64 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B2C68 */ cpu->r[11] = cpu->r[11] + 0xFFFF86FCu;
|
|
/* 028B2C6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2C70 */ _t7 = cpu->r[30] + 0x00000060u;
|
|
/* 028B2C70 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028B2C74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2C74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B2C74 */ if (_t9) goto L_028B2C84; else goto L_028B2C78;
|
|
L_028B2C78: ; // 0x28b2c78
|
|
/* 028B2C78 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028B2C7C */ cpu->r[12] = 0x00000000u;
|
|
/* 028B2C80 */ _t10 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B2C80 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
L_028B2C84: ; // 0x28b2c84
|
|
/* 028B2C84 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2C84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2C88 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2C88 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B2C88 */ if (_t12) goto L_028B2C94; else goto L_028B2C8C;
|
|
L_028B2C8C: ; // 0x28b2c8c
|
|
/* 028B2C8C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2C90 */ Gambit_fn_02801BB0(cpu);
|
|
L_028B2C94: ; // 0x28b2c94
|
|
/* 028B2C94 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2C94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B2C98 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2C98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B2C9C */ cpu->lr = cpu->r[0];
|
|
/* 028B2CA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2CA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2CA4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B2CA8 */ return;
|
|
}
|
|
|
|
// fn_028B2C44 @ 0x28b2c44
|
|
void Gambit_fn_028B2C44(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028B2C44: ; // 0x28b2c44
|
|
/* 028B2C44 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B2C44 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2C44 */ cpu->r[1] = _t0;
|
|
/* 028B2C48 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2C48 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B2C4C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2C4C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B2C50 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B2C50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B2C54 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B2C58 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2C58 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B2C5C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2C5C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B2C5C */ if (_t5) goto L_028B2C94; else goto L_028B2C60;
|
|
L_028B2C60: ; // 0x28b2c60
|
|
/* 028B2C60 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B2C60 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B2C64 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B2C68 */ cpu->r[11] = cpu->r[11] + 0xFFFF86FCu;
|
|
/* 028B2C6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2C70 */ _t7 = cpu->r[30] + 0x00000060u;
|
|
/* 028B2C70 */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028B2C74 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2C74 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B2C74 */ if (_t9) goto L_028B2C84; else goto L_028B2C78;
|
|
L_028B2C78: ; // 0x28b2c78
|
|
/* 028B2C78 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028B2C7C */ cpu->r[12] = 0x00000000u;
|
|
/* 028B2C80 */ _t10 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B2C80 */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
L_028B2C84: ; // 0x28b2c84
|
|
/* 028B2C84 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2C84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2C88 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2C88 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B2C88 */ if (_t12) goto L_028B2C94; else goto L_028B2C8C;
|
|
L_028B2C8C: ; // 0x28b2c8c
|
|
/* 028B2C8C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2C90 */ Gambit_fn_02801BB0(cpu);
|
|
L_028B2C94: ; // 0x28b2c94
|
|
/* 028B2C94 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2C94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B2C98 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2C98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B2C9C */ cpu->lr = cpu->r[0];
|
|
/* 028B2CA0 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2CA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2CA4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B2CA8 */ return;
|
|
}
|
|
|
|
// fn_028B2CAC @ 0x28b2cac
|
|
void Gambit_fn_028B2CAC(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B2CAC: ; // 0x28b2cac
|
|
/* 028B2CAC */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B2CAC */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B2CB0 */ return;
|
|
}
|
|
|
|
// fn_028B2CB4 @ 0x28b2cb4
|
|
void Gambit_fn_028B2CB4(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;
|
|
|
|
L_028B2CB4: ; // 0x28b2cb4
|
|
/* 028B2CB4 */ _t0 = cpu->r[1] + 0xFFFFFFA8u;
|
|
/* 028B2CB4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2CB4 */ cpu->r[1] = _t0;
|
|
/* 028B2CB8 */ /* nop */
|
|
/* 028B2CBC */ cpu->r[0] = cpu->lr;
|
|
/* 028B2CC0 */ _t1 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B2CC0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B2CC4 */ cpu->r[21] = cpu->r[3];
|
|
/* 028B2CC8 */ _t2 = cpu->r[21] + 0x00000008u;
|
|
/* 028B2CC8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B2CCC */ _t3 = cpu->r[21] + 0x00000004u;
|
|
/* 028B2CCC */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B2CD0 */ _t4 = cpu->r[11] + 0x00000004u;
|
|
/* 028B2CD0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B2CD4 */ cpu->r[24] = 0x00000000u;
|
|
/* 028B2CD8 */ _t5 = cpu->r[12] + 0x00000060u;
|
|
/* 028B2CD8 */ cpu->r[22] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B2CDC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[9]);
|
|
/* 028B2CE0 */ _t6 = cpu->r[22] + 0x0000001Cu;
|
|
/* 028B2CE0 */ cpu->r[23] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B2CE4 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B2CE4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B2CE4 */ if (_t8) goto L_028B2CE8; else goto L_028B2F34;
|
|
L_028B2CE8: ; // 0x28b2ce8
|
|
/* 028B2CE8 */ cpu->r[28] = 0x00010000u;
|
|
/* 028B2CEC */ cpu->r[27] = 0x00000000u;
|
|
/* 028B2CF0 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028B2CF4 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 028B2CF8 */ cpu->r[20] = 0x10140000u;
|
|
L_028B2CFC: ; // 0x28b2cfc
|
|
/* 028B2CFC */ _t9 = cpu->r[21] + 0x00000018u;
|
|
/* 028B2CFC */ cpu->r[5] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B2D00 */ cpu->r[17] = cpu->r[5] + cpu->r[27];
|
|
/* 028B2D04 */ _t10 = cpu->r[17] + 0x00000014u;
|
|
/* 028B2D04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B2D08 */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2D08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B2D0C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2D0C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B2D0C */ if (_t12) goto L_028B2D10; else goto L_028B2F24;
|
|
L_028B2D10: ; // 0x28b2d10
|
|
/* 028B2D10 */ _t13 = cpu->r[21] + 0x0000000Cu;
|
|
/* 028B2D10 */ cpu->r[18] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B2D14 */ cpu->r[5] = 0x00000002u;
|
|
/* 028B2D18 */ cpu->r[4] = cpu->r[17];
|
|
/* 028B2D1C */ cpu->r[3] = cpu->r[18];
|
|
/* 028B2D20 */ Gambit_fn_028A8888(cpu);
|
|
/* 028B2D24 */ cpu->r[19] = cpu->r[3];
|
|
/* 028B2D28 */ _t14 = cpu->r[19] + 0x00000004u;
|
|
/* 028B2D28 */ rbrew_write32(cpu->mem, _t14, cpu->r[28]);
|
|
/* 028B2D2C */ _t15 = cpu->r[21] + 0x00000018u;
|
|
/* 028B2D2C */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B2D30 */ cpu->r[3] = cpu->r[18];
|
|
/* 028B2D34 */ cpu->r[4] = cpu->r[5] + cpu->r[27];
|
|
/* 028B2D38 */ Gambit_fn_028B0A2C(cpu);
|
|
/* 028B2D3C */ cpu->r[25] = cpu->r[3];
|
|
/* 028B2D3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 028B2D40 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2D40 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B2D40 */ if (_t17) goto L_028B2EB8; else goto L_028B2D44;
|
|
L_028B2D44: ; // 0x28b2d44
|
|
/* 028B2D44 */ cpu->r[16] = cpu->r[23];
|
|
/* 028B2D44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[16], 0x00000000u);
|
|
/* 028B2D48 */ cpu->r[31] = 0x00000000u;
|
|
/* 028B2D4C */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B2D4C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B2D4C */ if (_t19) goto L_028B2D50; else goto L_028B2E58;
|
|
L_028B2D50: ; // 0x28b2d50
|
|
/* 028B2D50 */ cpu->r[26] = cpu->r[1] + 0x00000008u;
|
|
L_028B2D54: ; // 0x28b2d54
|
|
/* 028B2D54 */ _t20 = cpu->r[22] + 0x00000058u;
|
|
/* 028B2D54 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B2D58 */ cpu->r[7] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028B2D5C */ _t21 = cpu->r[7] + cpu->r[9];
|
|
/* 028B2D5C */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B2D60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B2D64 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2D64 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B2D64 */ if (_t23) goto L_028B2D74; else goto L_028B2D68;
|
|
L_028B2D68: ; // 0x28b2d68
|
|
/* 028B2D68 */ _t24 = cpu->r[30] + 0x00000000u;
|
|
/* 028B2D68 */ cpu->r[0] = rbrew_read8(cpu->mem, _t24);
|
|
/* 028B2D6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2D70 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2D70 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028B2D70 */ if (_t26) goto L_028B2D74; else goto L_028B2D78;
|
|
L_028B2D74: ; // 0x28b2d74
|
|
/* 028B2D74 */ cpu->r[30] = 0x00000000u;
|
|
L_028B2D78: ; // 0x28b2d78
|
|
/* 028B2D78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B2D7C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2D7C */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B2D7C */ if (_t28) goto L_028B2E4C; else goto L_028B2D80;
|
|
L_028B2D80: ; // 0x28b2d80
|
|
/* 028B2D80 */ cpu->r[4] = 0x10140000u;
|
|
/* 028B2D84 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2D84 */ rbrew_write32(cpu->mem, _t29, cpu->r[25]);
|
|
/* 028B2D88 */ cpu->r[4] = cpu->r[4] + 0xFFFF8690u;
|
|
/* 028B2D8C */ cpu->r[3] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2D90 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 028B2D90 */ rbrew_write32(cpu->mem, _t30, cpu->r[4]);
|
|
/* 028B2D94 */ Gambit_fn_028B2F90(cpu);
|
|
/* 028B2D98 */ cpu->r[3] = cpu->r[22];
|
|
/* 028B2D9C */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2D9C */ cpu->r[4] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B2DA0 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B2DA4 */ Gambit_fn_02A476A4(cpu);
|
|
/* 028B2DA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2DAC */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B2DAC */ _t33 = _t32 & 0x00000001u;
|
|
/* 028B2DAC */ if (_t33) goto L_028B2E4C; else goto L_028B2DB0;
|
|
L_028B2DB0: ; // 0x28b2db0
|
|
/* 028B2DB0 */ _t34 = cpu->r[1] + 0x00000008u;
|
|
/* 028B2DB0 */ rbrew_write16(cpu->mem, _t34, (uint16_t)cpu->r[31]);
|
|
/* 028B2DB4 */ cpu->r[4] = rbrew_rlwinm(cpu->r[3], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 028B2DB8 */ _t35 = cpu->r[1] + 0x0000000Au;
|
|
/* 028B2DB8 */ rbrew_write16(cpu->mem, _t35, (uint16_t)cpu->r[4]);
|
|
/* 028B2DBC */ _t36 = cpu->r[26] + 0x00000000u;
|
|
/* 028B2DBC */ cpu->r[8] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028B2DC0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B2DC4 */ _t37 = cpu->r[19] + 0x00000004u;
|
|
/* 028B2DC4 */ rbrew_write32(cpu->mem, _t37, cpu->r[8]);
|
|
/* 028B2DC8 */ Gambit_fn_02A414D0(cpu);
|
|
/* 028B2DCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2DD0 */ _t38 = cpu->r[17] + 0x00000014u;
|
|
/* 028B2DD0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B2DD4 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2DD4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028B2DD4 */ if (_t40) goto L_028B2DEC; else goto L_028B2DD8;
|
|
L_028B2DD8: ; // 0x28b2dd8
|
|
/* 028B2DD8 */ cpu->r[10] = cpu->r[10] | 0x00000008u;
|
|
/* 028B2DDC */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2DDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2DE0 */ _t41 = cpu->r[17] + 0x00000014u;
|
|
/* 028B2DE0 */ rbrew_write32(cpu->mem, _t41, cpu->r[10]);
|
|
/* 028B2DE4 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2DE4 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028B2DE4 */ if (_t43) goto L_028B2DE8; else goto L_028B2E58;
|
|
L_028B2DE8: ; // 0x28b2de8
|
|
/* 028B2DE8 */ goto L_028B2DFC;
|
|
L_028B2DEC: ; // 0x28b2dec
|
|
/* 028B2DEC */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 028B2DF0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2DF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2DF4 */ _t44 = cpu->r[17] + 0x00000014u;
|
|
/* 028B2DF4 */ rbrew_write32(cpu->mem, _t44, cpu->r[10]);
|
|
/* 028B2DF8 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2DF8 */ _t46 = _t45 & 0x00000001u;
|
|
/* 028B2DF8 */ if (_t46) goto L_028B2DFC; else goto L_028B2E58;
|
|
L_028B2DFC: ; // 0x28b2dfc
|
|
/* 028B2DFC */ cpu->r[5] = 0x00000007u;
|
|
/* 028B2E00 */ cpu->r[4] = cpu->r[17];
|
|
/* 028B2E04 */ cpu->r[3] = cpu->r[18];
|
|
/* 028B2E08 */ Gambit_fn_028A8888(cpu);
|
|
/* 028B2E0C */ _t47 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2E0C */ cpu->r[12] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028B2E10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000002u);
|
|
/* 028B2E14 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2E14 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028B2E14 */ if (_t49) goto L_028B2E20; else goto L_028B2E18;
|
|
L_028B2E18: ; // 0x28b2e18
|
|
/* 028B2E18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000003u);
|
|
/* 028B2E1C */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2E1C */ _t51 = _t50 & 0x00000001u;
|
|
/* 028B2E1C */ if (_t51) goto L_028B2E20; else goto L_028B2E58;
|
|
L_028B2E20: ; // 0x28b2e20
|
|
/* 028B2E20 */ _t52 = cpu->r[21] + 0x00000004u;
|
|
/* 028B2E20 */ cpu->r[3] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028B2E24 */ cpu->r[6] = cpu->r[20] + 0xFFFF86E8u;
|
|
/* 028B2E28 */ _t53 = cpu->r[21] + 0x00000000u;
|
|
/* 028B2E28 */ cpu->r[5] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028B2E2C */ cpu->r[7] = cpu->r[25];
|
|
/* 028B2E30 */ cpu->r[4] = 0x00000007u;
|
|
/* 028B2E34 */ _t54 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B2E34 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028B2E34 */ if (_t55) goto L_028B2E38; // else: addr-0 trap, fall-through
|
|
L_028B2E38: ; // 0x28b2e38
|
|
/* 028B2E38 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028B2E3C */ _t56 = cpu->r[19] + 0x00000004u;
|
|
/* 028B2E3C */ cpu->r[6] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028B2E40 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], 0x0000FFFFu);
|
|
/* 028B2E44 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2E44 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028B2E44 */ if (_t58) goto L_028B2E48; else goto L_028B2EB8;
|
|
L_028B2E48: ; // 0x28b2e48
|
|
/* 028B2E48 */ goto L_028B2E64;
|
|
L_028B2E4C: ; // 0x28b2e4c
|
|
/* 028B2E4C */ cpu->r[16] = cpu->r[16] + 0xFFFFFFFFu;
|
|
/* 028B2E4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[16], 0x00000000u);
|
|
/* 028B2E50 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B2E54 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2E54 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028B2E54 */ if (_t60) goto L_028B2E58; else goto L_028B2D54;
|
|
L_028B2E58: ; // 0x28b2e58
|
|
/* 028B2E58 */ _t61 = cpu->r[19] + 0x00000004u;
|
|
/* 028B2E58 */ cpu->r[6] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028B2E5C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], 0x0000FFFFu);
|
|
/* 028B2E60 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2E60 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028B2E60 */ if (_t63) goto L_028B2E64; else goto L_028B2EB8;
|
|
L_028B2E64: ; // 0x28b2e64
|
|
/* 028B2E64 */ _t64 = cpu->r[25] + 0x00000000u;
|
|
/* 028B2E64 */ cpu->r[8] = rbrew_read8(cpu->mem, _t64);
|
|
/* 028B2E68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B2E6C */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2E6C */ _t66 = _t65 & 0x00000001u;
|
|
/* 028B2E6C */ if (_t66) goto L_028B2EB8; else goto L_028B2E70;
|
|
L_028B2E70: ; // 0x28b2e70
|
|
/* 028B2E70 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B2E74 */ cpu->r[11] = cpu->r[25] + 0xFFFFFFFFu;
|
|
/* 028B2E78 */ cpu->r[12] = cpu->r[12] + 0xFFFF86EFu;
|
|
L_028B2E7C: ; // 0x28b2e7c
|
|
/* 028B2E7C */ _t67 = cpu->r[11] + 0x00000001u;
|
|
/* 028B2E7C */ cpu->r[0] = rbrew_read8(cpu->mem, _t67);
|
|
/* 028B2E7C */ cpu->r[11] = _t67;
|
|
/* 028B2E80 */ _t68 = cpu->r[12] + 0x00000001u;
|
|
/* 028B2E80 */ cpu->r[4] = rbrew_read8(cpu->mem, _t68);
|
|
/* 028B2E80 */ cpu->r[12] = _t68;
|
|
/* 028B2E84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[4]);
|
|
/* 028B2E88 */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2E88 */ _t70 = _t69 & 0x00000001u;
|
|
/* 028B2E88 */ if (_t70) goto L_028B2E8C; else goto L_028B2E94;
|
|
L_028B2E8C: ; // 0x28b2e8c
|
|
/* 028B2E8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000000u);
|
|
/* 028B2E90 */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2E90 */ _t72 = _t71 & 0x00000001u;
|
|
/* 028B2E90 */ if (_t72) goto L_028B2E94; else goto L_028B2E7C;
|
|
L_028B2E94: ; // 0x28b2e94
|
|
/* 028B2E94 */ cpu->r[6] = cpu->r[0] - cpu->r[4];
|
|
/* 028B2E94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028B2E98 */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2E98 */ _t74 = _t73 & 0x00000001u;
|
|
/* 028B2E98 */ if (_t74) goto L_028B2EB8; else goto L_028B2E9C;
|
|
L_028B2E9C: ; // 0x28b2e9c
|
|
/* 028B2E9C */ _t75 = cpu->r[21] + 0x00000004u;
|
|
/* 028B2E9C */ cpu->r[3] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028B2EA0 */ cpu->r[6] = cpu->r[20] + 0xFFFF86E8u;
|
|
/* 028B2EA4 */ _t76 = cpu->r[21] + 0x00000000u;
|
|
/* 028B2EA4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028B2EA8 */ cpu->r[7] = cpu->r[25];
|
|
/* 028B2EAC */ cpu->r[4] = 0x00000009u;
|
|
/* 028B2EB0 */ _t77 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B2EB0 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028B2EB0 */ if (_t78) goto L_028B2EB4; // else: addr-0 trap, fall-through
|
|
L_028B2EB4: ; // 0x28b2eb4
|
|
/* 028B2EB4 */ Gambit_fn_028AA73C(cpu);
|
|
L_028B2EB8: ; // 0x28b2eb8
|
|
/* 028B2EB8 */ _t79 = cpu->r[29] + 0xFFFF9A5Cu;
|
|
/* 028B2EB8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028B2EBC */ _t80 = cpu->r[8] + 0x0000006Cu;
|
|
/* 028B2EBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028B2EC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2EC4 */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2EC4 */ _t82 = _t81 & 0x00000001u;
|
|
/* 028B2EC4 */ if (_t82) goto L_028B2F1C; else goto L_028B2EC8;
|
|
L_028B2EC8: ; // 0x28b2ec8
|
|
/* 028B2EC8 */ _t83 = cpu->r[21] + 0x00000018u;
|
|
/* 028B2EC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028B2ECC */ cpu->r[5] = 0x00000003u;
|
|
/* 028B2ED0 */ cpu->r[3] = cpu->r[18];
|
|
/* 028B2ED4 */ cpu->r[4] = cpu->r[10] + cpu->r[27];
|
|
/* 028B2ED8 */ Gambit_fn_028A8888(cpu);
|
|
/* 028B2EDC */ _t84 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2EDC */ cpu->r[5] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028B2EE0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B2EE4 */ _t85 = cpu->r[21] + 0x00000044u;
|
|
/* 028B2EE4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t85);
|
|
/* 028B2EE8 */ cpu->r[4] = cpu->r[12] + cpu->r[5];
|
|
/* 028B2EEC */ Gambit_fn_028A6A68(cpu);
|
|
/* 028B2EF0 */ _t86 = cpu->r[21] + 0x00000018u;
|
|
/* 028B2EF0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028B2EF4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2EF8 */ cpu->r[3] = cpu->r[18];
|
|
/* 028B2EFC */ cpu->r[5] = 0x00000004u;
|
|
/* 028B2F00 */ cpu->r[4] = cpu->r[6] + cpu->r[27];
|
|
/* 028B2F04 */ Gambit_fn_028A8888(cpu);
|
|
/* 028B2F08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0xFFFFFFFFu);
|
|
/* 028B2F0C */ cpu->r[9] = 0x000000FFu;
|
|
/* 028B2F10 */ _t87 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2F10 */ _t88 = _t87 & 0x00000001u;
|
|
/* 028B2F10 */ if (_t88) goto L_028B2F18; else goto L_028B2F14;
|
|
L_028B2F14: ; // 0x28b2f14
|
|
/* 028B2F14 */ cpu->r[9] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
L_028B2F18: ; // 0x28b2f18
|
|
/* 028B2F18 */ _t89 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2F18 */ rbrew_write32(cpu->mem, _t89, cpu->r[9]);
|
|
L_028B2F1C: ; // 0x28b2f1c
|
|
/* 028B2F1C */ _t90 = cpu->r[21] + 0x00000008u;
|
|
/* 028B2F1C */ cpu->r[11] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028B2F20 */ _t91 = cpu->r[11] + 0x00000004u;
|
|
/* 028B2F20 */ cpu->r[9] = rbrew_read32(cpu->mem, _t91);
|
|
L_028B2F24: ; // 0x28b2f24
|
|
/* 028B2F24 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028B2F28 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[9]);
|
|
/* 028B2F2C */ cpu->r[27] = cpu->r[27] + 0x00000020u;
|
|
/* 028B2F30 */ _t92 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B2F30 */ _t93 = _t92 & 0x00000001u;
|
|
/* 028B2F30 */ if (_t93) goto L_028B2CFC; else goto L_028B2F34;
|
|
L_028B2F34: ; // 0x28b2f34
|
|
/* 028B2F34 */ /* nop */
|
|
/* 028B2F38 */ _t94 = cpu->r[1] + 0x0000005Cu;
|
|
/* 028B2F38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028B2F3C */ cpu->lr = cpu->r[0];
|
|
/* 028B2F40 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 028B2F44 */ return;
|
|
}
|
|
|
|
// fn_028B2F48 @ 0x28b2f48
|
|
void Gambit_fn_028B2F48(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B2F48: ; // 0x28b2f48
|
|
/* 028B2F48 */ cpu->r[0] = cpu->lr;
|
|
/* 028B2F4C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B2F4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2F4C */ cpu->r[1] = _t0;
|
|
/* 028B2F50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2F50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B2F54 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2F58 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2F58 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B2F5C */ Gambit_fn_028B2CB4(cpu);
|
|
/* 028B2F60 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B2F64 */ Gambit_fn_028AE510(cpu);
|
|
/* 028B2F68 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2F68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B2F6C */ cpu->lr = cpu->r[0];
|
|
/* 028B2F70 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2F70 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B2F74 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B2F78 */ return;
|
|
}
|
|
|
|
// fn_028B2F4C @ 0x28b2f4c
|
|
void Gambit_fn_028B2F4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B2F4C: ; // 0x28b2f4c
|
|
/* 028B2F4C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B2F4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2F4C */ cpu->r[1] = _t0;
|
|
/* 028B2F50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2F50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B2F54 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B2F58 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2F58 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B2F5C */ Gambit_fn_028B2CB4(cpu);
|
|
/* 028B2F60 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B2F64 */ Gambit_fn_028AE510(cpu);
|
|
/* 028B2F68 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2F68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B2F6C */ cpu->lr = cpu->r[0];
|
|
/* 028B2F70 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2F70 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B2F74 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B2F78 */ return;
|
|
}
|
|
|
|
// fn_028B2F7C @ 0x28b2f7c
|
|
void Gambit_fn_028B2F7C(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_028B2F7C: ; // 0x28b2f7c
|
|
/* 028B2F7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B2F80 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2F80 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B2F80 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2F80 */ goto L_028B2F84;
|
|
L_028B2F84: ; // 0x28b2f84
|
|
/* 028B2F84 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B2F84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B2F88 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2F88 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B2F88 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B2F88 */ goto L_028B2F8C;
|
|
L_028B2F8C: ; // 0x28b2f8c
|
|
/* 028B2F8C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B2F90 @ 0x28b2f90
|
|
void Gambit_fn_028B2F90(CPUState* cpu) {
|
|
L_028B2F90: ; // 0x28b2f90
|
|
/* 028B2F90 */ return;
|
|
}
|
|
|
|
// fn_028B2F94 @ 0x28b2f94
|
|
void Gambit_fn_028B2F94(CPUState* cpu) {
|
|
L_028B2F94: ; // 0x28b2f94
|
|
/* 028B2F94 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B2F98 */ return;
|
|
}
|
|
|
|
// fn_028B2F9C @ 0x28b2f9c
|
|
void Gambit_fn_028B2F9C(CPUState* cpu) {
|
|
L_028B2F9C: ; // 0x28b2f9c
|
|
/* 028B2F9C */ cpu->r[3] = 0x10140000u;
|
|
/* 028B2FA0 */ cpu->r[3] = cpu->r[3] + 0xFFFF868Du;
|
|
/* 028B2FA4 */ return;
|
|
}
|
|
|
|
// fn_028B2FA8 @ 0x28b2fa8
|
|
void Gambit_fn_028B2FA8(CPUState* cpu) {
|
|
L_028B2FA8: ; // 0x28b2fa8
|
|
/* 028B2FA8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B2FAC */ return;
|
|
}
|
|
|
|
// fn_028B2FB0 @ 0x28b2fb0
|
|
void Gambit_fn_028B2FB0(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B2FB0: ; // 0x28b2fb0
|
|
/* 028B2FB0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B2FB4 */ _t0 = cpu->r[12] + 0xFFFF86F8u;
|
|
/* 028B2FB4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028B2FB8 */ return;
|
|
}
|
|
|
|
// fn_028B2FBC @ 0x28b2fbc
|
|
void Gambit_fn_028B2FBC(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B2FBC: ; // 0x28b2fbc
|
|
/* 028B2FBC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B2FC0 */ _t0 = cpu->r[12] + 0xFFFF86F8u;
|
|
/* 028B2FC0 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028B2FC4 */ return;
|
|
}
|
|
|
|
// fn_028B2FC8 @ 0x28b2fc8
|
|
void Gambit_fn_028B2FC8(CPUState* cpu) {
|
|
L_028B2FC8: ; // 0x28b2fc8
|
|
/* 028B2FC8 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028B2FCC */ return;
|
|
}
|
|
|
|
// fn_028B2FD0 @ 0x28b2fd0
|
|
void Gambit_fn_028B2FD0(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B2FD0: ; // 0x28b2fd0
|
|
/* 028B2FD0 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B2FD0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B2FD4 */ return;
|
|
}
|
|
|
|
// fn_028B2FD8 @ 0x28b2fd8
|
|
void Gambit_fn_028B2FD8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B2FD8: ; // 0x28b2fd8
|
|
/* 028B2FD8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B2FDC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B2FDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2FDC */ cpu->r[1] = _t0;
|
|
/* 028B2FE0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2FE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B2FE4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2FE4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B2FE8 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2FE8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B2FEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2FF0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2FF0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B2FF0 */ if (_t5) goto L_028B3028; else goto L_028B2FF4;
|
|
L_028B2FF4: ; // 0x28b2ff4
|
|
/* 028B2FF4 */ _t6 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B2FF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B2FF8 */ _t7 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2FF8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B2FFC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 028B3000 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3000 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B3000 */ if (_t9) goto L_028B3004; else goto L_028B3028;
|
|
L_028B3004: ; // 0x28b3004
|
|
/* 028B3004 */ _t10 = cpu->r[31] + 0x00000028u;
|
|
/* 028B3004 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B3008 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B300C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B300C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B300C */ if (_t12) goto L_028B3020; else goto L_028B3010;
|
|
L_028B3010: ; // 0x28b3010
|
|
/* 028B3010 */ _t13 = cpu->r[3] + 0x00000050u;
|
|
/* 028B3010 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3014 */ _t14 = cpu->r[10] + 0x00000024u;
|
|
/* 028B3014 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3018 */ cpu->ctr = cpu->r[11];
|
|
/* 028B301C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B3020: ; // 0x28b3020
|
|
/* 028B3020 */ cpu->r[12] = 0x00000001u;
|
|
/* 028B3024 */ _t15 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028B3024 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[12]);
|
|
L_028B3028: ; // 0x28b3028
|
|
/* 028B3028 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3028 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B302C */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B302C */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3030 */ cpu->lr = cpu->r[0];
|
|
/* 028B3034 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3038 */ return;
|
|
}
|
|
|
|
// fn_028B2FDC @ 0x28b2fdc
|
|
void Gambit_fn_028B2FDC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B2FDC: ; // 0x28b2fdc
|
|
/* 028B2FDC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B2FDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B2FDC */ cpu->r[1] = _t0;
|
|
/* 028B2FE0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B2FE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B2FE4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B2FE4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B2FE8 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B2FE8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B2FEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B2FF0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B2FF0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B2FF0 */ if (_t5) goto L_028B3028; else goto L_028B2FF4;
|
|
L_028B2FF4: ; // 0x28b2ff4
|
|
/* 028B2FF4 */ _t6 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B2FF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B2FF8 */ _t7 = cpu->r[3] + 0x00000004u;
|
|
/* 028B2FF8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B2FFC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 028B3000 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3000 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B3000 */ if (_t9) goto L_028B3004; else goto L_028B3028;
|
|
L_028B3004: ; // 0x28b3004
|
|
/* 028B3004 */ _t10 = cpu->r[31] + 0x00000028u;
|
|
/* 028B3004 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B3008 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B300C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B300C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B300C */ if (_t12) goto L_028B3020; else goto L_028B3010;
|
|
L_028B3010: ; // 0x28b3010
|
|
/* 028B3010 */ _t13 = cpu->r[3] + 0x00000050u;
|
|
/* 028B3010 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3014 */ _t14 = cpu->r[10] + 0x00000024u;
|
|
/* 028B3014 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3018 */ cpu->ctr = cpu->r[11];
|
|
/* 028B301C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B3020: ; // 0x28b3020
|
|
/* 028B3020 */ cpu->r[12] = 0x00000001u;
|
|
/* 028B3024 */ _t15 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028B3024 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[12]);
|
|
L_028B3028: ; // 0x28b3028
|
|
/* 028B3028 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3028 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B302C */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B302C */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3030 */ cpu->lr = cpu->r[0];
|
|
/* 028B3034 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3038 */ return;
|
|
}
|
|
|
|
// fn_028B303C @ 0x28b303c
|
|
void Gambit_fn_028B303C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028B303C: ; // 0x28b303c
|
|
/* 028B303C */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028B303C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B3040 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B3044 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3044 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B3044 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B3044 */ goto L_028B3048;
|
|
L_028B3048: ; // 0x28b3048
|
|
/* 028B3048 */ _t3 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B3048 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B304C */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B304C */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B3050 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 028B3054 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3054 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B3054 */ _t7 = _t6 ^ 0x00000001u;
|
|
/* 028B3054 */ if (_t7) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B3054 */ goto L_028B3058;
|
|
L_028B3058: ; // 0x28b3058
|
|
/* 028B3058 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B305C */ _t8 = cpu->r[12] + 0x00000058u;
|
|
/* 028B305C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3060 */ _t9 = cpu->r[11] + 0xFFFF8724u;
|
|
/* 028B3060 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028B3064 */ cpu->r[0] = cpu->r[0] | 0x00000001u;
|
|
/* 028B3068 */ /* nop */
|
|
/* 028B306C */ _t10 = cpu->r[12] + 0x00000058u;
|
|
/* 028B306C */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B3070 */ _t11 = cpu->r[12] + 0x0000005Cu;
|
|
/* 028B3070 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028B3074 */ return;
|
|
}
|
|
|
|
// fn_028B3078 @ 0x28b3078
|
|
void Gambit_fn_028B3078(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028B3078: ; // 0x28b3078
|
|
/* 028B3078 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028B3078 */ cpu->r[8] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B307C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B3080 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3080 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B3080 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B3080 */ goto L_028B3084;
|
|
L_028B3084: ; // 0x28b3084
|
|
/* 028B3084 */ _t3 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028B3084 */ cpu->r[7] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B3088 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3088 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B308C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[9]);
|
|
/* 028B3090 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3090 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B3090 */ _t7 = _t6 ^ 0x00000001u;
|
|
/* 028B3090 */ if (_t7) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B3090 */ goto L_028B3094;
|
|
L_028B3094: ; // 0x28b3094
|
|
/* 028B3094 */ _t8 = cpu->r[4] + 0x00000000u;
|
|
/* 028B3094 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3098 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028B309C */ cpu->r[12] = cpu->r[8] + cpu->r[0];
|
|
/* 028B30A0 */ _t9 = cpu->r[12] + 0x00000060u;
|
|
/* 028B30A0 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[1]);
|
|
/* 028B30A4 */ _t10 = cpu->r[8] + 0x00000058u;
|
|
/* 028B30A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B30A8 */ cpu->r[0] = cpu->r[0] | 0x00000002u;
|
|
/* 028B30AC */ _t11 = cpu->r[8] + 0x00000058u;
|
|
/* 028B30AC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028B30B0 */ return;
|
|
}
|
|
|
|
// fn_028B30B4 @ 0x28b30b4
|
|
void Gambit_fn_028B30B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028B30B4: ; // 0x28b30b4
|
|
/* 028B30B4 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028B30B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B30B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B30BC */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B30BC */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B30BC */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B30BC */ goto L_028B30C0;
|
|
L_028B30C0: ; // 0x28b30c0
|
|
/* 028B30C0 */ _t3 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B30C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B30C4 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B30C4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B30C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 028B30CC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B30CC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B30CC */ _t7 = _t6 ^ 0x00000001u;
|
|
/* 028B30CC */ if (_t7) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B30CC */ goto L_028B30D0;
|
|
L_028B30D0: ; // 0x28b30d0
|
|
/* 028B30D0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B30D4 */ _t8 = cpu->r[12] + 0x00000058u;
|
|
/* 028B30D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B30D8 */ _t9 = cpu->r[11] + 0xFFFF8724u;
|
|
/* 028B30D8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 028B30DC */ cpu->r[0] = cpu->r[0] | 0x00000004u;
|
|
/* 028B30E0 */ /* nop */
|
|
/* 028B30E4 */ _t10 = cpu->r[12] + 0x00000058u;
|
|
/* 028B30E4 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B30E8 */ _t11 = cpu->r[12] + 0x00000078u;
|
|
/* 028B30E8 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028B30EC */ return;
|
|
}
|
|
|
|
// fn_028B30F0 @ 0x28b30f0
|
|
void Gambit_fn_028B30F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028B30F0: ; // 0x28b30f0
|
|
/* 028B30F0 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028B30F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B30F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B30F8 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B30F8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B30F8 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B30F8 */ goto L_028B30FC;
|
|
L_028B30FC: ; // 0x28b30fc
|
|
/* 028B30FC */ _t3 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B30FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B3100 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3100 */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B3104 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 028B3108 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3108 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B3108 */ _t7 = _t6 ^ 0x00000001u;
|
|
/* 028B3108 */ if (_t7) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B3108 */ goto L_028B310C;
|
|
L_028B310C: ; // 0x28b310c
|
|
/* 028B310C */ _t8 = cpu->r[4] + 0x00000000u;
|
|
/* 028B310C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028B3110 */ _t9 = cpu->r[12] + 0x00000058u;
|
|
/* 028B3110 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3114 */ _t10 = cpu->r[12] + 0x00000084u;
|
|
/* 028B3114 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 028B3118 */ _t11 = cpu->r[4] + 0x00000004u;
|
|
/* 028B3118 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028B311C */ cpu->r[11] = cpu->r[11] | 0x00000020u;
|
|
/* 028B3120 */ _t12 = cpu->r[12] + 0x00000088u;
|
|
/* 028B3120 */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 028B3124 */ _t13 = cpu->r[4] + 0x00000008u;
|
|
/* 028B3124 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028B3128 */ _t14 = cpu->r[12] + 0x00000058u;
|
|
/* 028B3128 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028B312C */ _t15 = cpu->r[12] + 0x0000008Cu;
|
|
/* 028B312C */ rbrew_write_f32(cpu->mem, _t15, cpu->f[0]);
|
|
/* 028B3130 */ return;
|
|
}
|
|
|
|
// fn_028B3134 @ 0x28b3134
|
|
void Gambit_fn_028B3134(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B3134: ; // 0x28b3134
|
|
/* 028B3134 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3138 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B3138 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B313C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B313C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B313C */ cpu->r[1] = _t1;
|
|
/* 028B3140 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 028B3140 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B3144 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B3148 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3148 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B3148 */ if (_t4) goto L_028B3180; else goto L_028B314C;
|
|
L_028B314C: ; // 0x28b314c
|
|
/* 028B314C */ _t5 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B314C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3150 */ _t6 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3150 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3154 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 028B3158 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3158 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B3158 */ if (_t8) goto L_028B315C; else goto L_028B3180;
|
|
L_028B315C: ; // 0x28b315c
|
|
/* 028B315C */ cpu->r[3] = cpu->r[12];
|
|
/* 028B3160 */ Gambit_fn_028BA070(cpu);
|
|
/* 028B3164 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3168 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3168 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B3168 */ if (_t10) goto L_028B3180; else goto L_028B316C;
|
|
L_028B316C: ; // 0x28b316c
|
|
/* 028B316C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B316C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3170 */ cpu->lr = cpu->r[0];
|
|
/* 028B3174 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3178 */ cpu->r[3] = cpu->r[3] + 0x0000002Cu;
|
|
/* 028B317C */ return;
|
|
L_028B3180: ; // 0x28b3180
|
|
/* 028B3180 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3180 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3184 */ cpu->lr = cpu->r[0];
|
|
/* 028B3188 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B318C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B3190 */ return;
|
|
}
|
|
|
|
// fn_028B313C @ 0x28b313c
|
|
void Gambit_fn_028B313C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028B313C: ; // 0x28b313c
|
|
/* 028B313C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B313C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B313C */ cpu->r[1] = _t0;
|
|
/* 028B3140 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 028B3140 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B3144 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B3148 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3148 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B3148 */ if (_t3) goto L_028B3180; else goto L_028B314C;
|
|
L_028B314C: ; // 0x28b314c
|
|
/* 028B314C */ _t4 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B314C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B3150 */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3150 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3154 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 028B3158 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3158 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B3158 */ if (_t7) goto L_028B315C; else goto L_028B3180;
|
|
L_028B315C: ; // 0x28b315c
|
|
/* 028B315C */ cpu->r[3] = cpu->r[12];
|
|
/* 028B3160 */ Gambit_fn_028BA070(cpu);
|
|
/* 028B3164 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3168 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3168 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B3168 */ if (_t9) goto L_028B3180; else goto L_028B316C;
|
|
L_028B316C: ; // 0x28b316c
|
|
/* 028B316C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B316C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B3170 */ cpu->lr = cpu->r[0];
|
|
/* 028B3174 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3178 */ cpu->r[3] = cpu->r[3] + 0x0000002Cu;
|
|
/* 028B317C */ return;
|
|
L_028B3180: ; // 0x28b3180
|
|
/* 028B3180 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3180 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3184 */ cpu->lr = cpu->r[0];
|
|
/* 028B3188 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B318C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B3190 */ return;
|
|
}
|
|
|
|
// fn_028B3194 @ 0x28b3194
|
|
void Gambit_fn_028B3194(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_028B3194: ; // 0x28b3194
|
|
/* 028B3194 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028B3194 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B3198 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B319C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B319C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B319C */ if (_t2) goto L_028B31B8; else goto L_028B31A0;
|
|
L_028B31A0: ; // 0x28b31a0
|
|
/* 028B31A0 */ _t3 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B31A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B31A4 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B31A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B31A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028B31AC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B31AC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B31AC */ if (_t6) goto L_028B31B0; else goto L_028B31B8;
|
|
L_028B31B0: ; // 0x28b31b0
|
|
/* 028B31B0 */ cpu->r[3] = cpu->r[12];
|
|
/* 028B31B4 */ goto L_028BA1C4;
|
|
L_028B31B8: ; // 0x28b31b8
|
|
/* 028B31B8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B31BC */ return;
|
|
L_028BA1C4: ; // 0x28ba1c4
|
|
/* 028BA1C4 */ _t7 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028BA1C4 */ rbrew_write32(cpu->mem, _t7, cpu->r[1]);
|
|
/* 028BA1C4 */ cpu->r[1] = _t7;
|
|
/* 028BA1C8 */ /* nop */
|
|
/* 028BA1CC */ cpu->r[0] = cpu->lr;
|
|
/* 028BA1D0 */ _t8 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028BA1D0 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028BA1D4 */ cpu->r[26] = cpu->r[3];
|
|
/* 028BA1D8 */ _t9 = cpu->r[26] + 0x00000038u;
|
|
/* 028BA1D8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028BA1DC */ cpu->r[8] = cpu->r[26] + 0x0000002Cu;
|
|
/* 028BA1E0 */ _t10 = cpu->r[26] + 0x00000030u;
|
|
/* 028BA1E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028BA1E4 */ cpu->r[30] = cpu->r[8] - cpu->r[29];
|
|
/* 028BA1E8 */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028BA1EC */ cpu->r[27] = cpu->r[4];
|
|
/* 028BA1F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[30]);
|
|
/* 028BA1F4 */ cpu->r[31] = 0x00000000u;
|
|
/* 028BA1F8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028BA1F8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028BA1F8 */ if (_t12) goto L_028BA294; else goto L_028BA1FC;
|
|
L_028BA1FC: ; // 0x28ba1fc
|
|
/* 028BA1FC */ cpu->r[25] = 0x101D0000u;
|
|
L_028BA200: ; // 0x28ba200
|
|
/* 028BA200 */ _t13 = cpu->r[27] + 0x00000004u;
|
|
/* 028BA200 */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028BA204 */ _t14 = cpu->r[27] + 0x00000000u;
|
|
/* 028BA204 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028BA208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[7]);
|
|
/* 028BA20C */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028BA20C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028BA20C */ if (_t16) goto L_028BA234; else goto L_028BA210;
|
|
L_028BA210: ; // 0x28ba210
|
|
/* 028BA210 */ _t17 = cpu->r[26] + 0x00000010u;
|
|
/* 028BA210 */ cpu->r[6] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028BA214 */ cpu->r[4] = 0x0000001Eu;
|
|
/* 028BA218 */ _t18 = cpu->r[6] + 0x00000020u;
|
|
/* 028BA218 */ cpu->r[5] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028BA21C */ cpu->r[6] = 0x10140000u;
|
|
/* 028BA220 */ _t19 = cpu->r[25] + 0xFFFF9A68u;
|
|
/* 028BA220 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028BA224 */ cpu->r[6] = cpu->r[6] + 0xFFFF8E8Cu;
|
|
/* 028BA228 */ _t20 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028BA228 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028BA228 */ if (_t21) goto L_028BA22C; // else: addr-0 trap, fall-through
|
|
L_028BA22C: ; // 0x28ba22c
|
|
/* 028BA22C */ Gambit_fn_028AA73C(cpu);
|
|
/* 028BA230 */ goto L_028BA294;
|
|
L_028BA234: ; // 0x28ba234
|
|
/* 028BA234 */ _t22 = cpu->r[28] + 0x00000024u;
|
|
/* 028BA234 */ cpu->r[6] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028BA238 */ _t23 = cpu->r[6] + 0x0000001Cu;
|
|
/* 028BA238 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028BA23C */ cpu->ctr = cpu->r[0];
|
|
/* 028BA240 */ cpu->r[3] = cpu->r[28];
|
|
/* 028BA244 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028BA248 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028BA24C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028BA24C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028BA24C */ if (_t25) goto L_028BA280; else goto L_028BA250;
|
|
L_028BA250: ; // 0x28ba250
|
|
/* 028BA250 */ _t26 = cpu->r[27] + 0x00000000u;
|
|
/* 028BA250 */ cpu->r[7] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028BA254 */ _t27 = cpu->r[27] + 0x00000004u;
|
|
/* 028BA254 */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028BA258 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[10]);
|
|
/* 028BA25C */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028BA25C */ _t29 = _t28 & 0x00000001u;
|
|
/* 028BA25C */ if (_t29) goto L_028BA260; else goto L_028BA27C;
|
|
L_028BA260: ; // 0x28ba260
|
|
/* 028BA260 */ _t30 = cpu->r[27] + 0x00000008u;
|
|
/* 028BA260 */ cpu->r[9] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028BA264 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028BA268 */ cpu->r[0] = cpu->r[28] + 0x0000002Cu;
|
|
/* 028BA26C */ _t31 = cpu->r[12] + cpu->r[9];
|
|
/* 028BA26C */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
/* 028BA270 */ _t32 = cpu->r[27] + 0x00000000u;
|
|
/* 028BA270 */ cpu->r[11] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028BA274 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028BA278 */ _t33 = cpu->r[27] + 0x00000000u;
|
|
/* 028BA278 */ rbrew_write32(cpu->mem, _t33, cpu->r[11]);
|
|
L_028BA27C: ; // 0x28ba27c
|
|
/* 028BA27C */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
L_028BA280: ; // 0x28ba280
|
|
/* 028BA280 */ cpu->r[5] = cpu->r[28] + cpu->r[29];
|
|
/* 028BA284 */ _t34 = cpu->r[5] + 0x00000004u;
|
|
/* 028BA284 */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028BA288 */ cpu->r[28] = cpu->r[12] - cpu->r[29];
|
|
/* 028BA28C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[30]);
|
|
/* 028BA290 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028BA290 */ _t36 = _t35 & 0x00000001u;
|
|
/* 028BA290 */ if (_t36) goto L_028BA294; else goto L_028BA200;
|
|
L_028BA294: ; // 0x28ba294
|
|
/* 028BA294 */ cpu->r[3] = cpu->r[31];
|
|
/* 028BA298 */ /* nop */
|
|
/* 028BA29C */ _t37 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028BA29C */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028BA2A0 */ cpu->lr = cpu->r[0];
|
|
/* 028BA2A4 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028BA2A8 */ return;
|
|
}
|
|
|
|
// fn_028B31C0 @ 0x28b31c0
|
|
void Gambit_fn_028B31C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B31C0: ; // 0x28b31c0
|
|
/* 028B31C0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B31C4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B31C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B31C4 */ cpu->r[1] = _t0;
|
|
/* 028B31C8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B31C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B31CC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B31D0 */ cpu->r[5] = 0x00000001u;
|
|
/* 028B31D4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B31D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B31D8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B31DC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B31E0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B31E4 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B31E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B31EC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B31EC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B31EC */ if (_t4) goto L_028B31F0; else goto L_028B31F8;
|
|
L_028B31F0: ; // 0x28b31f0
|
|
/* 028B31F0 */ cpu->r[3] = 0x10140000u;
|
|
/* 028B31F4 */ cpu->r[3] = cpu->r[3] + 0xFFFF872Cu;
|
|
L_028B31F8: ; // 0x28b31f8
|
|
/* 028B31F8 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B31F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B31FC */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B31FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3200 */ cpu->lr = cpu->r[0];
|
|
/* 028B3204 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3208 */ return;
|
|
}
|
|
|
|
// fn_028B31C4 @ 0x28b31c4
|
|
void Gambit_fn_028B31C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B31C4: ; // 0x28b31c4
|
|
/* 028B31C4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B31C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B31C4 */ cpu->r[1] = _t0;
|
|
/* 028B31C8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B31C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B31CC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B31D0 */ cpu->r[5] = 0x00000001u;
|
|
/* 028B31D4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B31D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B31D8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B31DC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B31E0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B31E4 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B31E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B31EC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B31EC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B31EC */ if (_t4) goto L_028B31F0; else goto L_028B31F8;
|
|
L_028B31F0: ; // 0x28b31f0
|
|
/* 028B31F0 */ cpu->r[3] = 0x10140000u;
|
|
/* 028B31F4 */ cpu->r[3] = cpu->r[3] + 0xFFFF872Cu;
|
|
L_028B31F8: ; // 0x28b31f8
|
|
/* 028B31F8 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B31F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B31FC */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B31FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3200 */ cpu->lr = cpu->r[0];
|
|
/* 028B3204 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3208 */ return;
|
|
}
|
|
|
|
// fn_028B320C @ 0x28b320c
|
|
void Gambit_fn_028B320C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B320C: ; // 0x28b320c
|
|
/* 028B320C */ cpu->r[0] = cpu->lr;
|
|
/* 028B3210 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3210 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3210 */ cpu->r[1] = _t0;
|
|
/* 028B3214 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3214 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3218 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B321C */ cpu->r[5] = 0x00000002u;
|
|
/* 028B3220 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3220 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3224 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3228 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B322C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3230 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B3234 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3238 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3238 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B3238 */ if (_t4) goto L_028B323C; else goto L_028B3244;
|
|
L_028B323C: ; // 0x28b323c
|
|
/* 028B323C */ cpu->r[3] = 0x10140000u;
|
|
/* 028B3240 */ cpu->r[3] = cpu->r[3] + 0xFFFF872Du;
|
|
L_028B3244: ; // 0x28b3244
|
|
/* 028B3244 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3248 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3248 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B324C */ cpu->lr = cpu->r[0];
|
|
/* 028B3250 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3254 */ return;
|
|
}
|
|
|
|
// fn_028B3210 @ 0x28b3210
|
|
void Gambit_fn_028B3210(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B3210: ; // 0x28b3210
|
|
/* 028B3210 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3210 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3210 */ cpu->r[1] = _t0;
|
|
/* 028B3214 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3214 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3218 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B321C */ cpu->r[5] = 0x00000002u;
|
|
/* 028B3220 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3220 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3224 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3228 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B322C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3230 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B3234 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3238 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3238 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B3238 */ if (_t4) goto L_028B323C; else goto L_028B3244;
|
|
L_028B323C: ; // 0x28b323c
|
|
/* 028B323C */ cpu->r[3] = 0x10140000u;
|
|
/* 028B3240 */ cpu->r[3] = cpu->r[3] + 0xFFFF872Du;
|
|
L_028B3244: ; // 0x28b3244
|
|
/* 028B3244 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3248 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3248 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B324C */ cpu->lr = cpu->r[0];
|
|
/* 028B3250 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3254 */ return;
|
|
}
|
|
|
|
// fn_028B3258 @ 0x28b3258
|
|
void Gambit_fn_028B3258(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B3258: ; // 0x28b3258
|
|
/* 028B3258 */ cpu->r[0] = cpu->lr;
|
|
/* 028B325C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B325C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B3260 */ cpu->r[5] = 0x00000003u;
|
|
/* 028B3264 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3264 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B3264 */ cpu->r[1] = _t1;
|
|
/* 028B3268 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B326C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3270 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B3274 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3274 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B3274 */ if (_t3) goto L_028B3288; else goto L_028B3278;
|
|
L_028B3278: ; // 0x28b3278
|
|
/* 028B3278 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3278 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B327C */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B3280 */ _t5 = ~cpu->r[12];
|
|
/* 028B3280 */ cpu->r[12] = cpu->r[0] & _t5;
|
|
/* 028B3284 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B3288: ; // 0x28b3288
|
|
/* 028B3288 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B328C */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B328C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3290 */ cpu->lr = cpu->r[0];
|
|
/* 028B3294 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3298 */ return;
|
|
}
|
|
|
|
// fn_028B3264 @ 0x28b3264
|
|
void Gambit_fn_028B3264(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B3264: ; // 0x28b3264
|
|
/* 028B3264 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3264 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3264 */ cpu->r[1] = _t0;
|
|
/* 028B3268 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B326C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3270 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B3274 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3274 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B3274 */ if (_t2) goto L_028B3288; else goto L_028B3278;
|
|
L_028B3278: ; // 0x28b3278
|
|
/* 028B3278 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3278 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B327C */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B3280 */ _t4 = ~cpu->r[12];
|
|
/* 028B3280 */ cpu->r[12] = cpu->r[0] & _t4;
|
|
/* 028B3284 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B3288: ; // 0x28b3288
|
|
/* 028B3288 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B328C */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B328C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3290 */ cpu->lr = cpu->r[0];
|
|
/* 028B3294 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3298 */ return;
|
|
}
|
|
|
|
// fn_028B329C @ 0x28b329c
|
|
void Gambit_fn_028B329C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B329C: ; // 0x28b329c
|
|
/* 028B329C */ cpu->r[0] = cpu->lr;
|
|
/* 028B32A0 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B32A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B32A4 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B32A8 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B32A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B32A8 */ cpu->r[1] = _t1;
|
|
/* 028B32AC */ Gambit_fn_028A8004(cpu);
|
|
/* 028B32B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B32B4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B32B8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B32B8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B32B8 */ if (_t3) goto L_028B32CC; else goto L_028B32BC;
|
|
L_028B32BC: ; // 0x28b32bc
|
|
/* 028B32BC */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B32BC */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B32C0 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B32C4 */ _t5 = ~cpu->r[12];
|
|
/* 028B32C4 */ cpu->r[12] = cpu->r[0] & _t5;
|
|
/* 028B32C8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B32CC: ; // 0x28b32cc
|
|
/* 028B32CC */ cpu->r[3] = cpu->r[0];
|
|
/* 028B32D0 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B32D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B32D4 */ cpu->lr = cpu->r[0];
|
|
/* 028B32D8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B32DC */ return;
|
|
}
|
|
|
|
// fn_028B32A8 @ 0x28b32a8
|
|
void Gambit_fn_028B32A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B32A8: ; // 0x28b32a8
|
|
/* 028B32A8 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B32A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B32A8 */ cpu->r[1] = _t0;
|
|
/* 028B32AC */ Gambit_fn_028A8004(cpu);
|
|
/* 028B32B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B32B4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B32B8 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B32B8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B32B8 */ if (_t2) goto L_028B32CC; else goto L_028B32BC;
|
|
L_028B32BC: ; // 0x28b32bc
|
|
/* 028B32BC */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B32BC */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B32C0 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B32C4 */ _t4 = ~cpu->r[12];
|
|
/* 028B32C4 */ cpu->r[12] = cpu->r[0] & _t4;
|
|
/* 028B32C8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B32CC: ; // 0x28b32cc
|
|
/* 028B32CC */ cpu->r[3] = cpu->r[0];
|
|
/* 028B32D0 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B32D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B32D4 */ cpu->lr = cpu->r[0];
|
|
/* 028B32D8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B32DC */ return;
|
|
}
|
|
|
|
// fn_028B32E0 @ 0x28b32e0
|
|
void Gambit_fn_028B32E0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B32E0: ; // 0x28b32e0
|
|
/* 028B32E0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B32E4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B32E4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B32E8 */ cpu->r[5] = 0x00000005u;
|
|
/* 028B32EC */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B32EC */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B32EC */ cpu->r[1] = _t1;
|
|
/* 028B32F0 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B32F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B32F8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B32FC */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B32FC */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B32FC */ if (_t3) goto L_028B3310; else goto L_028B3300;
|
|
L_028B3300: ; // 0x28b3300
|
|
/* 028B3300 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3300 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B3304 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B3308 */ _t5 = ~cpu->r[12];
|
|
/* 028B3308 */ cpu->r[12] = cpu->r[0] & _t5;
|
|
/* 028B330C */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B3310: ; // 0x28b3310
|
|
/* 028B3310 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B3314 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3314 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3318 */ cpu->lr = cpu->r[0];
|
|
/* 028B331C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3320 */ return;
|
|
}
|
|
|
|
// fn_028B32EC @ 0x28b32ec
|
|
void Gambit_fn_028B32EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B32EC: ; // 0x28b32ec
|
|
/* 028B32EC */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B32EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B32EC */ cpu->r[1] = _t0;
|
|
/* 028B32F0 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B32F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B32F8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B32FC */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B32FC */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B32FC */ if (_t2) goto L_028B3310; else goto L_028B3300;
|
|
L_028B3300: ; // 0x28b3300
|
|
/* 028B3300 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3300 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B3304 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B3308 */ _t4 = ~cpu->r[12];
|
|
/* 028B3308 */ cpu->r[12] = cpu->r[0] & _t4;
|
|
/* 028B330C */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B3310: ; // 0x28b3310
|
|
/* 028B3310 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B3314 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3314 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3318 */ cpu->lr = cpu->r[0];
|
|
/* 028B331C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3320 */ return;
|
|
}
|
|
|
|
// fn_028B3324 @ 0x28b3324
|
|
void Gambit_fn_028B3324(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B3324: ; // 0x28b3324
|
|
/* 028B3324 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3328 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B3328 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B332C */ cpu->r[5] = 0x00000006u;
|
|
/* 028B3330 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3330 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B3330 */ cpu->r[1] = _t1;
|
|
/* 028B3334 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3338 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B333C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B3340 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3340 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B3340 */ if (_t3) goto L_028B3354; else goto L_028B3344;
|
|
L_028B3344: ; // 0x28b3344
|
|
/* 028B3344 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3344 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B3348 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B334C */ _t5 = ~cpu->r[12];
|
|
/* 028B334C */ cpu->r[12] = cpu->r[0] & _t5;
|
|
/* 028B3350 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B3354: ; // 0x28b3354
|
|
/* 028B3354 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B3358 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3358 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B335C */ cpu->lr = cpu->r[0];
|
|
/* 028B3360 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3364 */ return;
|
|
}
|
|
|
|
// fn_028B3330 @ 0x28b3330
|
|
void Gambit_fn_028B3330(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B3330: ; // 0x28b3330
|
|
/* 028B3330 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3330 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3330 */ cpu->r[1] = _t0;
|
|
/* 028B3334 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3338 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B333C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B3340 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3340 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B3340 */ if (_t2) goto L_028B3354; else goto L_028B3344;
|
|
L_028B3344: ; // 0x28b3344
|
|
/* 028B3344 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3344 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B3348 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B334C */ _t4 = ~cpu->r[12];
|
|
/* 028B334C */ cpu->r[12] = cpu->r[0] & _t4;
|
|
/* 028B3350 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B3354: ; // 0x28b3354
|
|
/* 028B3354 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B3358 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3358 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B335C */ cpu->lr = cpu->r[0];
|
|
/* 028B3360 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3364 */ return;
|
|
}
|
|
|
|
// fn_028B3368 @ 0x28b3368
|
|
void Gambit_fn_028B3368(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B3368: ; // 0x28b3368
|
|
/* 028B3368 */ cpu->r[0] = cpu->lr;
|
|
/* 028B336C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B336C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B3370 */ cpu->r[5] = 0x00000007u;
|
|
/* 028B3374 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3374 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B3374 */ cpu->r[1] = _t1;
|
|
/* 028B3378 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B337C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3380 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B3384 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3384 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B3384 */ if (_t3) goto L_028B3398; else goto L_028B3388;
|
|
L_028B3388: ; // 0x28b3388
|
|
/* 028B3388 */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3388 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B338C */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B3390 */ _t5 = ~cpu->r[12];
|
|
/* 028B3390 */ cpu->r[12] = cpu->r[0] & _t5;
|
|
/* 028B3394 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B3398: ; // 0x28b3398
|
|
/* 028B3398 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B339C */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B339C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B33A0 */ cpu->lr = cpu->r[0];
|
|
/* 028B33A4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B33A8 */ return;
|
|
}
|
|
|
|
// fn_028B3374 @ 0x28b3374
|
|
void Gambit_fn_028B3374(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B3374: ; // 0x28b3374
|
|
/* 028B3374 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3374 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3374 */ cpu->r[1] = _t0;
|
|
/* 028B3378 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B337C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3380 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B3384 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3384 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B3384 */ if (_t2) goto L_028B3398; else goto L_028B3388;
|
|
L_028B3388: ; // 0x28b3388
|
|
/* 028B3388 */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3388 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B338C */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B3390 */ _t4 = ~cpu->r[12];
|
|
/* 028B3390 */ cpu->r[12] = cpu->r[0] & _t4;
|
|
/* 028B3394 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B3398: ; // 0x28b3398
|
|
/* 028B3398 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B339C */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B339C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B33A0 */ cpu->lr = cpu->r[0];
|
|
/* 028B33A4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B33A8 */ return;
|
|
}
|
|
|
|
// fn_028B33AC @ 0x28b33ac
|
|
void Gambit_fn_028B33AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B33AC: ; // 0x28b33ac
|
|
/* 028B33AC */ cpu->r[0] = cpu->lr;
|
|
/* 028B33B0 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B33B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B33B4 */ cpu->r[5] = 0x00000008u;
|
|
/* 028B33B8 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B33B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B33B8 */ cpu->r[1] = _t1;
|
|
/* 028B33BC */ Gambit_fn_028A8004(cpu);
|
|
/* 028B33C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B33C4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B33C8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B33C8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B33C8 */ if (_t3) goto L_028B33DC; else goto L_028B33CC;
|
|
L_028B33CC: ; // 0x28b33cc
|
|
/* 028B33CC */ _t4 = cpu->r[3] + 0x00000004u;
|
|
/* 028B33CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B33D0 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B33D4 */ _t5 = ~cpu->r[12];
|
|
/* 028B33D4 */ cpu->r[12] = cpu->r[0] & _t5;
|
|
/* 028B33D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B33DC: ; // 0x28b33dc
|
|
/* 028B33DC */ cpu->r[3] = cpu->r[0];
|
|
/* 028B33E0 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B33E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B33E4 */ cpu->lr = cpu->r[0];
|
|
/* 028B33E8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B33EC */ return;
|
|
}
|
|
|
|
// fn_028B33B8 @ 0x28b33b8
|
|
void Gambit_fn_028B33B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B33B8: ; // 0x28b33b8
|
|
/* 028B33B8 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B33B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B33B8 */ cpu->r[1] = _t0;
|
|
/* 028B33BC */ Gambit_fn_028A8004(cpu);
|
|
/* 028B33C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B33C4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B33C8 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B33C8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B33C8 */ if (_t2) goto L_028B33DC; else goto L_028B33CC;
|
|
L_028B33CC: ; // 0x28b33cc
|
|
/* 028B33CC */ _t3 = cpu->r[3] + 0x00000004u;
|
|
/* 028B33CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B33D0 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[12]);
|
|
/* 028B33D4 */ _t4 = ~cpu->r[12];
|
|
/* 028B33D4 */ cpu->r[12] = cpu->r[0] & _t4;
|
|
/* 028B33D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
L_028B33DC: ; // 0x28b33dc
|
|
/* 028B33DC */ cpu->r[3] = cpu->r[0];
|
|
/* 028B33E0 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B33E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B33E4 */ cpu->lr = cpu->r[0];
|
|
/* 028B33E8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B33EC */ return;
|
|
}
|
|
|
|
// fn_028B33F0 @ 0x28b33f0
|
|
void Gambit_fn_028B33F0(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_028B33F0: ; // 0x28b33f0
|
|
/* 028B33F0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B33F4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B33F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B33F4 */ cpu->r[1] = _t0;
|
|
/* 028B33F8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B33F8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B33FC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B33FC */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028B3400 */ /* nop */
|
|
/* 028B3404 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B3408 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3408 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B340C */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028B340C */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028B3410 */ cpu->r[5] = 0x00000009u;
|
|
/* 028B3414 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3418 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3418 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B341C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3420 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3424 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3424 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3428 */ _t6 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3428 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028B342C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B342C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B342C */ if (_t8) goto L_028B3464; else goto L_028B3430;
|
|
L_028B3430: ; // 0x28b3430
|
|
/* 028B3430 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3434 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3438 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B343C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B343C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3440 */ /* nop */
|
|
/* 028B3444 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028B3444 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B3448 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3448 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B344C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B344C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t12);
|
|
/* 028B3450 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B3450 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B3450 */ if (_t14) goto L_028B3454; // else: addr-0 trap, fall-through
|
|
L_028B3454: ; // 0x28b3454
|
|
/* 028B3454 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3454 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B3458 */ cpu->lr = cpu->r[0];
|
|
/* 028B345C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B3460 */ return;
|
|
L_028B3464: ; // 0x28b3464
|
|
/* 028B3464 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3464 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3468 */ cpu->f[1] = cpu->f[31];
|
|
/* 028B346C */ _t17 = cpu->r[1] + 0x00000018u;
|
|
/* 028B346C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B3470 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3470 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B3474 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3474 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028B3478 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B3478 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B3478 */ if (_t21) goto L_028B347C; // else: addr-0 trap, fall-through
|
|
L_028B347C: ; // 0x28b347c
|
|
/* 028B347C */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B347C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B3480 */ cpu->lr = cpu->r[0];
|
|
/* 028B3484 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B3488 */ return;
|
|
}
|
|
|
|
// fn_028B33F4 @ 0x28b33f4
|
|
void Gambit_fn_028B33F4(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_028B33F4: ; // 0x28b33f4
|
|
/* 028B33F4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B33F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B33F4 */ cpu->r[1] = _t0;
|
|
/* 028B33F8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B33F8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B33FC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B33FC */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028B3400 */ /* nop */
|
|
/* 028B3404 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B3408 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3408 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B340C */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028B340C */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028B3410 */ cpu->r[5] = 0x00000009u;
|
|
/* 028B3414 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3418 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3418 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B341C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3420 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3424 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3424 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3428 */ _t6 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3428 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028B342C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B342C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B342C */ if (_t8) goto L_028B3464; else goto L_028B3430;
|
|
L_028B3430: ; // 0x28b3430
|
|
/* 028B3430 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3434 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3438 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B343C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B343C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3440 */ /* nop */
|
|
/* 028B3444 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028B3444 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B3448 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3448 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B344C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B344C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t12);
|
|
/* 028B3450 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B3450 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B3450 */ if (_t14) goto L_028B3454; // else: addr-0 trap, fall-through
|
|
L_028B3454: ; // 0x28b3454
|
|
/* 028B3454 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3454 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B3458 */ cpu->lr = cpu->r[0];
|
|
/* 028B345C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B3460 */ return;
|
|
L_028B3464: ; // 0x28b3464
|
|
/* 028B3464 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3464 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3468 */ cpu->f[1] = cpu->f[31];
|
|
/* 028B346C */ _t17 = cpu->r[1] + 0x00000018u;
|
|
/* 028B346C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B3470 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3470 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B3474 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3474 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028B3478 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B3478 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B3478 */ if (_t21) goto L_028B347C; // else: addr-0 trap, fall-through
|
|
L_028B347C: ; // 0x28b347c
|
|
/* 028B347C */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B347C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B3480 */ cpu->lr = cpu->r[0];
|
|
/* 028B3484 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B3488 */ return;
|
|
}
|
|
|
|
// fn_028B348C @ 0x28b348c
|
|
void Gambit_fn_028B348C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B348C: ; // 0x28b348c
|
|
/* 028B348C */ cpu->r[0] = cpu->lr;
|
|
/* 028B3490 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3490 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3490 */ cpu->r[1] = _t0;
|
|
/* 028B3494 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3494 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3498 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3498 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B349C */ cpu->r[31] = cpu->r[5];
|
|
/* 028B34A0 */ cpu->r[5] = 0x0000000Au;
|
|
/* 028B34A4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B34A8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B34A8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B34AC */ Gambit_fn_028A8004(cpu);
|
|
/* 028B34B0 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B34B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B34B4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B34B4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B34B4 */ if (_t5) goto L_028B34DC; else goto L_028B34B8;
|
|
L_028B34B8: ; // 0x28b34b8
|
|
/* 028B34B8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B34BC */ cpu->r[3] = cpu->r[30];
|
|
/* 028B34C0 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B34C4 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B34C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B34C8 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B34C8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B34CC */ cpu->lr = cpu->r[0];
|
|
/* 028B34D0 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B34D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B34D4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B34D8 */ return;
|
|
L_028B34DC: ; // 0x28b34dc
|
|
/* 028B34DC */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B34DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B34E0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B34E4 */ cpu->lr = cpu->r[0];
|
|
/* 028B34E8 */ _t10 = cpu->r[12] + 0xFFFF8730u;
|
|
/* 028B34E8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B34EC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B34EC */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B34F0 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B34F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B34F4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B34F8 */ return;
|
|
}
|
|
|
|
// fn_028B3490 @ 0x28b3490
|
|
void Gambit_fn_028B3490(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B3490: ; // 0x28b3490
|
|
/* 028B3490 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3490 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3490 */ cpu->r[1] = _t0;
|
|
/* 028B3494 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3494 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3498 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3498 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B349C */ cpu->r[31] = cpu->r[5];
|
|
/* 028B34A0 */ cpu->r[5] = 0x0000000Au;
|
|
/* 028B34A4 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B34A8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B34A8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B34AC */ Gambit_fn_028A8004(cpu);
|
|
/* 028B34B0 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B34B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B34B4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B34B4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B34B4 */ if (_t5) goto L_028B34DC; else goto L_028B34B8;
|
|
L_028B34B8: ; // 0x28b34b8
|
|
/* 028B34B8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B34BC */ cpu->r[3] = cpu->r[30];
|
|
/* 028B34C0 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B34C4 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B34C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B34C8 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B34C8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B34CC */ cpu->lr = cpu->r[0];
|
|
/* 028B34D0 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B34D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B34D4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B34D8 */ return;
|
|
L_028B34DC: ; // 0x28b34dc
|
|
/* 028B34DC */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B34DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B34E0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B34E4 */ cpu->lr = cpu->r[0];
|
|
/* 028B34E8 */ _t10 = cpu->r[12] + 0xFFFF8730u;
|
|
/* 028B34E8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B34EC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B34EC */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B34F0 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B34F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B34F4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B34F8 */ return;
|
|
}
|
|
|
|
// fn_028B34FC @ 0x28b34fc
|
|
void Gambit_fn_028B34FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B34FC: ; // 0x28b34fc
|
|
/* 028B34FC */ cpu->r[0] = cpu->lr;
|
|
/* 028B3500 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3500 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3500 */ cpu->r[1] = _t0;
|
|
/* 028B3504 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3504 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3508 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3508 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B350C */ cpu->r[31] = cpu->r[5];
|
|
/* 028B3510 */ cpu->r[5] = 0x0000000Bu;
|
|
/* 028B3514 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3518 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3518 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B351C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3520 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3524 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3524 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3524 */ if (_t5) goto L_028B354C; else goto L_028B3528;
|
|
L_028B3528: ; // 0x28b3528
|
|
/* 028B3528 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B352C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B3530 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3534 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3534 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3538 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3538 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B353C */ cpu->lr = cpu->r[0];
|
|
/* 028B3540 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3540 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3544 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3548 */ return;
|
|
L_028B354C: ; // 0x28b354c
|
|
/* 028B354C */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B354C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3550 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3554 */ cpu->lr = cpu->r[0];
|
|
/* 028B3558 */ _t10 = cpu->r[12] + 0xFFFF8730u;
|
|
/* 028B3558 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B355C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B355C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3560 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3560 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3564 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3568 */ return;
|
|
}
|
|
|
|
// fn_028B3500 @ 0x28b3500
|
|
void Gambit_fn_028B3500(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B3500: ; // 0x28b3500
|
|
/* 028B3500 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3500 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3500 */ cpu->r[1] = _t0;
|
|
/* 028B3504 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3504 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3508 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3508 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B350C */ cpu->r[31] = cpu->r[5];
|
|
/* 028B3510 */ cpu->r[5] = 0x0000000Bu;
|
|
/* 028B3514 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3518 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3518 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B351C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3520 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3524 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3524 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3524 */ if (_t5) goto L_028B354C; else goto L_028B3528;
|
|
L_028B3528: ; // 0x28b3528
|
|
/* 028B3528 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B352C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B3530 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3534 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3534 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3538 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3538 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B353C */ cpu->lr = cpu->r[0];
|
|
/* 028B3540 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3540 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3544 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3548 */ return;
|
|
L_028B354C: ; // 0x28b354c
|
|
/* 028B354C */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B354C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3550 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3554 */ cpu->lr = cpu->r[0];
|
|
/* 028B3558 */ _t10 = cpu->r[12] + 0xFFFF8730u;
|
|
/* 028B3558 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B355C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B355C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3560 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3560 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3564 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3568 */ return;
|
|
}
|
|
|
|
// fn_028B356C @ 0x28b356c
|
|
void Gambit_fn_028B356C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028B356C: ; // 0x28b356c
|
|
/* 028B356C */ cpu->r[0] = cpu->lr;
|
|
/* 028B3570 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3570 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3570 */ cpu->r[1] = _t0;
|
|
/* 028B3574 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3574 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3578 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3578 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B357C */ cpu->r[30] = cpu->r[5];
|
|
/* 028B3580 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028B3584 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3588 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3588 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B358C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3590 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3590 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3594 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3594 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3594 */ if (_t5) goto L_028B35C8; else goto L_028B3598;
|
|
L_028B3598: ; // 0x28b3598
|
|
/* 028B3598 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B359C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B35A0 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B35A4 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B35A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B35A8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B35AC */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B35AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B35B0 */ cpu->lr = cpu->r[0];
|
|
/* 028B35B4 */ _t8 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B35B4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028B35B8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B35B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B35BC */ /* nop */
|
|
/* 028B35C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B35C4 */ return;
|
|
L_028B35C8: ; // 0x28b35c8
|
|
/* 028B35C8 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B35C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B35CC */ cpu->r[11] = 0x10140000u;
|
|
/* 028B35D0 */ cpu->lr = cpu->r[0];
|
|
/* 028B35D4 */ _t11 = cpu->r[11] + 0xFFFF8734u;
|
|
/* 028B35D4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028B35D8 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028B35D8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B35DC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B35DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B35E0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B35E4 */ return;
|
|
}
|
|
|
|
// fn_028B3570 @ 0x28b3570
|
|
void Gambit_fn_028B3570(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028B3570: ; // 0x28b3570
|
|
/* 028B3570 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3570 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3570 */ cpu->r[1] = _t0;
|
|
/* 028B3574 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3574 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3578 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3578 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B357C */ cpu->r[30] = cpu->r[5];
|
|
/* 028B3580 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028B3584 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3588 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3588 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B358C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3590 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3590 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3594 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3594 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3594 */ if (_t5) goto L_028B35C8; else goto L_028B3598;
|
|
L_028B3598: ; // 0x28b3598
|
|
/* 028B3598 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B359C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B35A0 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B35A4 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B35A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B35A8 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B35AC */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B35AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B35B0 */ cpu->lr = cpu->r[0];
|
|
/* 028B35B4 */ _t8 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B35B4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 028B35B8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B35B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B35BC */ /* nop */
|
|
/* 028B35C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B35C4 */ return;
|
|
L_028B35C8: ; // 0x28b35c8
|
|
/* 028B35C8 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B35C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B35CC */ cpu->r[11] = 0x10140000u;
|
|
/* 028B35D0 */ cpu->lr = cpu->r[0];
|
|
/* 028B35D4 */ _t11 = cpu->r[11] + 0xFFFF8734u;
|
|
/* 028B35D4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 028B35D8 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028B35D8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B35DC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B35DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B35E0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B35E4 */ return;
|
|
}
|
|
|
|
// fn_028B35E8 @ 0x28b35e8
|
|
void Gambit_fn_028B35E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B35E8: ; // 0x28b35e8
|
|
/* 028B35E8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B35EC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B35EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B35EC */ cpu->r[1] = _t0;
|
|
/* 028B35F0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B35F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B35F4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B35F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B35F8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B35FC */ cpu->r[5] = 0x0000000Du;
|
|
/* 028B3600 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3604 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3604 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B3608 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B360C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B360C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3610 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3610 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3610 */ if (_t5) goto L_028B3638; else goto L_028B3614;
|
|
L_028B3614: ; // 0x28b3614
|
|
/* 028B3614 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B3618 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B361C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3620 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3620 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3624 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3624 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B3628 */ cpu->lr = cpu->r[0];
|
|
/* 028B362C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B362C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3630 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3634 */ return;
|
|
L_028B3638: ; // 0x28b3638
|
|
/* 028B3638 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3638 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B363C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3640 */ cpu->lr = cpu->r[0];
|
|
/* 028B3644 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3644 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B3648 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3648 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B364C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B364C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3650 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3654 */ return;
|
|
}
|
|
|
|
// fn_028B35EC @ 0x28b35ec
|
|
void Gambit_fn_028B35EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B35EC: ; // 0x28b35ec
|
|
/* 028B35EC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B35EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B35EC */ cpu->r[1] = _t0;
|
|
/* 028B35F0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B35F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B35F4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B35F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B35F8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B35FC */ cpu->r[5] = 0x0000000Du;
|
|
/* 028B3600 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3604 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3604 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B3608 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B360C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B360C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3610 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3610 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3610 */ if (_t5) goto L_028B3638; else goto L_028B3614;
|
|
L_028B3614: ; // 0x28b3614
|
|
/* 028B3614 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B3618 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B361C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3620 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3620 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3624 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3624 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B3628 */ cpu->lr = cpu->r[0];
|
|
/* 028B362C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B362C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3630 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3634 */ return;
|
|
L_028B3638: ; // 0x28b3638
|
|
/* 028B3638 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3638 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B363C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3640 */ cpu->lr = cpu->r[0];
|
|
/* 028B3644 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3644 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B3648 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3648 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B364C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B364C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3650 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3654 */ return;
|
|
}
|
|
|
|
// fn_028B3658 @ 0x28b3658
|
|
void Gambit_fn_028B3658(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B3658: ; // 0x28b3658
|
|
/* 028B3658 */ cpu->r[0] = cpu->lr;
|
|
/* 028B365C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B365C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B365C */ cpu->r[1] = _t0;
|
|
/* 028B3660 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3660 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3664 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3664 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B3668 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B366C */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B3670 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3674 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3674 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B3678 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B367C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B367C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3680 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3680 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3680 */ if (_t5) goto L_028B36A8; else goto L_028B3684;
|
|
L_028B3684: ; // 0x28b3684
|
|
/* 028B3684 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B3688 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B368C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3690 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3694 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3694 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B3698 */ cpu->lr = cpu->r[0];
|
|
/* 028B369C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B369C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B36A0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B36A4 */ return;
|
|
L_028B36A8: ; // 0x28b36a8
|
|
/* 028B36A8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B36A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B36AC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B36B0 */ cpu->lr = cpu->r[0];
|
|
/* 028B36B4 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B36B4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B36B8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B36B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B36BC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B36BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B36C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B36C4 */ return;
|
|
}
|
|
|
|
// fn_028B365C @ 0x28b365c
|
|
void Gambit_fn_028B365C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B365C: ; // 0x28b365c
|
|
/* 028B365C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B365C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B365C */ cpu->r[1] = _t0;
|
|
/* 028B3660 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3660 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3664 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3664 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B3668 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B366C */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B3670 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3674 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3674 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B3678 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B367C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B367C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3680 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3680 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3680 */ if (_t5) goto L_028B36A8; else goto L_028B3684;
|
|
L_028B3684: ; // 0x28b3684
|
|
/* 028B3684 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B3688 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B368C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3690 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3694 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3694 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B3698 */ cpu->lr = cpu->r[0];
|
|
/* 028B369C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B369C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B36A0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B36A4 */ return;
|
|
L_028B36A8: ; // 0x28b36a8
|
|
/* 028B36A8 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B36A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B36AC */ cpu->r[12] = 0x10140000u;
|
|
/* 028B36B0 */ cpu->lr = cpu->r[0];
|
|
/* 028B36B4 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B36B4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B36B8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B36B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B36BC */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B36BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B36C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B36C4 */ return;
|
|
}
|
|
|
|
// fn_028B36C8 @ 0x28b36c8
|
|
void Gambit_fn_028B36C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B36C8: ; // 0x28b36c8
|
|
/* 028B36C8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B36CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B36CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B36CC */ cpu->r[1] = _t0;
|
|
/* 028B36D0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B36D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B36D4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B36D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B36D8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B36DC */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B36E0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B36E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B36E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B36E8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B36EC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B36EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B36F0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B36F0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B36F0 */ if (_t5) goto L_028B3718; else goto L_028B36F4;
|
|
L_028B36F4: ; // 0x28b36f4
|
|
/* 028B36F4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B36F8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B36FC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3700 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3700 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3704 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3704 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B3708 */ cpu->lr = cpu->r[0];
|
|
/* 028B370C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B370C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3710 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3714 */ return;
|
|
L_028B3718: ; // 0x28b3718
|
|
/* 028B3718 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3718 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B371C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3720 */ cpu->lr = cpu->r[0];
|
|
/* 028B3724 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3724 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B3728 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3728 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B372C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B372C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3730 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3734 */ return;
|
|
}
|
|
|
|
// fn_028B36CC @ 0x28b36cc
|
|
void Gambit_fn_028B36CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B36CC: ; // 0x28b36cc
|
|
/* 028B36CC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B36CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B36CC */ cpu->r[1] = _t0;
|
|
/* 028B36D0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B36D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B36D4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B36D4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B36D8 */ cpu->r[31] = cpu->r[5];
|
|
/* 028B36DC */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B36E0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B36E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B36E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B36E8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B36EC */ cpu->r[4] = cpu->r[3];
|
|
/* 028B36EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B36F0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B36F0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B36F0 */ if (_t5) goto L_028B3718; else goto L_028B36F4;
|
|
L_028B36F4: ; // 0x28b36f4
|
|
/* 028B36F4 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B36F8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B36FC */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3700 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3700 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3704 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3704 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B3708 */ cpu->lr = cpu->r[0];
|
|
/* 028B370C */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B370C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3710 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3714 */ return;
|
|
L_028B3718: ; // 0x28b3718
|
|
/* 028B3718 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3718 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B371C */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3720 */ cpu->lr = cpu->r[0];
|
|
/* 028B3724 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3724 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B3728 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3728 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B372C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B372C */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3730 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3734 */ return;
|
|
}
|
|
|
|
// fn_028B3738 @ 0x28b3738
|
|
void Gambit_fn_028B3738(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_028B3738: ; // 0x28b3738
|
|
/* 028B3738 */ cpu->r[0] = cpu->lr;
|
|
/* 028B373C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B373C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B373C */ cpu->r[1] = _t0;
|
|
/* 028B3740 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3740 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3744 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B3748 */ cpu->r[4] = cpu->r[5];
|
|
/* 028B374C */ cpu->r[5] = 0x00000010u;
|
|
/* 028B3750 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3750 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B3754 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3754 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B3758 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B375C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3760 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3760 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3760 */ if (_t5) goto L_028B379C; else goto L_028B3764;
|
|
L_028B3764: ; // 0x28b3764
|
|
/* 028B3764 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B3768 */ _t6 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3768 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B376C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B376C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B376C */ if (_t8) goto L_028B3770; else goto L_028B3780;
|
|
L_028B3770: ; // 0x28b3770
|
|
/* 028B3770 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B3774 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B3778 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3778 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B377C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B377C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B377C */ if (_t10) goto L_028B37BC; else goto L_028B3780;
|
|
L_028B3780: ; // 0x28b3780
|
|
/* 028B3780 */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 028B3780 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 028B3784 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3784 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3788 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3788 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B378C */ cpu->lr = cpu->r[0];
|
|
/* 028B3790 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3790 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3794 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3798 */ return;
|
|
L_028B379C: ; // 0x28b379c
|
|
/* 028B379C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B37A0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B37A0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B37A0 */ if (_t16) goto L_028B37A4; else goto L_028B37B4;
|
|
L_028B37A4: ; // 0x28b37a4
|
|
/* 028B37A4 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B37A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B37AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B37AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B37B0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B37B0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B37B0 */ if (_t18) goto L_028B37BC; else goto L_028B37B4;
|
|
L_028B37B4: ; // 0x28b37b4
|
|
/* 028B37B4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B37B8 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028B37B8 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
L_028B37BC: ; // 0x28b37bc
|
|
/* 028B37BC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B37BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B37C0 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028B37C0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B37C4 */ cpu->lr = cpu->r[0];
|
|
/* 028B37C8 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B37C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B37CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B37D0 */ return;
|
|
}
|
|
|
|
// fn_028B373C @ 0x28b373c
|
|
void Gambit_fn_028B373C(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_028B373C: ; // 0x28b373c
|
|
/* 028B373C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B373C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B373C */ cpu->r[1] = _t0;
|
|
/* 028B3740 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3740 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3744 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B3748 */ cpu->r[4] = cpu->r[5];
|
|
/* 028B374C */ cpu->r[5] = 0x00000010u;
|
|
/* 028B3750 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3750 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B3754 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3754 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B3758 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B375C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3760 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3760 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3760 */ if (_t5) goto L_028B379C; else goto L_028B3764;
|
|
L_028B3764: ; // 0x28b3764
|
|
/* 028B3764 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B3768 */ _t6 = cpu->r[3] + 0x00000004u;
|
|
/* 028B3768 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B376C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B376C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B376C */ if (_t8) goto L_028B3770; else goto L_028B3780;
|
|
L_028B3770: ; // 0x28b3770
|
|
/* 028B3770 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B3774 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B3778 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3778 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B377C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B377C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B377C */ if (_t10) goto L_028B37BC; else goto L_028B3780;
|
|
L_028B3780: ; // 0x28b3780
|
|
/* 028B3780 */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 028B3780 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 028B3784 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3784 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3788 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3788 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B378C */ cpu->lr = cpu->r[0];
|
|
/* 028B3790 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3790 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3794 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3798 */ return;
|
|
L_028B379C: ; // 0x28b379c
|
|
/* 028B379C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B37A0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B37A0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B37A0 */ if (_t16) goto L_028B37A4; else goto L_028B37B4;
|
|
L_028B37A4: ; // 0x28b37a4
|
|
/* 028B37A4 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B37A8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B37AC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B37AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B37B0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B37B0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B37B0 */ if (_t18) goto L_028B37BC; else goto L_028B37B4;
|
|
L_028B37B4: ; // 0x28b37b4
|
|
/* 028B37B4 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B37B8 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028B37B8 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
L_028B37BC: ; // 0x28b37bc
|
|
/* 028B37BC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B37BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B37C0 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 028B37C0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B37C4 */ cpu->lr = cpu->r[0];
|
|
/* 028B37C8 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B37C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B37CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B37D0 */ return;
|
|
}
|
|
|
|
// fn_028B37D4 @ 0x28b37d4
|
|
void Gambit_fn_028B37D4(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_028B37D4: ; // 0x28b37d4
|
|
/* 028B37D4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B37D8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B37D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B37D8 */ cpu->r[1] = _t0;
|
|
/* 028B37DC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B37DC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B37E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B37E0 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028B37E4 */ /* nop */
|
|
/* 028B37E8 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B37EC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B37EC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B37F0 */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028B37F0 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028B37F4 */ cpu->r[5] = 0x00000011u;
|
|
/* 028B37F8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B37FC */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B37FC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3800 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3804 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3808 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3808 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B380C */ _t6 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B380C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028B3810 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3810 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B3810 */ if (_t8) goto L_028B3848; else goto L_028B3814;
|
|
L_028B3814: ; // 0x28b3814
|
|
/* 028B3814 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3818 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B381C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3820 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3820 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3824 */ /* nop */
|
|
/* 028B3828 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028B3828 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B382C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B382C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3830 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3830 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t12);
|
|
/* 028B3834 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B3834 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B3834 */ if (_t14) goto L_028B3838; // else: addr-0 trap, fall-through
|
|
L_028B3838: ; // 0x28b3838
|
|
/* 028B3838 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3838 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B383C */ cpu->lr = cpu->r[0];
|
|
/* 028B3840 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B3844 */ return;
|
|
L_028B3848: ; // 0x28b3848
|
|
/* 028B3848 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3848 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B384C */ cpu->f[1] = cpu->f[31];
|
|
/* 028B3850 */ _t17 = cpu->r[1] + 0x00000018u;
|
|
/* 028B3850 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B3854 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3854 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B3858 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3858 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028B385C */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B385C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B385C */ if (_t21) goto L_028B3860; // else: addr-0 trap, fall-through
|
|
L_028B3860: ; // 0x28b3860
|
|
/* 028B3860 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3860 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B3864 */ cpu->lr = cpu->r[0];
|
|
/* 028B3868 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B386C */ return;
|
|
}
|
|
|
|
// fn_028B37D8 @ 0x28b37d8
|
|
void Gambit_fn_028B37D8(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_028B37D8: ; // 0x28b37d8
|
|
/* 028B37D8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B37D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B37D8 */ cpu->r[1] = _t0;
|
|
/* 028B37DC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B37DC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B37E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B37E0 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028B37E4 */ /* nop */
|
|
/* 028B37E8 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B37EC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B37EC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B37F0 */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028B37F0 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028B37F4 */ cpu->r[5] = 0x00000011u;
|
|
/* 028B37F8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B37FC */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B37FC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3800 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3804 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3808 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3808 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B380C */ _t6 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B380C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028B3810 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3810 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B3810 */ if (_t8) goto L_028B3848; else goto L_028B3814;
|
|
L_028B3814: ; // 0x28b3814
|
|
/* 028B3814 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3818 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B381C */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3820 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3820 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3824 */ /* nop */
|
|
/* 028B3828 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028B3828 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B382C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B382C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3830 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3830 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t12);
|
|
/* 028B3834 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B3834 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B3834 */ if (_t14) goto L_028B3838; // else: addr-0 trap, fall-through
|
|
L_028B3838: ; // 0x28b3838
|
|
/* 028B3838 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3838 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B383C */ cpu->lr = cpu->r[0];
|
|
/* 028B3840 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B3844 */ return;
|
|
L_028B3848: ; // 0x28b3848
|
|
/* 028B3848 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3848 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B384C */ cpu->f[1] = cpu->f[31];
|
|
/* 028B3850 */ _t17 = cpu->r[1] + 0x00000018u;
|
|
/* 028B3850 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B3854 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3854 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B3858 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3858 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028B385C */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B385C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B385C */ if (_t21) goto L_028B3860; // else: addr-0 trap, fall-through
|
|
L_028B3860: ; // 0x28b3860
|
|
/* 028B3860 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3860 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B3864 */ cpu->lr = cpu->r[0];
|
|
/* 028B3868 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B386C */ return;
|
|
}
|
|
|
|
// fn_028B3870 @ 0x28b3870
|
|
void Gambit_fn_028B3870(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_028B3870: ; // 0x28b3870
|
|
/* 028B3870 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3874 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B3874 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3874 */ cpu->r[1] = _t0;
|
|
/* 028B3878 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3878 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B387C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B387C */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028B3880 */ /* nop */
|
|
/* 028B3884 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B3888 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3888 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B388C */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028B388C */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028B3890 */ cpu->r[5] = 0x00000012u;
|
|
/* 028B3894 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3898 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3898 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B389C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B38A0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B38A4 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B38A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B38A8 */ _t6 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B38A8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028B38AC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B38AC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B38AC */ if (_t8) goto L_028B38E4; else goto L_028B38B0;
|
|
L_028B38B0: ; // 0x28b38b0
|
|
/* 028B38B0 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B38B4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B38B8 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B38BC */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B38BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B38C0 */ /* nop */
|
|
/* 028B38C4 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028B38C4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B38C8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B38C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B38CC */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B38CC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t12);
|
|
/* 028B38D0 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B38D0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B38D0 */ if (_t14) goto L_028B38D4; // else: addr-0 trap, fall-through
|
|
L_028B38D4: ; // 0x28b38d4
|
|
/* 028B38D4 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028B38D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B38D8 */ cpu->lr = cpu->r[0];
|
|
/* 028B38DC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B38E0 */ return;
|
|
L_028B38E4: ; // 0x28b38e4
|
|
/* 028B38E4 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B38E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B38E8 */ cpu->f[1] = cpu->f[31];
|
|
/* 028B38EC */ _t17 = cpu->r[1] + 0x00000018u;
|
|
/* 028B38EC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B38F0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B38F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B38F4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B38F4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028B38F8 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B38F8 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B38F8 */ if (_t21) goto L_028B38FC; // else: addr-0 trap, fall-through
|
|
L_028B38FC: ; // 0x28b38fc
|
|
/* 028B38FC */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B38FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B3900 */ cpu->lr = cpu->r[0];
|
|
/* 028B3904 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B3908 */ return;
|
|
}
|
|
|
|
// fn_028B3874 @ 0x28b3874
|
|
void Gambit_fn_028B3874(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_028B3874: ; // 0x28b3874
|
|
/* 028B3874 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B3874 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3874 */ cpu->r[1] = _t0;
|
|
/* 028B3878 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3878 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B387C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B387C */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028B3880 */ /* nop */
|
|
/* 028B3884 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B3888 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3888 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B388C */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028B388C */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 028B3890 */ cpu->r[5] = 0x00000012u;
|
|
/* 028B3894 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3898 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3898 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B389C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B38A0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B38A4 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B38A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B38A8 */ _t6 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B38A8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 028B38AC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B38AC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B38AC */ if (_t8) goto L_028B38E4; else goto L_028B38B0;
|
|
L_028B38B0: ; // 0x28b38b0
|
|
/* 028B38B0 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B38B4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B38B8 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B38BC */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B38BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B38C0 */ /* nop */
|
|
/* 028B38C4 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 028B38C4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B38C8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B38C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B38CC */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 028B38CC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t12);
|
|
/* 028B38D0 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B38D0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B38D0 */ if (_t14) goto L_028B38D4; // else: addr-0 trap, fall-through
|
|
L_028B38D4: ; // 0x28b38d4
|
|
/* 028B38D4 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028B38D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B38D8 */ cpu->lr = cpu->r[0];
|
|
/* 028B38DC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B38E0 */ return;
|
|
L_028B38E4: ; // 0x28b38e4
|
|
/* 028B38E4 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B38E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B38E8 */ cpu->f[1] = cpu->f[31];
|
|
/* 028B38EC */ _t17 = cpu->r[1] + 0x00000018u;
|
|
/* 028B38EC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B38F0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B38F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B38F4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B38F4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t19);
|
|
/* 028B38F8 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B38F8 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B38F8 */ if (_t21) goto L_028B38FC; // else: addr-0 trap, fall-through
|
|
L_028B38FC: ; // 0x28b38fc
|
|
/* 028B38FC */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 028B38FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B3900 */ cpu->lr = cpu->r[0];
|
|
/* 028B3904 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B3908 */ return;
|
|
}
|
|
|
|
// fn_028B390C @ 0x28b390c
|
|
void Gambit_fn_028B390C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B390C: ; // 0x28b390c
|
|
/* 028B390C */ cpu->r[0] = cpu->lr;
|
|
/* 028B3910 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3910 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3910 */ cpu->r[1] = _t0;
|
|
/* 028B3914 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3914 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3918 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3918 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B391C */ cpu->r[31] = cpu->r[5];
|
|
/* 028B3920 */ cpu->r[5] = 0x00000013u;
|
|
/* 028B3924 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3928 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3928 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B392C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3930 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3930 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3934 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3934 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3934 */ if (_t5) goto L_028B395C; else goto L_028B3938;
|
|
L_028B3938: ; // 0x28b3938
|
|
/* 028B3938 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B393C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B3940 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3944 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3944 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3948 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3948 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B394C */ cpu->lr = cpu->r[0];
|
|
/* 028B3950 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3950 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3954 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3958 */ return;
|
|
L_028B395C: ; // 0x28b395c
|
|
/* 028B395C */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B395C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3960 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3964 */ cpu->lr = cpu->r[0];
|
|
/* 028B3968 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3968 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B396C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B396C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3970 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3970 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3974 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3978 */ return;
|
|
}
|
|
|
|
// fn_028B3910 @ 0x28b3910
|
|
void Gambit_fn_028B3910(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B3910: ; // 0x28b3910
|
|
/* 028B3910 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3910 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3910 */ cpu->r[1] = _t0;
|
|
/* 028B3914 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3914 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3918 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3918 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B391C */ cpu->r[31] = cpu->r[5];
|
|
/* 028B3920 */ cpu->r[5] = 0x00000013u;
|
|
/* 028B3924 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3928 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3928 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B392C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3930 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3930 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B3934 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3934 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3934 */ if (_t5) goto L_028B395C; else goto L_028B3938;
|
|
L_028B3938: ; // 0x28b3938
|
|
/* 028B3938 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B393C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B3940 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B3944 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3944 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3948 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3948 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B394C */ cpu->lr = cpu->r[0];
|
|
/* 028B3950 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3950 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3954 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3958 */ return;
|
|
L_028B395C: ; // 0x28b395c
|
|
/* 028B395C */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B395C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3960 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3964 */ cpu->lr = cpu->r[0];
|
|
/* 028B3968 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3968 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B396C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B396C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3970 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3970 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3974 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3978 */ return;
|
|
}
|
|
|
|
// fn_028B397C @ 0x28b397c
|
|
void Gambit_fn_028B397C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B397C: ; // 0x28b397c
|
|
/* 028B397C */ cpu->r[0] = cpu->lr;
|
|
/* 028B3980 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3980 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3980 */ cpu->r[1] = _t0;
|
|
/* 028B3984 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3984 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3988 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3988 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B398C */ cpu->r[31] = cpu->r[5];
|
|
/* 028B3990 */ cpu->r[5] = 0x00000014u;
|
|
/* 028B3994 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3998 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3998 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B399C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B39A0 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B39A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B39A4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B39A4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B39A4 */ if (_t5) goto L_028B39CC; else goto L_028B39A8;
|
|
L_028B39A8: ; // 0x28b39a8
|
|
/* 028B39A8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B39AC */ cpu->r[3] = cpu->r[30];
|
|
/* 028B39B0 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B39B4 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B39B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B39B8 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B39B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B39BC */ cpu->lr = cpu->r[0];
|
|
/* 028B39C0 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B39C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B39C4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B39C8 */ return;
|
|
L_028B39CC: ; // 0x28b39cc
|
|
/* 028B39CC */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B39CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B39D0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B39D4 */ cpu->lr = cpu->r[0];
|
|
/* 028B39D8 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B39D8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B39DC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B39DC */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B39E0 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B39E0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B39E4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B39E8 */ return;
|
|
}
|
|
|
|
// fn_028B3980 @ 0x28b3980
|
|
void Gambit_fn_028B3980(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B3980: ; // 0x28b3980
|
|
/* 028B3980 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3980 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3980 */ cpu->r[1] = _t0;
|
|
/* 028B3984 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3984 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3988 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3988 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B398C */ cpu->r[31] = cpu->r[5];
|
|
/* 028B3990 */ cpu->r[5] = 0x00000014u;
|
|
/* 028B3994 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3998 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3998 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B399C */ Gambit_fn_028A8004(cpu);
|
|
/* 028B39A0 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B39A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B39A4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B39A4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B39A4 */ if (_t5) goto L_028B39CC; else goto L_028B39A8;
|
|
L_028B39A8: ; // 0x28b39a8
|
|
/* 028B39A8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B39AC */ cpu->r[3] = cpu->r[30];
|
|
/* 028B39B0 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028B39B4 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 028B39B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B39B8 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 028B39B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B39BC */ cpu->lr = cpu->r[0];
|
|
/* 028B39C0 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B39C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B39C4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B39C8 */ return;
|
|
L_028B39CC: ; // 0x28b39cc
|
|
/* 028B39CC */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B39CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B39D0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B39D4 */ cpu->lr = cpu->r[0];
|
|
/* 028B39D8 */ _t10 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B39D8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B39DC */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 028B39DC */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B39E0 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B39E0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B39E4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B39E8 */ return;
|
|
}
|
|
|
|
// fn_028B39EC @ 0x28b39ec
|
|
void Gambit_fn_028B39EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B39EC: ; // 0x28b39ec
|
|
/* 028B39EC */ cpu->r[0] = cpu->lr;
|
|
/* 028B39F0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B39F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B39F0 */ cpu->r[1] = _t0;
|
|
/* 028B39F4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B39F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B39F8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B39FC */ cpu->r[5] = 0x00000015u;
|
|
/* 028B3A00 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3A00 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3A04 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3A08 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3A0C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3A10 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B3A14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3A18 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3A18 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B3A18 */ if (_t4) goto L_028B3A1C; else goto L_028B3A24;
|
|
L_028B3A1C: ; // 0x28b3a1c
|
|
/* 028B3A1C */ cpu->r[3] = 0x10140000u;
|
|
/* 028B3A20 */ cpu->r[3] = cpu->r[3] + 0xFFFF8738u;
|
|
L_028B3A24: ; // 0x28b3a24
|
|
/* 028B3A24 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3A24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3A28 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3A28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3A2C */ cpu->lr = cpu->r[0];
|
|
/* 028B3A30 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3A34 */ return;
|
|
}
|
|
|
|
// fn_028B39F0 @ 0x28b39f0
|
|
void Gambit_fn_028B39F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B39F0: ; // 0x28b39f0
|
|
/* 028B39F0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B39F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B39F0 */ cpu->r[1] = _t0;
|
|
/* 028B39F4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B39F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B39F8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B39FC */ cpu->r[5] = 0x00000015u;
|
|
/* 028B3A00 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3A00 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3A04 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3A08 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3A0C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3A10 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B3A14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3A18 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3A18 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B3A18 */ if (_t4) goto L_028B3A1C; else goto L_028B3A24;
|
|
L_028B3A1C: ; // 0x28b3a1c
|
|
/* 028B3A1C */ cpu->r[3] = 0x10140000u;
|
|
/* 028B3A20 */ cpu->r[3] = cpu->r[3] + 0xFFFF8738u;
|
|
L_028B3A24: ; // 0x28b3a24
|
|
/* 028B3A24 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3A24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3A28 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3A28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3A2C */ cpu->lr = cpu->r[0];
|
|
/* 028B3A30 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3A34 */ return;
|
|
}
|
|
|
|
// fn_028B3A38 @ 0x28b3a38
|
|
void Gambit_fn_028B3A38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B3A38: ; // 0x28b3a38
|
|
/* 028B3A38 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3A3C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3A3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3A3C */ cpu->r[1] = _t0;
|
|
/* 028B3A40 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3A40 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3A44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3A48 */ cpu->r[5] = 0x00000016u;
|
|
/* 028B3A4C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3A4C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3A50 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3A54 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3A58 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3A5C */ Gambit_fn_028A806C(cpu);
|
|
/* 028B3A60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3A64 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3A64 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B3A64 */ if (_t4) goto L_028B3A68; else goto L_028B3A70;
|
|
L_028B3A68: ; // 0x28b3a68
|
|
/* 028B3A68 */ cpu->r[3] = 0x10140000u;
|
|
/* 028B3A6C */ cpu->r[3] = cpu->r[3] + 0xFFFF8739u;
|
|
L_028B3A70: ; // 0x28b3a70
|
|
/* 028B3A70 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3A70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3A74 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3A74 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3A78 */ cpu->lr = cpu->r[0];
|
|
/* 028B3A7C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3A80 */ return;
|
|
}
|
|
|
|
// fn_028B3A3C @ 0x28b3a3c
|
|
void Gambit_fn_028B3A3C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B3A3C: ; // 0x28b3a3c
|
|
/* 028B3A3C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3A3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3A3C */ cpu->r[1] = _t0;
|
|
/* 028B3A40 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3A40 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3A44 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3A48 */ cpu->r[5] = 0x00000016u;
|
|
/* 028B3A4C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3A4C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3A50 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B3A54 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3A58 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3A5C */ Gambit_fn_028A806C(cpu);
|
|
/* 028B3A60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3A64 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3A64 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B3A64 */ if (_t4) goto L_028B3A68; else goto L_028B3A70;
|
|
L_028B3A68: ; // 0x28b3a68
|
|
/* 028B3A68 */ cpu->r[3] = 0x10140000u;
|
|
/* 028B3A6C */ cpu->r[3] = cpu->r[3] + 0xFFFF8739u;
|
|
L_028B3A70: ; // 0x28b3a70
|
|
/* 028B3A70 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3A70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B3A74 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3A74 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3A78 */ cpu->lr = cpu->r[0];
|
|
/* 028B3A7C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3A80 */ return;
|
|
}
|
|
|
|
// fn_028B3A84 @ 0x28b3a84
|
|
void Gambit_fn_028B3A84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B3A84: ; // 0x28b3a84
|
|
/* 028B3A84 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3A88 */ cpu->r[6] = cpu->r[5];
|
|
/* 028B3A8C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B3A8C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B3A90 */ cpu->r[5] = 0x00000009u;
|
|
/* 028B3A94 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3A94 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B3A94 */ cpu->r[1] = _t1;
|
|
/* 028B3A98 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3A9C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3A9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B3AA0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3AA4 */ cpu->lr = cpu->r[0];
|
|
/* 028B3AA8 */ _t3 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3AA8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028B3AAC */ /* nop */
|
|
/* 028B3AB0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3AB4 */ return;
|
|
}
|
|
|
|
// fn_028B3A94 @ 0x28b3a94
|
|
void Gambit_fn_028B3A94(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028B3A94: ; // 0x28b3a94
|
|
/* 028B3A94 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3A94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3A94 */ cpu->r[1] = _t0;
|
|
/* 028B3A98 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3A9C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3A9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B3AA0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3AA4 */ cpu->lr = cpu->r[0];
|
|
/* 028B3AA8 */ _t2 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3AA8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028B3AAC */ /* nop */
|
|
/* 028B3AB0 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3AB4 */ return;
|
|
}
|
|
|
|
// fn_028B3AB8 @ 0x28b3ab8
|
|
void Gambit_fn_028B3AB8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B3AB8: ; // 0x28b3ab8
|
|
/* 028B3AB8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3ABC */ cpu->r[6] = cpu->r[5];
|
|
/* 028B3AC0 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B3AC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B3AC4 */ cpu->r[5] = 0x0000000Cu;
|
|
/* 028B3AC8 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3AC8 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B3AC8 */ cpu->r[1] = _t1;
|
|
/* 028B3ACC */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3AD0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3AD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B3AD4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3AD8 */ cpu->lr = cpu->r[0];
|
|
/* 028B3ADC */ _t3 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3ADC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 028B3AE0 */ /* nop */
|
|
/* 028B3AE4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3AE8 */ return;
|
|
}
|
|
|
|
// fn_028B3AC8 @ 0x28b3ac8
|
|
void Gambit_fn_028B3AC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028B3AC8: ; // 0x28b3ac8
|
|
/* 028B3AC8 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B3AC8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3AC8 */ cpu->r[1] = _t0;
|
|
/* 028B3ACC */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3AD0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3AD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B3AD4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3AD8 */ cpu->lr = cpu->r[0];
|
|
/* 028B3ADC */ _t2 = cpu->r[12] + 0xFFFF8728u;
|
|
/* 028B3ADC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 028B3AE0 */ /* nop */
|
|
/* 028B3AE4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B3AE8 */ return;
|
|
}
|
|
|
|
// fn_028B3AEC @ 0x28b3aec
|
|
void Gambit_fn_028B3AEC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028A8B58: ; // 0x28a8b58
|
|
/* 028A8B58 */ cpu->r[0] = cpu->lr;
|
|
/* 028A8B5C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028A8B5C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028A8B5C */ cpu->r[1] = _t0;
|
|
/* 028A8B60 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028A8B60 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028A8B64 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A8B64 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028A8B68 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028A8B68 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028A8B6C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028A8B6C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028A8B70 */ cpu->r[29] = cpu->r[6];
|
|
/* 028A8B74 */ _t5 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028A8B74 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028A8B78 */ _t6 = cpu->r[11] + 0x0000003Cu;
|
|
/* 028A8B78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028A8B7C */ cpu->r[30] = cpu->r[4] + 0x00000004u;
|
|
/* 028A8B80 */ cpu->ctr = cpu->r[0];
|
|
/* 028A8B84 */ cpu->r[4] = cpu->r[5];
|
|
/* 028A8B88 */ cpu->r[31] = cpu->r[3];
|
|
/* 028A8B8C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028A8B90 */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028A8B94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028A8B98 */ cpu->r[5] = cpu->r[29];
|
|
/* 028A8B9C */ cpu->r[4] = cpu->r[30] + cpu->r[0];
|
|
/* 028A8BA0 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028A8BA4 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A8BA4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028A8BA8 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028A8BA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028A8BAC */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028A8BAC */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028A8BB0 */ cpu->lr = cpu->r[0];
|
|
/* 028A8BB4 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028A8BB4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028A8BB8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028A8BBC */ return;
|
|
L_028B3AEC: ; // 0x28b3aec
|
|
/* 028B3AEC */ cpu->r[6] = cpu->r[5];
|
|
/* 028B3AF0 */ cpu->r[5] = 0x0000000Du;
|
|
/* 028B3AF4 */ goto L_028A8B58;
|
|
}
|
|
|
|
// fn_028B3AF8 @ 0x28b3af8
|
|
void Gambit_fn_028B3AF8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028A8B58: ; // 0x28a8b58
|
|
/* 028A8B58 */ cpu->r[0] = cpu->lr;
|
|
/* 028A8B5C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028A8B5C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028A8B5C */ cpu->r[1] = _t0;
|
|
/* 028A8B60 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028A8B60 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028A8B64 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A8B64 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028A8B68 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028A8B68 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028A8B6C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028A8B6C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028A8B70 */ cpu->r[29] = cpu->r[6];
|
|
/* 028A8B74 */ _t5 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028A8B74 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028A8B78 */ _t6 = cpu->r[11] + 0x0000003Cu;
|
|
/* 028A8B78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028A8B7C */ cpu->r[30] = cpu->r[4] + 0x00000004u;
|
|
/* 028A8B80 */ cpu->ctr = cpu->r[0];
|
|
/* 028A8B84 */ cpu->r[4] = cpu->r[5];
|
|
/* 028A8B88 */ cpu->r[31] = cpu->r[3];
|
|
/* 028A8B8C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028A8B90 */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028A8B94 */ cpu->r[3] = cpu->r[31];
|
|
/* 028A8B98 */ cpu->r[5] = cpu->r[29];
|
|
/* 028A8B9C */ cpu->r[4] = cpu->r[30] + cpu->r[0];
|
|
/* 028A8BA0 */ Gambit_fn_028A84D4(cpu);
|
|
/* 028A8BA4 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A8BA4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028A8BA8 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028A8BA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028A8BAC */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028A8BAC */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028A8BB0 */ cpu->lr = cpu->r[0];
|
|
/* 028A8BB4 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028A8BB4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028A8BB8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028A8BBC */ return;
|
|
L_028B3AF8: ; // 0x28b3af8
|
|
/* 028B3AF8 */ cpu->r[6] = cpu->r[5];
|
|
/* 028B3AFC */ cpu->r[5] = 0x00000013u;
|
|
/* 028B3B00 */ goto L_028A8B58;
|
|
}
|
|
|
|
// fn_028B3B04 @ 0x28b3b04
|
|
void Gambit_fn_028B3B04(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B3B04: ; // 0x28b3b04
|
|
/* 028B3B04 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3B08 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3B08 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3B08 */ cpu->r[1] = _t0;
|
|
/* 028B3B0C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3B0C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3B10 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3B14 */ cpu->r[5] = 0x00000015u;
|
|
/* 028B3B18 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3B18 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3B1C */ Gambit_fn_028A8A64(cpu);
|
|
/* 028B3B20 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3B24 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3B28 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B3B2C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3B2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B3B30 */ cpu->lr = cpu->r[0];
|
|
/* 028B3B34 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3B34 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B3B38 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3B3C */ return;
|
|
}
|
|
|
|
// fn_028B3B08 @ 0x28b3b08
|
|
void Gambit_fn_028B3B08(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B3B08: ; // 0x28b3b08
|
|
/* 028B3B08 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3B08 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3B08 */ cpu->r[1] = _t0;
|
|
/* 028B3B0C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3B0C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3B10 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3B14 */ cpu->r[5] = 0x00000015u;
|
|
/* 028B3B18 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3B18 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3B1C */ Gambit_fn_028A8A64(cpu);
|
|
/* 028B3B20 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B3B24 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3B28 */ Gambit_fn_028A806C(cpu);
|
|
/* 028B3B2C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3B2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B3B30 */ cpu->lr = cpu->r[0];
|
|
/* 028B3B34 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3B34 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B3B38 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3B3C */ return;
|
|
}
|
|
|
|
// fn_028B3B40 @ 0x28b3b40
|
|
void Gambit_fn_028B3B40(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B3B40: ; // 0x28b3b40
|
|
/* 028B3B40 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3B44 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B3B44 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3B44 */ cpu->r[1] = _t0;
|
|
/* 028B3B48 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3B48 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3B4C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3B4C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B3B50 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3B50 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B3B54 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B3B58 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B3B5C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3B5C */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B3B60 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3B60 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3B64 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B3B68 */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B3B6C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3B70 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3B74 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B3B78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3B7C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3B80 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3B80 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B3B80 */ if (_t7) goto L_028B3BB4; else goto L_028B3B84;
|
|
L_028B3B84: ; // 0x28b3b84
|
|
/* 028B3B84 */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B3B88 */ cpu->r[6] = cpu->r[30];
|
|
/* 028B3B8C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3B90 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3B94 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3B94 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3B98 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3B98 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3B9C */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B3BA0 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3BA0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3BA4 */ cpu->lr = cpu->r[0];
|
|
/* 028B3BA8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3BA8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3BAC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3BB0 */ return;
|
|
L_028B3BB4: ; // 0x28b3bb4
|
|
/* 028B3BB4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3BB8 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B3BBC */ Gambit_fn_028B3658(cpu);
|
|
/* 028B3BC0 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3BC0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3BC4 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3BC4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3BC8 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3BC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B3BCC */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3BCC */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3BD0 */ cpu->lr = cpu->r[0];
|
|
/* 028B3BD4 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3BD4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3BD8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3BDC */ return;
|
|
}
|
|
|
|
// fn_028B3B44 @ 0x28b3b44
|
|
void Gambit_fn_028B3B44(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B3B44: ; // 0x28b3b44
|
|
/* 028B3B44 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B3B44 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3B44 */ cpu->r[1] = _t0;
|
|
/* 028B3B48 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3B48 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3B4C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3B4C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B3B50 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3B50 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B3B54 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B3B58 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B3B5C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3B5C */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B3B60 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3B60 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3B64 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B3B68 */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B3B6C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3B70 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3B74 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B3B78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3B7C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3B80 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3B80 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B3B80 */ if (_t7) goto L_028B3BB4; else goto L_028B3B84;
|
|
L_028B3B84: ; // 0x28b3b84
|
|
/* 028B3B84 */ cpu->r[5] = 0x0000000Eu;
|
|
/* 028B3B88 */ cpu->r[6] = cpu->r[30];
|
|
/* 028B3B8C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3B90 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3B94 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3B94 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3B98 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3B98 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3B9C */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3B9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B3BA0 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3BA0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3BA4 */ cpu->lr = cpu->r[0];
|
|
/* 028B3BA8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3BA8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3BAC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3BB0 */ return;
|
|
L_028B3BB4: ; // 0x28b3bb4
|
|
/* 028B3BB4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3BB8 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B3BBC */ Gambit_fn_028B3658(cpu);
|
|
/* 028B3BC0 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3BC0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3BC4 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3BC4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3BC8 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3BC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B3BCC */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3BCC */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3BD0 */ cpu->lr = cpu->r[0];
|
|
/* 028B3BD4 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3BD4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3BD8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3BDC */ return;
|
|
}
|
|
|
|
// fn_028B3BE0 @ 0x28b3be0
|
|
void Gambit_fn_028B3BE0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B3BE0: ; // 0x28b3be0
|
|
/* 028B3BE0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3BE4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B3BE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3BE4 */ cpu->r[1] = _t0;
|
|
/* 028B3BE8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3BE8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3BEC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3BEC */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B3BF0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3BF0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B3BF4 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B3BF8 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B3BFC */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3BFC */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B3C00 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3C00 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3C04 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B3C08 */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B3C0C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3C10 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3C14 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B3C18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3C1C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3C20 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3C20 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B3C20 */ if (_t7) goto L_028B3C54; else goto L_028B3C24;
|
|
L_028B3C24: ; // 0x28b3c24
|
|
/* 028B3C24 */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B3C28 */ cpu->r[6] = cpu->r[30];
|
|
/* 028B3C2C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3C30 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3C34 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3C34 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3C38 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3C38 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3C3C */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3C3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B3C40 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3C40 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3C44 */ cpu->lr = cpu->r[0];
|
|
/* 028B3C48 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3C48 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3C4C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3C50 */ return;
|
|
L_028B3C54: ; // 0x28b3c54
|
|
/* 028B3C54 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3C58 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B3C5C */ Gambit_fn_028B36C8(cpu);
|
|
/* 028B3C60 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3C60 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3C64 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3C64 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3C68 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3C68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B3C6C */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3C6C */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3C70 */ cpu->lr = cpu->r[0];
|
|
/* 028B3C74 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3C74 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3C78 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3C7C */ return;
|
|
}
|
|
|
|
// fn_028B3BE4 @ 0x28b3be4
|
|
void Gambit_fn_028B3BE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B3BE4: ; // 0x28b3be4
|
|
/* 028B3BE4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B3BE4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3BE4 */ cpu->r[1] = _t0;
|
|
/* 028B3BE8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3BE8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3BEC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3BEC */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B3BF0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3BF0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B3BF4 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B3BF8 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B3BFC */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3BFC */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B3C00 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3C00 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3C04 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B3C08 */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B3C0C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3C10 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3C14 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B3C18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3C1C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3C20 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3C20 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B3C20 */ if (_t7) goto L_028B3C54; else goto L_028B3C24;
|
|
L_028B3C24: ; // 0x28b3c24
|
|
/* 028B3C24 */ cpu->r[5] = 0x0000000Fu;
|
|
/* 028B3C28 */ cpu->r[6] = cpu->r[30];
|
|
/* 028B3C2C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3C30 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3C34 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3C34 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3C38 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3C38 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3C3C */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3C3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B3C40 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3C40 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3C44 */ cpu->lr = cpu->r[0];
|
|
/* 028B3C48 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3C48 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3C4C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3C50 */ return;
|
|
L_028B3C54: ; // 0x28b3c54
|
|
/* 028B3C54 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3C58 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B3C5C */ Gambit_fn_028B36C8(cpu);
|
|
/* 028B3C60 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3C60 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3C64 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3C64 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3C68 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3C68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B3C6C */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3C6C */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3C70 */ cpu->lr = cpu->r[0];
|
|
/* 028B3C74 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3C74 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3C78 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3C7C */ return;
|
|
}
|
|
|
|
// fn_028B3C80 @ 0x28b3c80
|
|
void Gambit_fn_028B3C80(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B3C80: ; // 0x28b3c80
|
|
/* 028B3C80 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3C84 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B3C84 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3C84 */ cpu->r[1] = _t0;
|
|
/* 028B3C88 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3C88 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3C8C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3C8C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B3C90 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3C90 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B3C94 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B3C98 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B3C9C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3C9C */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B3CA0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3CA0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3CA4 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B3CA8 */ cpu->r[5] = 0x00000011u;
|
|
/* 028B3CAC */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3CB0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3CB4 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B3CB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3CBC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3CC0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3CC0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B3CC0 */ if (_t7) goto L_028B3CF4; else goto L_028B3CC4;
|
|
L_028B3CC4: ; // 0x28b3cc4
|
|
/* 028B3CC4 */ cpu->r[5] = 0x00000011u;
|
|
/* 028B3CC8 */ cpu->r[6] = cpu->r[30];
|
|
/* 028B3CCC */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3CD0 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3CD4 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3CD4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3CD8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3CD8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3CDC */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3CDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B3CE0 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3CE0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3CE4 */ cpu->lr = cpu->r[0];
|
|
/* 028B3CE8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3CE8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3CEC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3CF0 */ return;
|
|
L_028B3CF4: ; // 0x28b3cf4
|
|
/* 028B3CF4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3CF8 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B3CFC */ Gambit_fn_028B37D4(cpu);
|
|
/* 028B3D00 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3D00 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3D04 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3D04 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3D08 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3D08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B3D0C */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3D0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3D10 */ cpu->lr = cpu->r[0];
|
|
/* 028B3D14 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3D14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3D18 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3D1C */ return;
|
|
}
|
|
|
|
// fn_028B3C84 @ 0x28b3c84
|
|
void Gambit_fn_028B3C84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B3C84: ; // 0x28b3c84
|
|
/* 028B3C84 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B3C84 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3C84 */ cpu->r[1] = _t0;
|
|
/* 028B3C88 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3C88 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3C8C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3C8C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B3C90 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3C90 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B3C94 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B3C98 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B3C9C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3C9C */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B3CA0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3CA0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3CA4 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B3CA8 */ cpu->r[5] = 0x00000011u;
|
|
/* 028B3CAC */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3CB0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3CB4 */ Gambit_fn_028A89E8(cpu);
|
|
/* 028B3CB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3CBC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3CC0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3CC0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B3CC0 */ if (_t7) goto L_028B3CF4; else goto L_028B3CC4;
|
|
L_028B3CC4: ; // 0x28b3cc4
|
|
/* 028B3CC4 */ cpu->r[5] = 0x00000011u;
|
|
/* 028B3CC8 */ cpu->r[6] = cpu->r[30];
|
|
/* 028B3CCC */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3CD0 */ Gambit_fn_028A8B58(cpu);
|
|
/* 028B3CD4 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3CD4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B3CD8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3CD8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3CDC */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3CDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B3CE0 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3CE0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B3CE4 */ cpu->lr = cpu->r[0];
|
|
/* 028B3CE8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3CE8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3CEC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3CF0 */ return;
|
|
L_028B3CF4: ; // 0x28b3cf4
|
|
/* 028B3CF4 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B3CF8 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B3CFC */ Gambit_fn_028B37D4(cpu);
|
|
/* 028B3D00 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3D00 */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3D04 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3D04 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B3D08 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3D08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B3D0C */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3D0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3D10 */ cpu->lr = cpu->r[0];
|
|
/* 028B3D14 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3D14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3D18 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3D1C */ return;
|
|
}
|
|
|
|
// fn_028B3D20 @ 0x28b3d20
|
|
void Gambit_fn_028B3D20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B3D20: ; // 0x28b3d20
|
|
/* 028B3D20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000011u);
|
|
/* 028B3D24 */ _t0 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B3D24 */ _t1 = _t0 & 0x00000001u;
|
|
/* 028B3D24 */ if (_t1) goto L_028B3D28; else goto L_028B3D48;
|
|
L_028B3D28: ; // 0x28b3d28
|
|
/* 028B3D28 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000009u);
|
|
/* 028B3D2C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3D2C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B3D2C */ if (_t3) goto L_028B3D68; else goto L_028B3D30;
|
|
L_028B3D30: ; // 0x28b3d30
|
|
/* 028B3D30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x0000000Cu);
|
|
/* 028B3D34 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B3D34 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3D34 */ if (_t5) goto L_028B3D94; else goto L_028B3D38;
|
|
L_028B3D38: ; // 0x28b3d38
|
|
/* 028B3D38 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x0000000Fu);
|
|
/* 028B3D3C */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B3D3C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B3D3C */ if (_t7) goto L_028B3D40; else goto L_028B3D70;
|
|
L_028B3D40: ; // 0x28b3d40
|
|
/* 028B3D40 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028B3D44 */ return;
|
|
L_028B3D48: ; // 0x28b3d48
|
|
/* 028B3D48 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000011u);
|
|
/* 028B3D4C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3D4C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B3D4C */ if (_t9) goto L_028B3D7C; else goto L_028B3D50;
|
|
L_028B3D50: ; // 0x28b3d50
|
|
/* 028B3D50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000013u);
|
|
/* 028B3D54 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3D54 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B3D54 */ if (_t11) goto L_028B3D84; else goto L_028B3D58;
|
|
L_028B3D58: ; // 0x28b3d58
|
|
/* 028B3D58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000015u);
|
|
/* 028B3D5C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3D5C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B3D5C */ if (_t13) goto L_028B3D8C; else goto L_028B3D60;
|
|
L_028B3D60: ; // 0x28b3d60
|
|
/* 028B3D60 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028B3D64 */ return;
|
|
L_028B3D68: ; // 0x28b3d68
|
|
/* 028B3D68 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B3D6C */ return;
|
|
L_028B3D70: ; // 0x28b3d70
|
|
/* 028B3D70 */ cpu->r[12] = cpu->r[4] + 0x10140000u;
|
|
/* 028B3D74 */ _t14 = cpu->r[12] + 0xFFFF8730u;
|
|
/* 028B3D74 */ cpu->r[3] = rbrew_read8(cpu->mem, _t14);
|
|
/* 028B3D78 */ return;
|
|
L_028B3D7C: ; // 0x28b3d7c
|
|
/* 028B3D7C */ cpu->r[3] = 0x00000005u;
|
|
/* 028B3D80 */ return;
|
|
L_028B3D84: ; // 0x28b3d84
|
|
/* 028B3D84 */ cpu->r[3] = 0x00000006u;
|
|
/* 028B3D88 */ return;
|
|
L_028B3D8C: ; // 0x28b3d8c
|
|
/* 028B3D8C */ cpu->r[3] = 0x00000007u;
|
|
/* 028B3D90 */ return;
|
|
L_028B3D94: ; // 0x28b3d94
|
|
/* 028B3D94 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028B3D98 */ return;
|
|
}
|
|
|
|
// fn_028B3D9C @ 0x28b3d9c
|
|
void Gambit_fn_028B3D9C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028A89E8: ; // 0x28a89e8
|
|
/* 028A89E8 */ cpu->r[0] = cpu->lr;
|
|
/* 028A89EC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028A89EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028A89EC */ cpu->r[1] = _t0;
|
|
/* 028A89F0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A89F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028A89F4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028A89F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028A89F8 */ _t3 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028A89F8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028A89FC */ _t4 = cpu->r[10] + 0x0000003Cu;
|
|
/* 028A89FC */ cpu->r[7] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028A8A00 */ cpu->r[31] = cpu->r[4];
|
|
/* 028A8A04 */ cpu->ctr = cpu->r[7];
|
|
/* 028A8A08 */ cpu->r[4] = cpu->r[5];
|
|
/* 028A8A0C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028A8A10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028A8A14 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028A8A14 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028A8A14 */ if (_t6) goto L_028A8A20; else goto L_028A8A18;
|
|
L_028A8A18: ; // 0x28a8a18
|
|
/* 028A8A18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028A8A1C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028A8A1C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028A8A1C */ if (_t8) goto L_028A8A20; else goto L_028A8A38;
|
|
L_028A8A20: ; // 0x28a8a20
|
|
/* 028A8A20 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028A8A20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028A8A24 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A8A24 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028A8A28 */ cpu->lr = cpu->r[0];
|
|
/* 028A8A2C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028A8A30 */ cpu->r[3] = 0x00000000u;
|
|
/* 028A8A34 */ return;
|
|
L_028A8A38: ; // 0x28a8a38
|
|
/* 028A8A38 */ cpu->r[9] = 0x00000001u;
|
|
/* 028A8A3C */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 028A8A3C */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028A8A40 */ /* nop */
|
|
/* 028A8A44 */ cpu->r[11] = cpu->r[12] & cpu->r[8];
|
|
/* 028A8A48 */ cpu->r[0] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028A8A4C */ cpu->r[3] = cpu->r[11] - cpu->r[0];
|
|
/* 028A8A50 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028A8A50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028A8A54 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028A8A54 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028A8A58 */ cpu->lr = cpu->r[0];
|
|
/* 028A8A5C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028A8A60 */ return;
|
|
L_028B3D9C: ; // 0x28b3d9c
|
|
/* 028B3D9C */ cpu->r[5] = 0x00000015u;
|
|
/* 028B3DA0 */ goto L_028A89E8;
|
|
}
|
|
|
|
// fn_028B3DA4 @ 0x28b3da4
|
|
void Gambit_fn_028B3DA4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028B3DA4: ; // 0x28b3da4
|
|
/* 028B3DA4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3DA8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3DA8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3DA8 */ cpu->r[1] = _t0;
|
|
/* 028B3DAC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3DAC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3DB0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3DB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B3DB4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3DB4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3DB8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3DB8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B3DB8 */ if (_t4) goto L_028B3DBC; else goto L_028B3DCC;
|
|
L_028B3DBC: ; // 0x28b3dbc
|
|
/* 028B3DBC */ cpu->r[3] = 0x00000074u;
|
|
/* 028B3DC0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B3DC4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3DC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B3DC8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3DC8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B3DC8 */ if (_t6) goto L_028B3DF4; else goto L_028B3DCC;
|
|
L_028B3DCC: ; // 0x28b3dcc
|
|
/* 028B3DCC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3DD0 */ Gambit_fn_028AA370(cpu);
|
|
/* 028B3DD4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3DD8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B3DDC */ cpu->r[12] = cpu->r[12] + 0xFFFF88CCu;
|
|
/* 028B3DE0 */ _t7 = cpu->r[31] + 0x00000060u;
|
|
/* 028B3DE0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028B3DE4 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028B3DE4 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028B3DE8 */ _t9 = cpu->r[31] + 0x00000068u;
|
|
/* 028B3DE8 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028B3DEC */ _t10 = cpu->r[31] + 0x00000070u;
|
|
/* 028B3DEC */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B3DF0 */ _t11 = cpu->r[31] + 0x00000064u;
|
|
/* 028B3DF0 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B3DF4: ; // 0x28b3df4
|
|
/* 028B3DF4 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3DF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3DF8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3DFC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3DFC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3E00 */ cpu->lr = cpu->r[0];
|
|
/* 028B3E04 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3E08 */ return;
|
|
}
|
|
|
|
// fn_028B3DA8 @ 0x28b3da8
|
|
void Gambit_fn_028B3DA8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028B3DA8: ; // 0x28b3da8
|
|
/* 028B3DA8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B3DA8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3DA8 */ cpu->r[1] = _t0;
|
|
/* 028B3DAC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3DAC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B3DB0 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3DB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B3DB4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3DB4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B3DB8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3DB8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B3DB8 */ if (_t4) goto L_028B3DBC; else goto L_028B3DCC;
|
|
L_028B3DBC: ; // 0x28b3dbc
|
|
/* 028B3DBC */ cpu->r[3] = 0x00000074u;
|
|
/* 028B3DC0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B3DC4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3DC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B3DC8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3DC8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B3DC8 */ if (_t6) goto L_028B3DF4; else goto L_028B3DCC;
|
|
L_028B3DCC: ; // 0x28b3dcc
|
|
/* 028B3DCC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3DD0 */ Gambit_fn_028AA370(cpu);
|
|
/* 028B3DD4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B3DD8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B3DDC */ cpu->r[12] = cpu->r[12] + 0xFFFF88CCu;
|
|
/* 028B3DE0 */ _t7 = cpu->r[31] + 0x00000060u;
|
|
/* 028B3DE0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028B3DE4 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028B3DE4 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 028B3DE8 */ _t9 = cpu->r[31] + 0x00000068u;
|
|
/* 028B3DE8 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028B3DEC */ _t10 = cpu->r[31] + 0x00000070u;
|
|
/* 028B3DEC */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B3DF0 */ _t11 = cpu->r[31] + 0x00000064u;
|
|
/* 028B3DF0 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B3DF4: ; // 0x28b3df4
|
|
/* 028B3DF4 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3DF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B3DF8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3DFC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3DFC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3E00 */ cpu->lr = cpu->r[0];
|
|
/* 028B3E04 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B3E08 */ return;
|
|
}
|
|
|
|
// fn_028B3E0C @ 0x28b3e0c
|
|
void Gambit_fn_028B3E0C(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_028B3E0C: ; // 0x28b3e0c
|
|
/* 028B3E0C */ cpu->r[0] = cpu->lr;
|
|
/* 028B3E10 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B3E10 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3E10 */ cpu->r[1] = _t0;
|
|
/* 028B3E14 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3E14 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3E18 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3E18 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B3E1C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3E1C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B3E20 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3E20 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B3E24 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3E24 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3E28 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028B3E2C */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3E30 */ _t6 = cpu->r[29] + 0xFFFF9A68u;
|
|
/* 028B3E30 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3E30 */ cpu->r[29] = _t6;
|
|
/* 028B3E34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3E38 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3E38 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B3E38 */ if (_t8) goto L_028B3E3C; else goto L_028B3E8C;
|
|
L_028B3E3C: ; // 0x28b3e3c
|
|
/* 028B3E3C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B3E40 */ cpu->r[3] = 0x00000074u;
|
|
/* 028B3E44 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B3E48 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B3E4C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3E50 */ cpu->r[28] = cpu->r[31] + 0x00000050u;
|
|
/* 028B3E50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B3E54 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3E54 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B3E54 */ if (_t10) goto L_028B3E74; else goto L_028B3E58;
|
|
L_028B3E58: ; // 0x28b3e58
|
|
/* 028B3E58 */ cpu->r[5] = 0x00000003u;
|
|
/* 028B3E5C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B3E60 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B3E64 */ Gambit_fn_02821D88(cpu);
|
|
/* 028B3E68 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B3E6C */ cpu->r[0] = cpu->r[0] + 0xFFFF88BCu;
|
|
/* 028B3E70 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B3E70 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B3E74: ; // 0x28b3e74
|
|
/* 028B3E74 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B3E78 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3E78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3E7C */ _t12 = cpu->r[12] + 0xFFFF9A70u;
|
|
/* 028B3E7C */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028B3E80 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3E80 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B3E80 */ if (_t14) goto L_028B3E88; else goto L_028B3E84;
|
|
L_028B3E84: ; // 0x28b3e84
|
|
/* 028B3E84 */ Gambit_fn_028B3DA4(cpu);
|
|
L_028B3E88: ; // 0x28b3e88
|
|
/* 028B3E88 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028B3E88 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028B3E8C: ; // 0x28b3e8c
|
|
/* 028B3E8C */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3E8C */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3E90 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3E90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3E94 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3E94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B3E98 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3E98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B3E9C */ cpu->lr = cpu->r[0];
|
|
/* 028B3EA0 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3EA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B3EA4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3EA8 */ return;
|
|
}
|
|
|
|
// fn_028B3E10 @ 0x28b3e10
|
|
void Gambit_fn_028B3E10(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_028B3E10: ; // 0x28b3e10
|
|
/* 028B3E10 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B3E10 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3E10 */ cpu->r[1] = _t0;
|
|
/* 028B3E14 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3E14 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B3E18 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3E18 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B3E1C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3E1C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B3E20 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3E20 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B3E24 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3E24 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B3E28 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028B3E2C */ cpu->r[30] = cpu->r[3];
|
|
/* 028B3E30 */ _t6 = cpu->r[29] + 0xFFFF9A68u;
|
|
/* 028B3E30 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B3E30 */ cpu->r[29] = _t6;
|
|
/* 028B3E34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3E38 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3E38 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B3E38 */ if (_t8) goto L_028B3E3C; else goto L_028B3E8C;
|
|
L_028B3E3C: ; // 0x28b3e3c
|
|
/* 028B3E3C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B3E40 */ cpu->r[3] = 0x00000074u;
|
|
/* 028B3E44 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B3E48 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B3E4C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3E50 */ cpu->r[28] = cpu->r[31] + 0x00000050u;
|
|
/* 028B3E50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B3E54 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3E54 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B3E54 */ if (_t10) goto L_028B3E74; else goto L_028B3E58;
|
|
L_028B3E58: ; // 0x28b3e58
|
|
/* 028B3E58 */ cpu->r[5] = 0x00000003u;
|
|
/* 028B3E5C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B3E60 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B3E64 */ Gambit_fn_02821D88(cpu);
|
|
/* 028B3E68 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B3E6C */ cpu->r[0] = cpu->r[0] + 0xFFFF88BCu;
|
|
/* 028B3E70 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B3E70 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B3E74: ; // 0x28b3e74
|
|
/* 028B3E74 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B3E78 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3E78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3E7C */ _t12 = cpu->r[12] + 0xFFFF9A70u;
|
|
/* 028B3E7C */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 028B3E80 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3E80 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B3E80 */ if (_t14) goto L_028B3E88; else goto L_028B3E84;
|
|
L_028B3E84: ; // 0x28b3e84
|
|
/* 028B3E84 */ Gambit_fn_028B3DA4(cpu);
|
|
L_028B3E88: ; // 0x28b3e88
|
|
/* 028B3E88 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 028B3E88 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_028B3E8C: ; // 0x28b3e8c
|
|
/* 028B3E8C */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 028B3E8C */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B3E90 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B3E90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B3E94 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B3E94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B3E98 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B3E98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B3E9C */ cpu->lr = cpu->r[0];
|
|
/* 028B3EA0 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B3EA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B3EA4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B3EA8 */ return;
|
|
}
|
|
|
|
// fn_028B3EAC @ 0x28b3eac
|
|
void Gambit_fn_028B3EAC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028B3EAC: ; // 0x28b3eac
|
|
/* 028B3EAC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B3EAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3EAC */ cpu->r[1] = _t0;
|
|
/* 028B3EB0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3EB4 */ /* nop */
|
|
/* 028B3EB8 */ cpu->r[30] = cpu->r[7];
|
|
/* 028B3EBC */ cpu->r[31] = cpu->r[9];
|
|
/* 028B3EC0 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B3EC4 */ cpu->r[12] = 0x00000001u;
|
|
/* 028B3EC8 */ cpu->r[7] = cpu->r[8];
|
|
/* 028B3ECC */ cpu->r[27] = cpu->r[3];
|
|
/* 028B3ED0 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3ED0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B3ED4 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B3ED8 */ cpu->r[5] = cpu->r[6];
|
|
/* 028B3EDC */ cpu->r[6] = cpu->r[30];
|
|
/* 028B3EE0 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3EE4 */ _t2 = cpu->r[3] + 0x00000044u;
|
|
/* 028B3EE4 */ rbrew_write32(cpu->mem, _t2, cpu->r[12]);
|
|
/* 028B3EE8 */ Gambit_fn_028AA458(cpu);
|
|
/* 028B3EEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B3EF0 */ _t3 = cpu->r[27] + 0x00000060u;
|
|
/* 028B3EF0 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B3EF4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3EF4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B3EF4 */ if (_t5) goto L_028B3EF8; else goto L_028B3F30;
|
|
L_028B3EF8: ; // 0x28b3ef8
|
|
/* 028B3EF8 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3EFC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B3F00 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B3F04 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B3F08 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3F08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B3F0C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3F0C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B3F0C */ if (_t7) goto L_028B3F30; else goto L_028B3F10;
|
|
L_028B3F10: ; // 0x28b3f10
|
|
/* 028B3F10 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B3F14 */ cpu->r[4] = 0x0000000Cu;
|
|
/* 028B3F18 */ Gambit_fn_02C89380(cpu);
|
|
/* 028B3F1C */ cpu->r[0] = 0x10140000u;
|
|
/* 028B3F20 */ cpu->r[0] = cpu->r[0] + 0xFFFF87B8u;
|
|
/* 028B3F24 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 028B3F28 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 028B3F28 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028B3F2C */ Gambit_fn_02836D50(cpu);
|
|
L_028B3F30: ; // 0x28b3f30
|
|
/* 028B3F30 */ cpu->r[28] = 0x101D0000u;
|
|
/* 028B3F34 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[30] * (int32_t)0x000000A4u);
|
|
/* 028B3F38 */ _t9 = cpu->r[28] + 0xFFFFC3D4u;
|
|
/* 028B3F38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B3F38 */ cpu->r[28] = _t9;
|
|
/* 028B3F3C */ cpu->r[7] = 0x101D0000u;
|
|
/* 028B3F40 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B3F44 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B3F48 */ cpu->r[3] = cpu->r[9] + cpu->r[10];
|
|
/* 028B3F4C */ _t10 = cpu->r[7] + 0xFFFF9A6Cu;
|
|
/* 028B3F4C */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 028B3F50 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B3F54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B3F58 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B3F58 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B3F58 */ if (_t12) goto L_028B3F8C; else goto L_028B3F5C;
|
|
L_028B3F5C: ; // 0x28b3f5c
|
|
/* 028B3F5C */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B3F60 */ _t13 = cpu->r[28] + 0x00000000u;
|
|
/* 028B3F60 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B3F64 */ cpu->r[5] = 0x000000A4u;
|
|
/* 028B3F68 */ cpu->r[6] = cpu->r[6] + 0x000046C0u;
|
|
/* 028B3F6C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B3F70 */ cpu->r[3] = cpu->r[3] + cpu->r[11];
|
|
/* 028B3F74 */ cpu->r[7] = 0x00000000u;
|
|
/* 028B3F78 */ Gambit_fn_02C82DBC(cpu);
|
|
/* 028B3F7C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B3F80 */ _t14 = cpu->r[27] + 0x0000006Cu;
|
|
/* 028B3F80 */ rbrew_write32(cpu->mem, _t14, cpu->r[3]);
|
|
/* 028B3F84 */ _t15 = cpu->r[27] + 0x00000070u;
|
|
/* 028B3F84 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028B3F88 */ goto L_028B3F98;
|
|
L_028B3F8C: ; // 0x28b3f8c
|
|
/* 028B3F8C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B3F90 */ _t16 = cpu->r[27] + 0x0000006Cu;
|
|
/* 028B3F90 */ rbrew_write32(cpu->mem, _t16, cpu->r[3]);
|
|
/* 028B3F94 */ _t17 = cpu->r[27] + 0x00000070u;
|
|
/* 028B3F94 */ rbrew_write32(cpu->mem, _t17, cpu->r[3]);
|
|
L_028B3F98: ; // 0x28b3f98
|
|
/* 028B3F98 */ /* nop */
|
|
/* 028B3F9C */ _t18 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3F9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B3FA0 */ cpu->lr = cpu->r[0];
|
|
/* 028B3FA4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B3FA8 */ return;
|
|
}
|
|
|
|
// fn_028B3FAC @ 0x28b3fac
|
|
void Gambit_fn_028B3FAC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028B3FAC: ; // 0x28b3fac
|
|
/* 028B3FAC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B3FAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B3FAC */ cpu->r[1] = _t0;
|
|
/* 028B3FB0 */ /* nop */
|
|
/* 028B3FB4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B3FB8 */ cpu->r[27] = cpu->r[3];
|
|
/* 028B3FBC */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B3FBC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B3FC0 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B3FC4 */ _t2 = cpu->r[3] + 0xFFFF9A6Cu;
|
|
/* 028B3FC4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B3FC8 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B3FCC */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B3FCC */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B3FD0 */ _t4 = cpu->r[12] + 0x00000014u;
|
|
/* 028B3FD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B3FD4 */ cpu->ctr = cpu->r[0];
|
|
/* 028B3FD8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B3FDC */ cpu->r[28] = cpu->r[4];
|
|
/* 028B3FE0 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B3FE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B3FE8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B3FEC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B3FF0 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B3FF4 */ cpu->r[6] = cpu->r[30];
|
|
/* 028B3FF8 */ Gambit_fn_028AA564(cpu);
|
|
/* 028B3FFC */ cpu->r[26] = cpu->r[3];
|
|
/* 028B4000 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B4004 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 028B4008 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B400C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B4010 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4010 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B4014 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4014 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B4014 */ if (_t6) goto L_028B4034; else goto L_028B4018;
|
|
L_028B4018: ; // 0x28b4018
|
|
/* 028B4018 */ cpu->r[7] = cpu->r[29];
|
|
/* 028B401C */ cpu->r[6] = cpu->r[26];
|
|
/* 028B4020 */ cpu->r[5] = cpu->r[27];
|
|
/* 028B4024 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B4028 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B402C */ Gambit_fn_028B4E48(cpu);
|
|
/* 028B4030 */ cpu->r[30] = cpu->r[3];
|
|
L_028B4034: ; // 0x28b4034
|
|
/* 028B4034 */ cpu->r[6] = cpu->r[29];
|
|
/* 028B4038 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B403C */ cpu->r[4] = cpu->r[26];
|
|
/* 028B4040 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B4044 */ Gambit_fn_028AA69C(cpu);
|
|
/* 028B4048 */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028B4048 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B404C */ _t8 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B404C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B4050 */ cpu->ctr = cpu->r[0];
|
|
/* 028B4054 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B4058 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B405C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4060 */ /* nop */
|
|
/* 028B4064 */ _t9 = cpu->r[1] + 0x00000024u;
|
|
/* 028B4064 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B4068 */ cpu->lr = cpu->r[0];
|
|
/* 028B406C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B4070 */ return;
|
|
}
|
|
|
|
// fn_028B4074 @ 0x28b4074
|
|
void Gambit_fn_028B4074(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_028B4074: ; // 0x28b4074
|
|
/* 028B4074 */ cpu->r[0] = cpu->lr;
|
|
/* 028B4078 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4078 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4078 */ cpu->r[1] = _t0;
|
|
/* 028B407C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B407C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B4080 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4080 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B4084 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028B4088 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4088 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B408C */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028B408C */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028B4090 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4090 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B4094 */ _t6 = cpu->r[31] + 0xFFFF9A6Cu;
|
|
/* 028B4094 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B4098 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B409C */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028B409C */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B40A0 */ _t8 = cpu->r[12] + 0x00000014u;
|
|
/* 028B40A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B40A4 */ cpu->ctr = cpu->r[0];
|
|
/* 028B40A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B40AC */ cpu->r[30] = cpu->r[4];
|
|
/* 028B40B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B40B4 */ _t9 = cpu->r[30] + 0x00000020u;
|
|
/* 028B40B4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B40B8 */ _t10 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B40B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B40BC */ cpu->r[3] = cpu->r[30] + cpu->r[0];
|
|
/* 028B40C0 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B40C4 */ _t11 = cpu->r[28] + 0x00000018u;
|
|
/* 028B40C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B40C8 */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028B40C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B40CC */ _t12 = cpu->r[28] + 0x00000018u;
|
|
/* 028B40CC */ rbrew_write32(cpu->mem, _t12, cpu->r[10]);
|
|
/* 028B40D0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B40D0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B40D0 */ if (_t14) goto L_028B40D4; else goto L_028B4104;
|
|
L_028B40D4: ; // 0x28b40d4
|
|
/* 028B40D4 */ _t15 = cpu->r[29] + 0x00000014u;
|
|
/* 028B40D4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B40D8 */ cpu->r[3] = cpu->r[28] + cpu->r[5];
|
|
/* 028B40DC */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B40E0 */ _t16 = cpu->r[29] + 0x00000010u;
|
|
/* 028B40E0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B40E4 */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 028B40E8 */ _t17 = cpu->r[29] + 0x00000010u;
|
|
/* 028B40E8 */ rbrew_write32(cpu->mem, _t17, cpu->r[6]);
|
|
/* 028B40EC */ _t18 = cpu->r[28] + 0x00000048u;
|
|
/* 028B40EC */ cpu->r[7] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B40F0 */ _t19 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B40F0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B40F4 */ cpu->ctr = cpu->r[8];
|
|
/* 028B40F8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B40FC */ cpu->r[4] = 0x00000003u;
|
|
/* 028B4100 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B4104: ; // 0x28b4104
|
|
/* 028B4104 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028B4104 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B4108 */ _t21 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028B4108 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B410C */ cpu->ctr = cpu->r[0];
|
|
/* 028B4110 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B4114 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B4118 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4118 */ cpu->r[28] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B411C */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B411C */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B4120 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4120 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B4124 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4124 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B4128 */ cpu->lr = cpu->r[0];
|
|
/* 028B412C */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028B412C */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B4130 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B4134 */ return;
|
|
}
|
|
|
|
// fn_028B4078 @ 0x28b4078
|
|
void Gambit_fn_028B4078(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_028B4078: ; // 0x28b4078
|
|
/* 028B4078 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4078 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4078 */ cpu->r[1] = _t0;
|
|
/* 028B407C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B407C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B4080 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4080 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B4084 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028B4088 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4088 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B408C */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 028B408C */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 028B4090 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4090 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B4094 */ _t6 = cpu->r[31] + 0xFFFF9A6Cu;
|
|
/* 028B4094 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B4098 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B409C */ _t7 = cpu->r[31] + 0x00000000u;
|
|
/* 028B409C */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B40A0 */ _t8 = cpu->r[12] + 0x00000014u;
|
|
/* 028B40A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B40A4 */ cpu->ctr = cpu->r[0];
|
|
/* 028B40A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B40AC */ cpu->r[30] = cpu->r[4];
|
|
/* 028B40B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B40B4 */ _t9 = cpu->r[30] + 0x00000020u;
|
|
/* 028B40B4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B40B8 */ _t10 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B40B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B40BC */ cpu->r[3] = cpu->r[30] + cpu->r[0];
|
|
/* 028B40C0 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B40C4 */ _t11 = cpu->r[28] + 0x00000018u;
|
|
/* 028B40C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B40C8 */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 028B40C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B40CC */ _t12 = cpu->r[28] + 0x00000018u;
|
|
/* 028B40CC */ rbrew_write32(cpu->mem, _t12, cpu->r[10]);
|
|
/* 028B40D0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B40D0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B40D0 */ if (_t14) goto L_028B40D4; else goto L_028B4104;
|
|
L_028B40D4: ; // 0x28b40d4
|
|
/* 028B40D4 */ _t15 = cpu->r[29] + 0x00000014u;
|
|
/* 028B40D4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B40D8 */ cpu->r[3] = cpu->r[28] + cpu->r[5];
|
|
/* 028B40DC */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B40E0 */ _t16 = cpu->r[29] + 0x00000010u;
|
|
/* 028B40E0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B40E4 */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 028B40E8 */ _t17 = cpu->r[29] + 0x00000010u;
|
|
/* 028B40E8 */ rbrew_write32(cpu->mem, _t17, cpu->r[6]);
|
|
/* 028B40EC */ _t18 = cpu->r[28] + 0x00000048u;
|
|
/* 028B40EC */ cpu->r[7] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B40F0 */ _t19 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B40F0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B40F4 */ cpu->ctr = cpu->r[8];
|
|
/* 028B40F8 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B40FC */ cpu->r[4] = 0x00000003u;
|
|
/* 028B4100 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B4104: ; // 0x28b4104
|
|
/* 028B4104 */ _t20 = cpu->r[31] + 0x00000000u;
|
|
/* 028B4104 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B4108 */ _t21 = cpu->r[9] + 0x0000001Cu;
|
|
/* 028B4108 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B410C */ cpu->ctr = cpu->r[0];
|
|
/* 028B4110 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B4114 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B4118 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4118 */ cpu->r[28] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B411C */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B411C */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B4120 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4120 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B4124 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4124 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B4128 */ cpu->lr = cpu->r[0];
|
|
/* 028B412C */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 028B412C */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B4130 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B4134 */ return;
|
|
}
|
|
|
|
// fn_028B4138 @ 0x28b4138
|
|
void Gambit_fn_028B4138(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_028B4138: ; // 0x28b4138
|
|
/* 028B4138 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B4138 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4138 */ cpu->r[1] = _t0;
|
|
/* 028B413C */ /* nop */
|
|
/* 028B4140 */ cpu->r[0] = cpu->lr;
|
|
/* 028B4144 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B4144 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B4148 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028B414C */ _t2 = cpu->r[31] + 0xFFFF9A6Cu;
|
|
/* 028B414C */ cpu->r[31] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B4150 */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 028B4150 */ cpu->r[5] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B4154 */ _t4 = cpu->r[5] + 0x00000014u;
|
|
/* 028B4154 */ cpu->r[6] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B4158 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B415C */ cpu->ctr = cpu->r[6];
|
|
/* 028B4160 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B4164 */ cpu->r[24] = cpu->r[4];
|
|
/* 028B4168 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B416C */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 028B416C */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B4170 */ cpu->r[0] = cpu->r[30] + 0x00000008u;
|
|
/* 028B4174 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B4174 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B4178 */ cpu->r[30] = cpu->r[0] - cpu->r[29];
|
|
/* 028B417C */ cpu->r[28] = cpu->r[7] - cpu->r[29];
|
|
/* 028B4180 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[30]);
|
|
/* 028B4184 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4184 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B4184 */ if (_t8) goto L_028B41D8; else goto L_028B4188;
|
|
L_028B4188: ; // 0x28b4188
|
|
/* 028B4188 */ _t9 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B4188 */ cpu->r[25] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B418C */ cpu->r[0] = cpu->r[28] + 0x00000010u;
|
|
/* 028B4190 */ _t10 = cpu->r[28] + 0x00000014u;
|
|
/* 028B4190 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B4194 */ cpu->r[26] = cpu->r[0] - cpu->r[25];
|
|
/* 028B4198 */ cpu->r[27] = cpu->r[9] - cpu->r[25];
|
|
/* 028B419C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[26]);
|
|
/* 028B41A0 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B41A0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B41A0 */ if (_t12) goto L_028B41C4; else goto L_028B41A4;
|
|
L_028B41A4: ; // 0x28b41a4
|
|
/* 028B41A4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B41A8 */ cpu->r[4] = cpu->r[24];
|
|
/* 028B41AC */ Gambit_fn_028B4A94(cpu);
|
|
/* 028B41B0 */ cpu->r[11] = cpu->r[27] + cpu->r[25];
|
|
/* 028B41B4 */ _t13 = cpu->r[11] + 0x00000004u;
|
|
/* 028B41B4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B41B8 */ cpu->r[27] = cpu->r[9] - cpu->r[25];
|
|
/* 028B41BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[26]);
|
|
/* 028B41C0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B41C0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B41C0 */ if (_t15) goto L_028B41C4; else goto L_028B41A4;
|
|
L_028B41C4: ; // 0x28b41c4
|
|
/* 028B41C4 */ cpu->r[10] = cpu->r[28] + cpu->r[29];
|
|
/* 028B41C8 */ _t16 = cpu->r[10] + 0x00000004u;
|
|
/* 028B41C8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B41CC */ cpu->r[28] = cpu->r[11] - cpu->r[29];
|
|
/* 028B41D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[30]);
|
|
/* 028B41D4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B41D4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B41D4 */ if (_t18) goto L_028B41D8; else goto L_028B4188;
|
|
L_028B41D8: ; // 0x28b41d8
|
|
/* 028B41D8 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028B41D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B41DC */ _t20 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B41DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B41E0 */ cpu->ctr = cpu->r[0];
|
|
/* 028B41E4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B41E8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B41EC */ /* nop */
|
|
/* 028B41F0 */ _t21 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B41F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B41F4 */ cpu->lr = cpu->r[0];
|
|
/* 028B41F8 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B41FC */ return;
|
|
}
|
|
|
|
// fn_028B4200 @ 0x28b4200
|
|
void Gambit_fn_028B4200(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028B4200: ; // 0x28b4200
|
|
/* 028B4200 */ cpu->r[0] = cpu->lr;
|
|
/* 028B4204 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4204 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4204 */ cpu->r[1] = _t0;
|
|
/* 028B4208 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4208 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B420C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B420C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B4210 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4214 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 028B4218 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B421C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B421C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B4220 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4220 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B4224 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B4228 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B422C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B4230 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B4234 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4238 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4238 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B4238 */ if (_t6) goto L_028B424C; else goto L_028B423C;
|
|
L_028B423C: ; // 0x28b423c
|
|
/* 028B423C */ cpu->r[6] = cpu->r[29];
|
|
/* 028B4240 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B4244 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B4248 */ Gambit_fn_028B5ED0(cpu);
|
|
L_028B424C: ; // 0x28b424c
|
|
/* 028B424C */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B424C */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B4250 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4250 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B4254 */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4254 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B4258 */ cpu->lr = cpu->r[0];
|
|
/* 028B425C */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B425C */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B4260 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B4264 */ return;
|
|
}
|
|
|
|
// fn_028B4204 @ 0x28b4204
|
|
void Gambit_fn_028B4204(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028B4204: ; // 0x28b4204
|
|
/* 028B4204 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4204 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4204 */ cpu->r[1] = _t0;
|
|
/* 028B4208 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4208 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B420C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B420C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B4210 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4214 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 028B4218 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B421C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B421C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B4220 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4220 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B4224 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B4228 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B422C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B4230 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B4234 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4238 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4238 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B4238 */ if (_t6) goto L_028B424C; else goto L_028B423C;
|
|
L_028B423C: ; // 0x28b423c
|
|
/* 028B423C */ cpu->r[6] = cpu->r[29];
|
|
/* 028B4240 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B4244 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B4248 */ Gambit_fn_028B5ED0(cpu);
|
|
L_028B424C: ; // 0x28b424c
|
|
/* 028B424C */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B424C */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B4250 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4250 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B4254 */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4254 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B4258 */ cpu->lr = cpu->r[0];
|
|
/* 028B425C */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B425C */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B4260 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B4264 */ return;
|
|
}
|
|
|
|
// fn_028B4268 @ 0x28b4268
|
|
void Gambit_fn_028B4268(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B4268: ; // 0x28b4268
|
|
/* 028B4268 */ cpu->r[0] = cpu->lr;
|
|
/* 028B426C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B426C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B426C */ cpu->r[1] = _t0;
|
|
/* 028B4270 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B4274 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4274 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B4278 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B427C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B427C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B4280 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B4284 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B4284 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4288 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4288 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B4288 */ if (_t4) goto L_028B42C8; else goto L_028B428C;
|
|
L_028B428C: ; // 0x28b428c
|
|
/* 028B428C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B428C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4290 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4290 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B4290 */ if (_t6) goto L_028B4294; else goto L_028B42A4;
|
|
L_028B4294: ; // 0x28b4294
|
|
/* 028B4294 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4298 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B429C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B42A0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B42A0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B42A0 */ if (_t8) goto L_028B42BC; else goto L_028B42A4;
|
|
L_028B42A4: ; // 0x28b42a4
|
|
/* 028B42A4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B42A8 */ cpu->r[11] = 0x00000000u;
|
|
/* 028B42AC */ cpu->r[10] = cpu->r[10] + 0xFFFF8798u;
|
|
/* 028B42B0 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028B42B0 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028B42B4 */ _t10 = cpu->r[3] + 0x00000008u;
|
|
/* 028B42B4 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028B42B8 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028B42B8 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
L_028B42BC: ; // 0x28b42bc
|
|
/* 028B42BC */ cpu->r[0] = 0x10140000u;
|
|
/* 028B42C0 */ cpu->r[0] = cpu->r[0] + 0xFFFF87A8u;
|
|
/* 028B42C4 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028B42C4 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028B42C8: ; // 0x28b42c8
|
|
/* 028B42C8 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B42C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B42CC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B42D0 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B42D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B42D4 */ cpu->lr = cpu->r[0];
|
|
/* 028B42D8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B42DC */ return;
|
|
}
|
|
|
|
// fn_028B426C @ 0x28b426c
|
|
void Gambit_fn_028B426C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B426C: ; // 0x28b426c
|
|
/* 028B426C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B426C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B426C */ cpu->r[1] = _t0;
|
|
/* 028B4270 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B4274 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4274 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B4278 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B427C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B427C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B4280 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B4284 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B4284 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4288 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4288 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B4288 */ if (_t4) goto L_028B42C8; else goto L_028B428C;
|
|
L_028B428C: ; // 0x28b428c
|
|
/* 028B428C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B428C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4290 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4290 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B4290 */ if (_t6) goto L_028B4294; else goto L_028B42A4;
|
|
L_028B4294: ; // 0x28b4294
|
|
/* 028B4294 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4298 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B429C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B42A0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B42A0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B42A0 */ if (_t8) goto L_028B42BC; else goto L_028B42A4;
|
|
L_028B42A4: ; // 0x28b42a4
|
|
/* 028B42A4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B42A8 */ cpu->r[11] = 0x00000000u;
|
|
/* 028B42AC */ cpu->r[10] = cpu->r[10] + 0xFFFF8798u;
|
|
/* 028B42B0 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 028B42B0 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028B42B4 */ _t10 = cpu->r[3] + 0x00000008u;
|
|
/* 028B42B4 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 028B42B8 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 028B42B8 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
L_028B42BC: ; // 0x28b42bc
|
|
/* 028B42BC */ cpu->r[0] = 0x10140000u;
|
|
/* 028B42C0 */ cpu->r[0] = cpu->r[0] + 0xFFFF87A8u;
|
|
/* 028B42C4 */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 028B42C4 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_028B42C8: ; // 0x28b42c8
|
|
/* 028B42C8 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B42C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B42CC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B42D0 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B42D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B42D4 */ cpu->lr = cpu->r[0];
|
|
/* 028B42D8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B42DC */ return;
|
|
}
|
|
|
|
// fn_028B42E0 @ 0x28b42e0
|
|
void Gambit_fn_028B42E0(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;
|
|
|
|
L_028B42E0: ; // 0x28b42e0
|
|
/* 028B42E0 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 028B42E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B42E0 */ cpu->r[1] = _t0;
|
|
/* 028B42E4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B42E8 */ _t1 = cpu->r[1] + 0x00000028u;
|
|
/* 028B42E8 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[30]);
|
|
/* 028B42EC */ /* nop */
|
|
/* 028B42F0 */ _t2 = cpu->r[1] + 0x00000038u;
|
|
/* 028B42F0 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 028B42F4 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B42F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B42F8 */ /* nop */
|
|
/* 028B42FC */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B42FC */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B4300 */ _t5 = cpu->r[1] + 0x00000030u;
|
|
/* 028B4300 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[30]);
|
|
/* 028B4304 */ _t6 = cpu->r[1] + 0x00000018u;
|
|
/* 028B4304 */ rbrew_write_f64(cpu->mem, _t6, cpu->f[29]);
|
|
/* 028B4308 */ _t7 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B4308 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028B430C */ _t8 = cpu->r[1] + 0x00000040u;
|
|
/* 028B430C */ rbrew_write_f32(cpu->mem, _t8, cpu->f[31]);
|
|
/* 028B4310 */ /* nop */
|
|
/* 028B4314 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4314 */ rbrew_write32(cpu->mem, _t9, cpu->r[28]);
|
|
/* 028B4318 */ _t10 = cpu->r[1] + 0x00000020u;
|
|
/* 028B4318 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[29]);
|
|
/* 028B431C */ cpu->r[28] = cpu->r[3];
|
|
/* 028B4320 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4320 */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 028B4324 */ _t12 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B4324 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B4328 */ _t13 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B4328 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B432C */ _t14 = cpu->r[10] + 0x00000034u;
|
|
/* 028B432C */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B4330 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B4334 */ cpu->ctr = cpu->r[12];
|
|
/* 028B4338 */ cpu->r[4] = 0x000000B8u;
|
|
/* 028B433C */ cpu->r[5] = 0x00000004u;
|
|
/* 028B4340 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B4344 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B4344 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4348 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B434C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B434C */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B434C */ if (_t16) goto L_028B4558; else goto L_028B4350;
|
|
L_028B4350: ; // 0x28b4350
|
|
/* 028B4350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4354 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4354 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B4354 */ if (_t18) goto L_028B4518; else goto L_028B4358;
|
|
L_028B4358: ; // 0x28b4358
|
|
/* 028B4358 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B4358 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B435C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B435C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B435C */ if (_t20) goto L_028B4360; else goto L_028B4370;
|
|
L_028B4360: ; // 0x28b4360
|
|
/* 028B4360 */ cpu->r[3] = 0x00000028u;
|
|
/* 028B4364 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4368 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B436C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B436C */ _t22 = _t21 & 0x00000001u;
|
|
/* 028B436C */ if (_t22) goto L_028B43A0; else goto L_028B4370;
|
|
L_028B4370: ; // 0x28b4370
|
|
/* 028B4370 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B4374 */ _t23 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B4374 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028B4378 */ cpu->r[11] = cpu->r[11] + 0xFFFF87D8u;
|
|
/* 028B437C */ _t24 = cpu->r[3] + 0x00000008u;
|
|
/* 028B437C */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 028B4380 */ _t25 = cpu->r[3] + 0x00000024u;
|
|
/* 028B4380 */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
/* 028B4384 */ _t26 = cpu->r[3] + 0x00000014u;
|
|
/* 028B4384 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
/* 028B4388 */ _t27 = cpu->r[3] + 0x00000010u;
|
|
/* 028B4388 */ rbrew_write32(cpu->mem, _t27, cpu->r[29]);
|
|
/* 028B438C */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 028B438C */ rbrew_write32(cpu->mem, _t28, cpu->r[29]);
|
|
/* 028B4390 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4390 */ rbrew_write32(cpu->mem, _t29, cpu->r[29]);
|
|
/* 028B4394 */ _t30 = cpu->r[3] + 0x00000018u;
|
|
/* 028B4394 */ rbrew_write32(cpu->mem, _t30, cpu->r[29]);
|
|
/* 028B4398 */ _t31 = cpu->r[3] + 0x00000020u;
|
|
/* 028B4398 */ rbrew_write32(cpu->mem, _t31, cpu->r[29]);
|
|
/* 028B439C */ _t32 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B439C */ rbrew_write32(cpu->mem, _t32, cpu->r[29]);
|
|
L_028B43A0: ; // 0x28b43a0
|
|
/* 028B43A0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B43A4 */ _t33 = cpu->r[31] + 0x00000028u;
|
|
/* 028B43A4 */ rbrew_write32(cpu->mem, _t33, cpu->r[29]);
|
|
/* 028B43A8 */ cpu->r[0] = cpu->r[0] + 0xFFFF8DE8u;
|
|
/* 028B43AC */ cpu->r[3] = cpu->r[31] + 0x0000002Cu;
|
|
/* 028B43B0 */ _t34 = cpu->r[31] + 0x00000024u;
|
|
/* 028B43B0 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 028B43B4 */ Gambit_fn_028BBF0C(cpu);
|
|
/* 028B43B8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B43BC */ cpu->r[9] = 0x10140000u;
|
|
/* 028B43C0 */ _t35 = cpu->r[11] + 0xFFFF8830u;
|
|
/* 028B43C0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 028B43C4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B43C8 */ _t36 = cpu->r[9] + 0xFFFF8828u;
|
|
/* 028B43C8 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t36);
|
|
/* 028B43CC */ cpu->r[30] = cpu->r[31] + 0x00000034u;
|
|
/* 028B43CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B43D0 */ _t37 = cpu->r[10] + 0xFFFF882Cu;
|
|
/* 028B43D0 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 028B43D4 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B43D4 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028B43D4 */ if (_t39) goto L_028B43D8; else goto L_028B43E8;
|
|
L_028B43D8: ; // 0x28b43d8
|
|
/* 028B43D8 */ cpu->r[3] = 0x0000002Cu;
|
|
/* 028B43DC */ Gambit_fn_02801A78(cpu);
|
|
/* 028B43E0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B43E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B43E4 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B43E4 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028B43E4 */ if (_t41) goto L_028B4430; else goto L_028B43E8;
|
|
L_028B43E8: ; // 0x28b43e8
|
|
/* 028B43E8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B43E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B43EC */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B43EC */ _t43 = _t42 & 0x00000001u;
|
|
/* 028B43EC */ if (_t43) goto L_028B43F0; else goto L_028B4400;
|
|
L_028B43F0: ; // 0x28b43f0
|
|
/* 028B43F0 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B43F4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B43F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B43FC */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B43FC */ _t45 = _t44 & 0x00000001u;
|
|
/* 028B43FC */ if (_t45) goto L_028B4404; else goto L_028B4400;
|
|
L_028B4400: ; // 0x28b4400
|
|
/* 028B4400 */ _t46 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4400 */ rbrew_write32(cpu->mem, _t46, cpu->r[29]);
|
|
L_028B4404: ; // 0x28b4404
|
|
/* 028B4404 */ _t47 = cpu->r[30] + 0x00000000u;
|
|
/* 028B4404 */ rbrew_write32(cpu->mem, _t47, cpu->r[29]);
|
|
/* 028B4408 */ cpu->f[0] = cpu->f[31];
|
|
/* 028B440C */ _t48 = cpu->r[30] + 0x00000028u;
|
|
/* 028B440C */ rbrew_write_f32(cpu->mem, _t48, cpu->f[30]);
|
|
/* 028B4410 */ cpu->r[9] = cpu->r[30] + 0x00000004u;
|
|
/* 028B4414 */ _t49 = cpu->r[30] + 0x00000004u;
|
|
/* 028B4414 */ rbrew_write_f32(cpu->mem, _t49, cpu->f[30]);
|
|
/* 028B4418 */ cpu->r[0] = 0x00000006u;
|
|
/* 028B441C */ _t50 = cpu->r[30] + 0x00000020u;
|
|
/* 028B441C */ rbrew_write_f32(cpu->mem, _t50, cpu->f[30]);
|
|
/* 028B4420 */ cpu->ctr = cpu->r[0];
|
|
/* 028B4424 */ _t51 = cpu->r[30] + 0x00000024u;
|
|
/* 028B4424 */ rbrew_write_f32(cpu->mem, _t51, cpu->f[29]);
|
|
L_028B4428: ; // 0x28b4428
|
|
/* 028B4428 */ _t52 = cpu->r[9] + 0x00000004u;
|
|
/* 028B4428 */ rbrew_write_f32(cpu->mem, _t52, cpu->f[0]);
|
|
/* 028B4428 */ cpu->r[9] = _t52;
|
|
/* 028B442C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028B442C */ _t53 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028B442C */ _t54 = _t53 >> (0x00000002u & 31u);
|
|
/* 028B442C */ _t55 = _t54 & 0x00000001u;
|
|
/* 028B442C */ if (_t55) goto L_028B4428; else goto L_028B4430;
|
|
L_028B4430: ; // 0x28b4430
|
|
/* 028B4430 */ cpu->r[30] = cpu->r[31] + 0x00000060u;
|
|
/* 028B4430 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B4434 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4434 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028B4434 */ if (_t57) goto L_028B4438; else goto L_028B4448;
|
|
L_028B4438: ; // 0x28b4438
|
|
/* 028B4438 */ cpu->r[3] = 0x0000004Cu;
|
|
/* 028B443C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4440 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4440 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B4444 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4444 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028B4444 */ if (_t59) goto L_028B44C8; else goto L_028B4448;
|
|
L_028B4448: ; // 0x28b4448
|
|
/* 028B4448 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B444C */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B444C */ _t61 = _t60 & 0x00000001u;
|
|
/* 028B444C */ if (_t61) goto L_028B4450; else goto L_028B4460;
|
|
L_028B4450: ; // 0x28b4450
|
|
/* 028B4450 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B4454 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4458 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B445C */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B445C */ _t63 = _t62 & 0x00000001u;
|
|
/* 028B445C */ if (_t63) goto L_028B4464; else goto L_028B4460;
|
|
L_028B4460: ; // 0x28b4460
|
|
/* 028B4460 */ _t64 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4460 */ rbrew_write32(cpu->mem, _t64, cpu->r[29]);
|
|
L_028B4464: ; // 0x28b4464
|
|
/* 028B4464 */ cpu->r[6] = cpu->r[30] + 0x0000002Cu;
|
|
/* 028B4464 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028B4468 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4468 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028B4468 */ if (_t66) goto L_028B446C; else goto L_028B4474;
|
|
L_028B446C: ; // 0x28b446c
|
|
/* 028B446C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4470 */ Gambit_fn_02801A78(cpu);
|
|
L_028B4474: ; // 0x28b4474
|
|
/* 028B4474 */ cpu->r[7] = cpu->r[30] + 0x00000038u;
|
|
/* 028B4474 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B4478 */ _t67 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4478 */ _t68 = _t67 & 0x00000001u;
|
|
/* 028B4478 */ if (_t68) goto L_028B447C; else goto L_028B4484;
|
|
L_028B447C: ; // 0x28b447c
|
|
/* 028B447C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4480 */ Gambit_fn_02801A78(cpu);
|
|
L_028B4484: ; // 0x28b4484
|
|
/* 028B4484 */ _t69 = cpu->r[30] + 0x00000024u;
|
|
/* 028B4484 */ rbrew_write_f32(cpu->mem, _t69, cpu->f[29]);
|
|
/* 028B4488 */ cpu->r[8] = cpu->r[30] + 0x00000004u;
|
|
/* 028B448C */ _t70 = cpu->r[30] + 0x00000028u;
|
|
/* 028B448C */ rbrew_write_f32(cpu->mem, _t70, cpu->f[30]);
|
|
/* 028B4490 */ cpu->r[12] = 0x00000006u;
|
|
/* 028B4494 */ _t71 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028B4494 */ rbrew_write_f32(cpu->mem, _t71, cpu->f[29]);
|
|
/* 028B4498 */ _t72 = cpu->r[30] + 0x0000002Cu;
|
|
/* 028B4498 */ rbrew_write_f32(cpu->mem, _t72, cpu->f[29]);
|
|
/* 028B449C */ _t73 = cpu->r[30] + 0x00000004u;
|
|
/* 028B449C */ rbrew_write_f32(cpu->mem, _t73, cpu->f[30]);
|
|
/* 028B44A0 */ _t74 = cpu->r[30] + 0x00000034u;
|
|
/* 028B44A0 */ rbrew_write_f32(cpu->mem, _t74, cpu->f[29]);
|
|
/* 028B44A4 */ _t75 = cpu->r[30] + 0x00000030u;
|
|
/* 028B44A4 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[29]);
|
|
/* 028B44A8 */ _t76 = cpu->r[30] + 0x00000040u;
|
|
/* 028B44A8 */ rbrew_write_f32(cpu->mem, _t76, cpu->f[29]);
|
|
/* 028B44AC */ _t77 = cpu->r[30] + 0x00000038u;
|
|
/* 028B44AC */ rbrew_write_f32(cpu->mem, _t77, cpu->f[29]);
|
|
/* 028B44B0 */ _t78 = cpu->r[30] + 0x00000020u;
|
|
/* 028B44B0 */ rbrew_write_f32(cpu->mem, _t78, cpu->f[30]);
|
|
/* 028B44B4 */ _t79 = cpu->r[30] + 0x00000044u;
|
|
/* 028B44B4 */ rbrew_write32(cpu->mem, _t79, cpu->r[29]);
|
|
/* 028B44B8 */ cpu->ctr = cpu->r[12];
|
|
/* 028B44BC */ _t80 = cpu->r[30] + 0x00000000u;
|
|
/* 028B44BC */ rbrew_write32(cpu->mem, _t80, cpu->r[29]);
|
|
L_028B44C0: ; // 0x28b44c0
|
|
/* 028B44C0 */ _t81 = cpu->r[8] + 0x00000004u;
|
|
/* 028B44C0 */ rbrew_write_f32(cpu->mem, _t81, cpu->f[31]);
|
|
/* 028B44C0 */ cpu->r[8] = _t81;
|
|
/* 028B44C4 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028B44C4 */ _t82 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028B44C4 */ _t83 = _t82 >> (0x00000002u & 31u);
|
|
/* 028B44C4 */ _t84 = _t83 & 0x00000001u;
|
|
/* 028B44C4 */ if (_t84) goto L_028B44C0; else goto L_028B44C8;
|
|
L_028B44C8: ; // 0x28b44c8
|
|
/* 028B44C8 */ cpu->r[8] = cpu->r[31] + 0x000000ACu;
|
|
/* 028B44C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B44CC */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B44CC */ _t86 = _t85 & 0x00000001u;
|
|
/* 028B44CC */ if (_t86) goto L_028B44D0; else goto L_028B44D8;
|
|
L_028B44D0: ; // 0x28b44d0
|
|
/* 028B44D0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B44D4 */ Gambit_fn_02801A78(cpu);
|
|
L_028B44D8: ; // 0x28b44d8
|
|
/* 028B44D8 */ _t87 = cpu->r[1] + 0x00000008u;
|
|
/* 028B44D8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t87);
|
|
/* 028B44DC */ _t88 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B44DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028B44E0 */ _t89 = cpu->r[1] + 0x00000040u;
|
|
/* 028B44E0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t89);
|
|
/* 028B44E4 */ _t90 = cpu->r[1] + 0x00000020u;
|
|
/* 028B44E4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t90);
|
|
/* 028B44E8 */ _t91 = cpu->r[1] + 0x00000038u;
|
|
/* 028B44E8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t91);
|
|
/* 028B44EC */ _t92 = cpu->r[1] + 0x00000030u;
|
|
/* 028B44EC */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t92);
|
|
/* 028B44F0 */ _t93 = cpu->r[1] + 0x00000018u;
|
|
/* 028B44F0 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t93);
|
|
/* 028B44F4 */ _t94 = cpu->r[1] + 0x00000028u;
|
|
/* 028B44F4 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t94);
|
|
/* 028B44F8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B44FC */ _t95 = cpu->r[1] + 0x00000014u;
|
|
/* 028B44FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028B4500 */ _t96 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4500 */ cpu->r[30] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028B4504 */ _t97 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B4504 */ _t98 = _t97 & 0x00000001u;
|
|
/* 028B4504 */ if (_t98) goto L_028B4508; // else: addr-0 trap, fall-through
|
|
L_028B4508: ; // 0x28b4508
|
|
/* 028B4508 */ _t99 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B4508 */ cpu->r[0] = rbrew_read32(cpu->mem, _t99);
|
|
/* 028B450C */ cpu->lr = cpu->r[0];
|
|
/* 028B4510 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028B4514 */ return;
|
|
L_028B4518: ; // 0x28b4518
|
|
/* 028B4518 */ _t100 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4518 */ cpu->r[28] = rbrew_read32(cpu->mem, _t100);
|
|
/* 028B451C */ _t101 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B451C */ cpu->r[29] = rbrew_read32(cpu->mem, _t101);
|
|
/* 028B4520 */ _t102 = cpu->r[1] + 0x00000040u;
|
|
/* 028B4520 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t102);
|
|
/* 028B4524 */ _t103 = cpu->r[1] + 0x00000020u;
|
|
/* 028B4524 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t103);
|
|
/* 028B4528 */ _t104 = cpu->r[1] + 0x00000038u;
|
|
/* 028B4528 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t104);
|
|
/* 028B452C */ _t105 = cpu->r[1] + 0x00000030u;
|
|
/* 028B452C */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t105);
|
|
/* 028B4530 */ _t106 = cpu->r[1] + 0x00000018u;
|
|
/* 028B4530 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t106);
|
|
/* 028B4534 */ _t107 = cpu->r[1] + 0x00000028u;
|
|
/* 028B4534 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t107);
|
|
/* 028B4538 */ _t108 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4538 */ cpu->r[31] = rbrew_read32(cpu->mem, _t108);
|
|
/* 028B453C */ _t109 = cpu->r[1] + 0x00000010u;
|
|
/* 028B453C */ cpu->r[30] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028B4540 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B4544 */ _t110 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B4544 */ _t111 = _t110 & 0x00000001u;
|
|
/* 028B4544 */ if (_t111) goto L_028B4548; // else: addr-0 trap, fall-through
|
|
L_028B4548: ; // 0x28b4548
|
|
/* 028B4548 */ _t112 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B4548 */ cpu->r[0] = rbrew_read32(cpu->mem, _t112);
|
|
/* 028B454C */ cpu->lr = cpu->r[0];
|
|
/* 028B4550 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028B4554 */ return;
|
|
L_028B4558: ; // 0x28b4558
|
|
/* 028B4558 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B455C */ cpu->r[5] = 0x00000000u;
|
|
/* 028B4560 */ cpu->r[6] = cpu->r[6] + 0xFFFF8834u;
|
|
/* 028B4564 */ cpu->r[4] = 0x00000021u;
|
|
/* 028B4568 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B456C */ _t113 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B456C */ _t114 = _t113 & 0x00000001u;
|
|
/* 028B456C */ if (_t114) goto L_028B4570; // else: addr-0 trap, fall-through
|
|
L_028B4570: ; // 0x28b4570
|
|
/* 028B4570 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028B4574 */ _t115 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4574 */ cpu->r[28] = rbrew_read32(cpu->mem, _t115);
|
|
/* 028B4578 */ _t116 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4578 */ cpu->r[29] = rbrew_read32(cpu->mem, _t116);
|
|
/* 028B457C */ _t117 = cpu->r[1] + 0x00000040u;
|
|
/* 028B457C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t117);
|
|
/* 028B4580 */ _t118 = cpu->r[1] + 0x00000020u;
|
|
/* 028B4580 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t118);
|
|
/* 028B4584 */ _t119 = cpu->r[1] + 0x00000038u;
|
|
/* 028B4584 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t119);
|
|
/* 028B4588 */ _t120 = cpu->r[1] + 0x00000030u;
|
|
/* 028B4588 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t120);
|
|
/* 028B458C */ _t121 = cpu->r[1] + 0x00000018u;
|
|
/* 028B458C */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t121);
|
|
/* 028B4590 */ _t122 = cpu->r[1] + 0x00000028u;
|
|
/* 028B4590 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t122);
|
|
/* 028B4594 */ _t123 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4594 */ cpu->r[31] = rbrew_read32(cpu->mem, _t123);
|
|
/* 028B4598 */ _t124 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4598 */ cpu->r[30] = rbrew_read32(cpu->mem, _t124);
|
|
/* 028B459C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B45A0 */ _t125 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B45A0 */ _t126 = _t125 & 0x00000001u;
|
|
/* 028B45A0 */ if (_t126) goto L_028B45A4; // else: addr-0 trap, fall-through
|
|
L_028B45A4: ; // 0x28b45a4
|
|
/* 028B45A4 */ _t127 = cpu->r[1] + 0x0000004Cu;
|
|
/* 028B45A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028B45A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B45AC */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 028B45B0 */ return;
|
|
}
|
|
|
|
// fn_028B45B4 @ 0x28b45b4
|
|
void Gambit_fn_028B45B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B45B4: ; // 0x28b45b4
|
|
/* 028B45B4 */ _t0 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B45B4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B45B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[11]);
|
|
/* 028B45BC */ cpu->r[0] = 0x00000000u;
|
|
/* 028B45C0 */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B45C0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B45C0 */ if (_t2) goto L_028B45C4; else goto L_028B45D0;
|
|
L_028B45C4: ; // 0x28b45c4
|
|
/* 028B45C4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x000000A4u);
|
|
/* 028B45C8 */ _t3 = cpu->r[3] + 0x0000006Cu;
|
|
/* 028B45C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B45CC */ cpu->r[0] = cpu->r[12] + cpu->r[0];
|
|
L_028B45D0: ; // 0x28b45d0
|
|
/* 028B45D0 */ cpu->r[3] = cpu->r[0];
|
|
/* 028B45D4 */ return;
|
|
}
|
|
|
|
// fn_028B45D8 @ 0x28b45d8
|
|
void Gambit_fn_028B45D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028B45D8: ; // 0x28b45d8
|
|
/* 028B45D8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B45DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B45DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B45DC */ cpu->r[1] = _t0;
|
|
/* 028B45E0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B45E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B45E4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B45E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B45E8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B45E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B45EC */ cpu->r[31] = cpu->r[4];
|
|
/* 028B45F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B45F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B45F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B45F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B45F4 */ if (_t5) goto L_028B4640; else goto L_028B45F8;
|
|
L_028B45F8: ; // 0x28b45f8
|
|
/* 028B45F8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B45FC */ cpu->r[10] = cpu->r[10] + 0xFFFF88BCu;
|
|
/* 028B4600 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B4604 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B4604 */ rbrew_write32(cpu->mem, _t6, cpu->r[10]);
|
|
/* 028B4608 */ _t7 = cpu->r[12] + 0xFFFF9A70u;
|
|
/* 028B4608 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B4608 */ cpu->r[12] = _t7;
|
|
/* 028B460C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[11]);
|
|
/* 028B4610 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4610 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B4610 */ if (_t9) goto L_028B4614; else goto L_028B4624;
|
|
L_028B4614: ; // 0x28b4614
|
|
/* 028B4614 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B4618 */ cpu->r[11] = 0x101D0000u;
|
|
/* 028B461C */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 028B461C */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B4620 */ _t11 = cpu->r[11] + 0xFFFF9A68u;
|
|
/* 028B4620 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B4624: ; // 0x28b4624
|
|
/* 028B4624 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4628 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B462C */ Gambit_fn_02821E68(cpu);
|
|
/* 028B4630 */ cpu->r[9] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B4630 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B4634 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4634 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B4634 */ if (_t13) goto L_028B4640; else goto L_028B4638;
|
|
L_028B4638: ; // 0x28b4638
|
|
/* 028B4638 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B463C */ Gambit_fn_02801BB0(cpu);
|
|
L_028B4640: ; // 0x28b4640
|
|
/* 028B4640 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4640 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B4644 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4644 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B4648 */ cpu->lr = cpu->r[0];
|
|
/* 028B464C */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B464C */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B4650 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B4654 */ return;
|
|
}
|
|
|
|
// fn_028B45DC @ 0x28b45dc
|
|
void Gambit_fn_028B45DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028B45DC: ; // 0x28b45dc
|
|
/* 028B45DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B45DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B45DC */ cpu->r[1] = _t0;
|
|
/* 028B45E0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B45E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B45E4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B45E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B45E8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B45E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B45EC */ cpu->r[31] = cpu->r[4];
|
|
/* 028B45F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B45F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B45F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B45F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B45F4 */ if (_t5) goto L_028B4640; else goto L_028B45F8;
|
|
L_028B45F8: ; // 0x28b45f8
|
|
/* 028B45F8 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B45FC */ cpu->r[10] = cpu->r[10] + 0xFFFF88BCu;
|
|
/* 028B4600 */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B4604 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B4604 */ rbrew_write32(cpu->mem, _t6, cpu->r[10]);
|
|
/* 028B4608 */ _t7 = cpu->r[12] + 0xFFFF9A70u;
|
|
/* 028B4608 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B4608 */ cpu->r[12] = _t7;
|
|
/* 028B460C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[11]);
|
|
/* 028B4610 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4610 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B4610 */ if (_t9) goto L_028B4614; else goto L_028B4624;
|
|
L_028B4614: ; // 0x28b4614
|
|
/* 028B4614 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B4618 */ cpu->r[11] = 0x101D0000u;
|
|
/* 028B461C */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 028B461C */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B4620 */ _t11 = cpu->r[11] + 0xFFFF9A68u;
|
|
/* 028B4620 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_028B4624: ; // 0x28b4624
|
|
/* 028B4624 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4628 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B462C */ Gambit_fn_02821E68(cpu);
|
|
/* 028B4630 */ cpu->r[9] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B4630 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B4634 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4634 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B4634 */ if (_t13) goto L_028B4640; else goto L_028B4638;
|
|
L_028B4638: ; // 0x28b4638
|
|
/* 028B4638 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B463C */ Gambit_fn_02801BB0(cpu);
|
|
L_028B4640: ; // 0x28b4640
|
|
/* 028B4640 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4640 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B4644 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4644 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B4648 */ cpu->lr = cpu->r[0];
|
|
/* 028B464C */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B464C */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B4650 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B4654 */ return;
|
|
}
|
|
|
|
// fn_028B4658 @ 0x28b4658
|
|
void Gambit_fn_028B4658(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B4658: ; // 0x28b4658
|
|
/* 028B4658 */ cpu->r[12] = 0x101F0000u;
|
|
/* 028B465C */ cpu->r[0] = 0x10140000u;
|
|
/* 028B4660 */ cpu->r[9] = 0x10140000u;
|
|
/* 028B4664 */ cpu->r[12] = cpu->r[12] + 0x00006FC8u;
|
|
/* 028B4668 */ cpu->r[9] = cpu->r[9] + 0xFFFF8780u;
|
|
/* 028B466C */ cpu->r[0] = cpu->r[0] + 0xFFFF885Cu;
|
|
/* 028B4670 */ cpu->r[11] = 0x101F0000u;
|
|
/* 028B4674 */ _t0 = cpu->r[12] + 0x00000004u;
|
|
/* 028B4674 */ rbrew_write32(cpu->mem, _t0, cpu->r[9]);
|
|
/* 028B4678 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B467C */ cpu->r[11] = cpu->r[11] + 0x00006FC0u;
|
|
/* 028B4680 */ _t1 = cpu->r[12] + 0x00000000u;
|
|
/* 028B4680 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B4684 */ cpu->r[10] = cpu->r[10] + 0xFFFF8864u;
|
|
/* 028B4688 */ _t2 = cpu->r[11] + 0x00000004u;
|
|
/* 028B4688 */ rbrew_write32(cpu->mem, _t2, cpu->r[9]);
|
|
/* 028B468C */ _t3 = cpu->r[11] + 0x00000000u;
|
|
/* 028B468C */ rbrew_write32(cpu->mem, _t3, cpu->r[10]);
|
|
/* 028B4690 */ return;
|
|
}
|
|
|
|
// fn_028B4694 @ 0x28b4694
|
|
void Gambit_fn_028B4694(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_028B4694: ; // 0x28b4694
|
|
/* 028B4694 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4698 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4698 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B4698 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B4698 */ goto L_028B469C;
|
|
L_028B469C: ; // 0x28b469c
|
|
/* 028B469C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B469C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B46A0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B46A0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B46A0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B46A0 */ goto L_028B46A4;
|
|
L_028B46A4: ; // 0x28b46a4
|
|
/* 028B46A4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B46A8 @ 0x28b46a8
|
|
void Gambit_fn_028B46A8(CPUState* cpu) {
|
|
L_028B46A8: ; // 0x28b46a8
|
|
/* 028B46A8 */ return;
|
|
}
|
|
|
|
// fn_028B46AC @ 0x28b46ac
|
|
void Gambit_fn_028B46AC(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_028B46AC: ; // 0x28b46ac
|
|
/* 028B46AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B46B0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B46B0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B46B0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B46B0 */ goto L_028B46B4;
|
|
L_028B46B4: ; // 0x28b46b4
|
|
/* 028B46B4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B46B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B46B8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B46B8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B46B8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B46B8 */ goto L_028B46BC;
|
|
L_028B46BC: ; // 0x28b46bc
|
|
/* 028B46BC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B46C4 @ 0x28b46c4
|
|
void Gambit_fn_028B46C4(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;
|
|
|
|
L_028B46C4: ; // 0x28b46c4
|
|
/* 028B46C4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B46C4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B46C4 */ cpu->r[1] = _t0;
|
|
/* 028B46C8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B46C8 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B46CC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B46CC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B46D0 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B46D0 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B46D4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B46D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B46D8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B46D8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B46DC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B46DC */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B46DC */ if (_t6) goto L_028B46E0; else goto L_028B46F0;
|
|
L_028B46E0: ; // 0x28b46e0
|
|
/* 028B46E0 */ cpu->r[3] = 0x000000A4u;
|
|
/* 028B46E4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B46E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B46E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B46EC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B46EC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B46EC */ if (_t8) goto L_028B47DC; else goto L_028B46F0;
|
|
L_028B46F0: ; // 0x28b46f0
|
|
/* 028B46F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B46F4 */ Gambit_fn_028A5208(cpu);
|
|
/* 028B46F8 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B46FC */ cpu->r[29] = cpu->r[31] + 0x00000054u;
|
|
/* 028B46FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4700 */ cpu->r[11] = cpu->r[11] + 0xFFFF8EBCu;
|
|
/* 028B4704 */ _t9 = cpu->r[31] + 0x00000050u;
|
|
/* 028B4704 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 028B4708 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4708 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4708 */ if (_t11) goto L_028B470C; else goto L_028B471C;
|
|
L_028B470C: ; // 0x28b470c
|
|
/* 028B470C */ cpu->r[3] = 0x00000050u;
|
|
/* 028B4710 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4714 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B4714 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4718 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4718 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B4718 */ if (_t13) goto L_028B47DC; else goto L_028B471C;
|
|
L_028B471C: ; // 0x28b471c
|
|
/* 028B471C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B471C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4720 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B4724 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4724 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B4724 */ if (_t15) goto L_028B4728; else goto L_028B4738;
|
|
L_028B4728: ; // 0x28b4728
|
|
/* 028B4728 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B472C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4730 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4734 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4734 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B4734 */ if (_t17) goto L_028B473C; else goto L_028B4738;
|
|
L_028B4738: ; // 0x28b4738
|
|
/* 028B4738 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4738 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
L_028B473C: ; // 0x28b473c
|
|
/* 028B473C */ cpu->r[3] = cpu->r[29] + 0x00000004u;
|
|
/* 028B473C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4740 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4740 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B4740 */ if (_t20) goto L_028B4744; else goto L_028B4754;
|
|
L_028B4744: ; // 0x28b4744
|
|
/* 028B4744 */ cpu->r[3] = 0x00000004u;
|
|
/* 028B4748 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B474C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4750 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4750 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028B4750 */ if (_t22) goto L_028B4758; else goto L_028B4754;
|
|
L_028B4754: ; // 0x28b4754
|
|
/* 028B4754 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4754 */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
L_028B4758: ; // 0x28b4758
|
|
/* 028B4758 */ cpu->r[12] = cpu->r[29] + 0x00000030u;
|
|
/* 028B4758 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B475C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B475C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028B475C */ if (_t25) goto L_028B4760; else goto L_028B4768;
|
|
L_028B4760: ; // 0x28b4760
|
|
/* 028B4760 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4764 */ Gambit_fn_02801A78(cpu);
|
|
L_028B4768: ; // 0x28b4768
|
|
/* 028B4768 */ cpu->r[0] = cpu->r[29] + 0x0000003Cu;
|
|
/* 028B4768 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B476C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B476C */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B476C */ if (_t27) goto L_028B4770; else goto L_028B4778;
|
|
L_028B4770: ; // 0x28b4770
|
|
/* 028B4770 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4774 */ Gambit_fn_02801A78(cpu);
|
|
L_028B4778: ; // 0x28b4778
|
|
/* 028B4778 */ _t28 = cpu->r[29] + 0x00000048u;
|
|
/* 028B4778 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 028B477C */ cpu->r[9] = 0x10140000u;
|
|
/* 028B4780 */ _t29 = cpu->r[29] + 0x0000004Cu;
|
|
/* 028B4780 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[30]);
|
|
/* 028B4784 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B4788 */ _t30 = cpu->r[9] + 0xFFFF882Cu;
|
|
/* 028B4788 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 028B478C */ _t31 = cpu->r[10] + 0xFFFF8828u;
|
|
/* 028B478C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 028B4790 */ _t32 = cpu->r[29] + 0x00000000u;
|
|
/* 028B4790 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 028B4794 */ _t33 = cpu->r[29] + 0x00000044u;
|
|
/* 028B4794 */ rbrew_write_f32(cpu->mem, _t33, cpu->f[0]);
|
|
/* 028B4798 */ _t34 = cpu->r[29] + 0x00000038u;
|
|
/* 028B4798 */ rbrew_write_f32(cpu->mem, _t34, cpu->f[0]);
|
|
/* 028B479C */ _t35 = cpu->r[29] + 0x00000040u;
|
|
/* 028B479C */ rbrew_write_f32(cpu->mem, _t35, cpu->f[0]);
|
|
/* 028B47A0 */ _t36 = cpu->r[29] + 0x00000030u;
|
|
/* 028B47A0 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[0]);
|
|
/* 028B47A4 */ _t37 = cpu->r[29] + 0x00000034u;
|
|
/* 028B47A4 */ rbrew_write_f32(cpu->mem, _t37, cpu->f[0]);
|
|
/* 028B47A8 */ _t38 = cpu->r[29] + 0x00000028u;
|
|
/* 028B47A8 */ rbrew_write_f32(cpu->mem, _t38, cpu->f[0]);
|
|
/* 028B47AC */ cpu->r[7] = 0x10140000u;
|
|
/* 028B47B0 */ _t39 = cpu->r[29] + 0x0000003Cu;
|
|
/* 028B47B0 */ rbrew_write_f32(cpu->mem, _t39, cpu->f[0]);
|
|
/* 028B47B4 */ _t40 = cpu->r[7] + 0xFFFF8830u;
|
|
/* 028B47B4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 028B47B8 */ cpu->r[8] = cpu->r[29] + 0x00000008u;
|
|
/* 028B47BC */ _t41 = cpu->r[29] + 0x00000004u;
|
|
/* 028B47BC */ rbrew_write32(cpu->mem, _t41, cpu->r[30]);
|
|
/* 028B47C0 */ _t42 = cpu->r[29] + 0x00000008u;
|
|
/* 028B47C0 */ rbrew_write_f32(cpu->mem, _t42, cpu->f[13]);
|
|
/* 028B47C4 */ cpu->r[0] = 0x00000006u;
|
|
/* 028B47C8 */ _t43 = cpu->r[29] + 0x0000002Cu;
|
|
/* 028B47C8 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[13]);
|
|
/* 028B47CC */ cpu->ctr = cpu->r[0];
|
|
/* 028B47D0 */ _t44 = cpu->r[29] + 0x00000024u;
|
|
/* 028B47D0 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[13]);
|
|
L_028B47D4: ; // 0x28b47d4
|
|
/* 028B47D4 */ _t45 = cpu->r[8] + 0x00000004u;
|
|
/* 028B47D4 */ rbrew_write_f32(cpu->mem, _t45, cpu->f[12]);
|
|
/* 028B47D4 */ cpu->r[8] = _t45;
|
|
/* 028B47D8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028B47D8 */ _t46 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028B47D8 */ _t47 = _t46 >> (0x00000002u & 31u);
|
|
/* 028B47D8 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028B47D8 */ if (_t48) goto L_028B47D4; else goto L_028B47DC;
|
|
L_028B47DC: ; // 0x28b47dc
|
|
/* 028B47DC */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B47DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B47E0 */ _t50 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B47E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028B47E4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B47E8 */ _t51 = cpu->r[1] + 0x00000010u;
|
|
/* 028B47E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028B47EC */ cpu->lr = cpu->r[0];
|
|
/* 028B47F0 */ _t52 = cpu->r[1] + 0x00000014u;
|
|
/* 028B47F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028B47F4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B47F8 */ return;
|
|
}
|
|
|
|
// fn_028B47FC @ 0x28b47fc
|
|
void Gambit_fn_028B47FC(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_028B47FC: ; // 0x28b47fc
|
|
/* 028B47FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4800 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4800 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B4800 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B4800 */ goto L_028B4804;
|
|
L_028B4804: ; // 0x28b4804
|
|
/* 028B4804 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B4804 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B4808 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4808 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B4808 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B4808 */ goto L_028B480C;
|
|
L_028B480C: ; // 0x28b480c
|
|
/* 028B480C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B4810 @ 0x28b4810
|
|
void Gambit_fn_028B4810(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B4810: ; // 0x28b4810
|
|
/* 028B4810 */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B4814 */ _t0 = cpu->r[3] + 0xFFFF9A6Cu;
|
|
/* 028B4814 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B4818 */ return;
|
|
}
|
|
|
|
// fn_028B481C @ 0x28b481c
|
|
void Gambit_fn_028B481C(CPUState* cpu) {
|
|
L_028B481C: ; // 0x28b481c
|
|
/* 028B481C */ cpu->r[3] = 0x00000013u;
|
|
/* 028B4820 */ return;
|
|
}
|
|
|
|
// fn_028B4824 @ 0x28b4824
|
|
void Gambit_fn_028B4824(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_028B4824: ; // 0x28b4824
|
|
/* 028B4824 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4828 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4828 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B4828 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B4828 */ goto L_028B482C;
|
|
L_028B482C: ; // 0x28b482c
|
|
/* 028B482C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B482C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B4830 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4830 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B4830 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B4830 */ goto L_028B4834;
|
|
L_028B4834: ; // 0x28b4834
|
|
/* 028B4834 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B4838 @ 0x28b4838
|
|
void Gambit_fn_028B4838(CPUState* cpu) {
|
|
L_028B4838: ; // 0x28b4838
|
|
/* 028B4838 */ return;
|
|
}
|
|
|
|
// fn_028B483C @ 0x28b483c
|
|
void Gambit_fn_028B483C(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_02836DD0: ; // 0x2836dd0
|
|
/* 02836DD0 */ cpu->r[0] = cpu->lr;
|
|
/* 02836DD4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02836DD4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02836DD4 */ cpu->r[1] = _t0;
|
|
/* 02836DD8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836DD8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02836DDC */ cpu->r[12] = 0x101D0000u;
|
|
/* 02836DE0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02836DE0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02836DE4 */ _t3 = cpu->r[12] + 0xFFFF994Cu;
|
|
/* 02836DE4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02836DE8 */ cpu->r[31] = cpu->r[3];
|
|
/* 02836DEC */ _t4 = cpu->r[12] + 0x00000060u;
|
|
/* 02836DEC */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02836DF0 */ rbrew_dispatch(cpu, 0x02d0ab60u);
|
|
/* 02836DF4 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 02836DF4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02836DF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[3]);
|
|
/* 02836DFC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836DFC */ _t7 = _t6 & 0x00000001u;
|
|
/* 02836DFC */ if (_t7) goto L_02836E00; else goto L_02836E20;
|
|
L_02836E00: ; // 0x2836e00
|
|
/* 02836E00 */ _t8 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E00 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02836E04 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 02836E08 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E08 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 02836E0C */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 02836E0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02836E10 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836E10 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02836E14 */ cpu->lr = cpu->r[0];
|
|
/* 02836E18 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02836E1C */ return;
|
|
L_02836E20: ; // 0x2836e20
|
|
/* 02836E20 */ _t12 = cpu->r[0] + cpu->r[31];
|
|
/* 02836E20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02836E24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02836E28 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836E28 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02836E28 */ if (_t14) goto L_02836E2C; else goto L_02836E20;
|
|
L_02836E2C: ; // 0x2836e2c
|
|
/* 02836E2C */ /* nop */
|
|
/* 02836E30 */ /* nop */
|
|
/* 02836E34 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836E34 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02836E34 */ if (_t16) goto L_02836E38; else goto L_02836E20;
|
|
L_02836E38: ; // 0x2836e38
|
|
/* 02836E38 */ cpu->r[11] = 0x00000001u;
|
|
/* 02836E3C */ _t17 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E3C */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 02836E40 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02836E40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02836E44 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836E44 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02836E48 */ cpu->lr = cpu->r[0];
|
|
/* 02836E4C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02836E50 */ return;
|
|
L_028B483C: ; // 0x28b483c
|
|
/* 028B483C */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028B4840 */ goto L_02836DD0;
|
|
}
|
|
|
|
// fn_028B4844 @ 0x28b4844
|
|
void Gambit_fn_028B4844(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_02836E54: ; // 0x2836e54
|
|
/* 02836E54 */ cpu->r[0] = cpu->lr;
|
|
/* 02836E58 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02836E58 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02836E58 */ cpu->r[1] = _t0;
|
|
/* 02836E5C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836E5C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02836E60 */ cpu->r[12] = 0x101D0000u;
|
|
/* 02836E64 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02836E64 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02836E68 */ _t3 = cpu->r[12] + 0xFFFF994Cu;
|
|
/* 02836E68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02836E6C */ cpu->r[31] = cpu->r[3];
|
|
/* 02836E70 */ _t4 = cpu->r[12] + 0x00000060u;
|
|
/* 02836E70 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02836E74 */ rbrew_dispatch(cpu, 0x02d0ab60u);
|
|
/* 02836E78 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 02836E78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02836E7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[3]);
|
|
/* 02836E80 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836E80 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02836E80 */ if (_t7) goto L_02836E84; else goto L_02836EA8;
|
|
L_02836E84: ; // 0x2836e84
|
|
/* 02836E84 */ _t8 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E84 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02836E88 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 02836E88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02836E8C */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 02836E8C */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 02836E90 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836E90 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02836E90 */ if (_t11) goto L_02836E94; else goto L_02836EA8;
|
|
L_02836E94: ; // 0x2836e94
|
|
/* 02836E94 */ _t12 = cpu->r[0] + cpu->r[31];
|
|
/* 02836E94 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02836E98 */ cpu->r[0] = 0x00000000u;
|
|
/* 02836E9C */ /* nop */
|
|
/* 02836EA0 */ /* nop */
|
|
/* 02836EA4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02836EA4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02836EA4 */ if (_t14) goto L_02836EA8; else goto L_02836E94;
|
|
L_02836EA8: ; // 0x2836ea8
|
|
/* 02836EA8 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 02836EA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02836EAC */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02836EAC */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02836EB0 */ cpu->lr = cpu->r[0];
|
|
/* 02836EB4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02836EB8 */ return;
|
|
L_028B4844: ; // 0x28b4844
|
|
/* 028B4844 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 028B4848 */ goto L_02836E54;
|
|
}
|
|
|
|
// fn_028B484C @ 0x28b484c
|
|
void Gambit_fn_028B484C(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_028B484C: ; // 0x28b484c
|
|
/* 028B484C */ cpu->r[0] = cpu->lr;
|
|
/* 028B4850 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4850 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4850 */ cpu->r[1] = _t0;
|
|
/* 028B4854 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4854 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B4858 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4858 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B485C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B485C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B4860 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B4864 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4868 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4868 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B486C */ cpu->r[31] = cpu->r[4];
|
|
/* 028B486C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4870 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4870 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B4874 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B4878 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4878 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B4878 */ if (_t7) goto L_028B487C; else goto L_028B488C;
|
|
L_028B487C: ; // 0x28b487c
|
|
/* 028B487C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4880 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4884 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B4884 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4888 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4888 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B4888 */ if (_t9) goto L_028B48C8; else goto L_028B488C;
|
|
L_028B488C: ; // 0x28b488c
|
|
/* 028B488C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B488C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4890 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4890 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4890 */ if (_t11) goto L_028B4894; else goto L_028B48A4;
|
|
L_028B4894: ; // 0x28b4894
|
|
/* 028B4894 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4898 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B489C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B48A0 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B48A0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B48A0 */ if (_t13) goto L_028B48BC; else goto L_028B48A4;
|
|
L_028B48A4: ; // 0x28b48a4
|
|
/* 028B48A4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B48A8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B48AC */ cpu->r[10] = cpu->r[10] + 0xFFFF894Cu;
|
|
/* 028B48B0 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B48B0 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B48B4 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B48B4 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B48B8 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B48B8 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B48BC: ; // 0x28b48bc
|
|
/* 028B48BC */ cpu->r[0] = 0x10140000u;
|
|
/* 028B48C0 */ cpu->r[0] = cpu->r[0] + 0xFFFF897Cu;
|
|
/* 028B48C4 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B48C4 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B48C8: ; // 0x28b48c8
|
|
/* 028B48C8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B48CC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B48D0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B48D4 */ Gambit_fn_028AC9E4(cpu);
|
|
/* 028B48D8 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B48D8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B48DC */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B48DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B48E0 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B48E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B48E4 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B48E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B48E8 */ cpu->lr = cpu->r[0];
|
|
/* 028B48EC */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B48EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B48F0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B48F4 */ return;
|
|
}
|
|
|
|
// fn_028B4850 @ 0x28b4850
|
|
void Gambit_fn_028B4850(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_028B4850: ; // 0x28b4850
|
|
/* 028B4850 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4850 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4850 */ cpu->r[1] = _t0;
|
|
/* 028B4854 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4854 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B4858 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4858 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B485C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B485C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B4860 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B4864 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4868 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4868 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B486C */ cpu->r[31] = cpu->r[4];
|
|
/* 028B486C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4870 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4870 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B4874 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B4878 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4878 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B4878 */ if (_t7) goto L_028B487C; else goto L_028B488C;
|
|
L_028B487C: ; // 0x28b487c
|
|
/* 028B487C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4880 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4884 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B4884 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4888 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4888 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B4888 */ if (_t9) goto L_028B48C8; else goto L_028B488C;
|
|
L_028B488C: ; // 0x28b488c
|
|
/* 028B488C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B488C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4890 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4890 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4890 */ if (_t11) goto L_028B4894; else goto L_028B48A4;
|
|
L_028B4894: ; // 0x28b4894
|
|
/* 028B4894 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4898 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B489C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B48A0 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B48A0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B48A0 */ if (_t13) goto L_028B48BC; else goto L_028B48A4;
|
|
L_028B48A4: ; // 0x28b48a4
|
|
/* 028B48A4 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B48A8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B48AC */ cpu->r[10] = cpu->r[10] + 0xFFFF894Cu;
|
|
/* 028B48B0 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B48B0 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B48B4 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B48B4 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B48B8 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B48B8 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B48BC: ; // 0x28b48bc
|
|
/* 028B48BC */ cpu->r[0] = 0x10140000u;
|
|
/* 028B48C0 */ cpu->r[0] = cpu->r[0] + 0xFFFF897Cu;
|
|
/* 028B48C4 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B48C4 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B48C8: ; // 0x28b48c8
|
|
/* 028B48C8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B48CC */ cpu->r[4] = cpu->r[28];
|
|
/* 028B48D0 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B48D4 */ Gambit_fn_028AC9E4(cpu);
|
|
/* 028B48D8 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B48D8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B48DC */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B48DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B48E0 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B48E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B48E4 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B48E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B48E8 */ cpu->lr = cpu->r[0];
|
|
/* 028B48EC */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B48EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B48F0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B48F4 */ return;
|
|
}
|
|
|
|
// fn_028B48F8 @ 0x28b48f8
|
|
void Gambit_fn_028B48F8(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_028AC9E4: ; // 0x28ac9e4
|
|
/* 028AC9E4 */ cpu->r[0] = cpu->lr;
|
|
/* 028AC9E8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028AC9E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028AC9E8 */ cpu->r[1] = _t0;
|
|
/* 028AC9EC */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 028AC9EC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028AC9F0 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028AC9F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028AC9F4 */ _t3 = cpu->r[1] + 0x00000024u;
|
|
/* 028AC9F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028AC9F8 */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028AC9F8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028AC9FC */ cpu->r[29] = cpu->r[3];
|
|
/* 028ACA00 */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028ACA00 */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028ACA04 */ _t6 = cpu->r[8] + 0x00000048u;
|
|
/* 028ACA04 */ cpu->r[10] = rbrew_read8(cpu->mem, _t6);
|
|
/* 028ACA08 */ cpu->r[31] = cpu->r[5];
|
|
/* 028ACA0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028ACA10 */ cpu->r[30] = cpu->r[4];
|
|
/* 028ACA14 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA14 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028ACA14 */ if (_t8) goto L_028ACA80; else goto L_028ACA18;
|
|
L_028ACA18: ; // 0x28aca18
|
|
/* 028ACA18 */ cpu->r[4] = 0x10140000u;
|
|
/* 028ACA1C */ cpu->r[5] = cpu->r[30];
|
|
/* 028ACA20 */ cpu->r[4] = cpu->r[4] + 0xFFFF8164u;
|
|
/* 028ACA24 */ cpu->r[3] = cpu->r[29];
|
|
/* 028ACA28 */ _t9 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028ACA28 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028ACA28 */ if (_t10) goto L_028ACA2C; // else: addr-0 trap, fall-through
|
|
L_028ACA2C: ; // 0x28aca2c
|
|
/* 028ACA2C */ Gambit_fn_028AC6C8(cpu);
|
|
/* 028ACA30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACA34 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA34 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028ACA34 */ if (_t12) goto L_028ACA80; else goto L_028ACA38;
|
|
L_028ACA38: ; // 0x28aca38
|
|
/* 028ACA38 */ cpu->r[11] = 0x00000000u;
|
|
/* 028ACA3C */ _t13 = cpu->r[29] + 0x00000020u;
|
|
/* 028ACA3C */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028ACA40 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028ACA44 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA44 */ rbrew_write32(cpu->mem, _t14, cpu->r[11]);
|
|
/* 028ACA48 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028ACA48 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 028ACA4C */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 028ACA4C */ rbrew_write32(cpu->mem, _t16, cpu->r[11]);
|
|
/* 028ACA50 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028ACA50 */ rbrew_write32(cpu->mem, _t17, cpu->r[11]);
|
|
/* 028ACA54 */ _t18 = cpu->r[1] + 0x00000018u;
|
|
/* 028ACA54 */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 028ACA58 */ _t19 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028ACA58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028ACA5C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA60 */ cpu->r[5] = cpu->r[30];
|
|
/* 028ACA64 */ Gambit_fn_028AE274(cpu);
|
|
/* 028ACA68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028ACA6C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028ACA6C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028ACA6C */ if (_t21) goto L_028ACA80; else goto L_028ACA70;
|
|
L_028ACA70: ; // 0x28aca70
|
|
/* 028ACA70 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028ACA74 */ cpu->r[5] = cpu->r[31];
|
|
/* 028ACA78 */ cpu->r[3] = cpu->r[29];
|
|
/* 028ACA7C */ Gambit_fn_028AC7F4(cpu);
|
|
L_028ACA80: ; // 0x28aca80
|
|
/* 028ACA80 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028ACA80 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028ACA84 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028ACA84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028ACA88 */ _t24 = cpu->r[1] + 0x00000020u;
|
|
/* 028ACA88 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028ACA8C */ cpu->lr = cpu->r[0];
|
|
/* 028ACA90 */ _t25 = cpu->r[1] + 0x00000024u;
|
|
/* 028ACA90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028ACA94 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028ACA98 */ return;
|
|
L_028B48F8: ; // 0x28b48f8
|
|
/* 028B48F8 */ goto L_028AC9E4;
|
|
}
|
|
|
|
// fn_028B48FC @ 0x28b48fc
|
|
void Gambit_fn_028B48FC(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_028B48FC: ; // 0x28b48fc
|
|
/* 028B48FC */ cpu->r[0] = cpu->lr;
|
|
/* 028B4900 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4900 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4900 */ cpu->r[1] = _t0;
|
|
/* 028B4904 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4904 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B4908 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4908 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B490C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B490C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B4910 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B4914 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4918 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4918 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B491C */ cpu->r[31] = cpu->r[4];
|
|
/* 028B491C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4920 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4920 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B4924 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B4928 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4928 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B4928 */ if (_t7) goto L_028B492C; else goto L_028B493C;
|
|
L_028B492C: ; // 0x28b492c
|
|
/* 028B492C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4930 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4934 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B4934 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4938 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4938 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B4938 */ if (_t9) goto L_028B4978; else goto L_028B493C;
|
|
L_028B493C: ; // 0x28b493c
|
|
/* 028B493C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B493C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4940 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4940 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4940 */ if (_t11) goto L_028B4944; else goto L_028B4954;
|
|
L_028B4944: ; // 0x28b4944
|
|
/* 028B4944 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4948 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B494C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4950 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4950 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B4950 */ if (_t13) goto L_028B496C; else goto L_028B4954;
|
|
L_028B4954: ; // 0x28b4954
|
|
/* 028B4954 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B4958 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B495C */ cpu->r[10] = cpu->r[10] + 0xFFFF894Cu;
|
|
/* 028B4960 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B4960 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B4964 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B4964 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B4968 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4968 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B496C: ; // 0x28b496c
|
|
/* 028B496C */ cpu->r[0] = 0x10140000u;
|
|
/* 028B4970 */ cpu->r[0] = cpu->r[0] + 0xFFFF897Cu;
|
|
/* 028B4974 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B4974 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B4978: ; // 0x28b4978
|
|
/* 028B4978 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B497C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B4980 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4984 */ Gambit_fn_028AC7F4(cpu);
|
|
/* 028B4988 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4988 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B498C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B498C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B4990 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4990 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B4994 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4994 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B4998 */ cpu->lr = cpu->r[0];
|
|
/* 028B499C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B499C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B49A0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B49A4 */ return;
|
|
}
|
|
|
|
// fn_028B4900 @ 0x28b4900
|
|
void Gambit_fn_028B4900(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_028B4900: ; // 0x28b4900
|
|
/* 028B4900 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4900 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4900 */ cpu->r[1] = _t0;
|
|
/* 028B4904 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4904 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B4908 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4908 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B490C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B490C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B4910 */ cpu->r[28] = cpu->r[5];
|
|
/* 028B4914 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4918 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4918 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B491C */ cpu->r[31] = cpu->r[4];
|
|
/* 028B491C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4920 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4920 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B4924 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B4928 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4928 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B4928 */ if (_t7) goto L_028B492C; else goto L_028B493C;
|
|
L_028B492C: ; // 0x28b492c
|
|
/* 028B492C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4930 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4934 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B4934 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4938 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4938 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B4938 */ if (_t9) goto L_028B4978; else goto L_028B493C;
|
|
L_028B493C: ; // 0x28b493c
|
|
/* 028B493C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B493C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4940 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4940 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4940 */ if (_t11) goto L_028B4944; else goto L_028B4954;
|
|
L_028B4944: ; // 0x28b4944
|
|
/* 028B4944 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4948 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B494C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4950 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4950 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B4950 */ if (_t13) goto L_028B496C; else goto L_028B4954;
|
|
L_028B4954: ; // 0x28b4954
|
|
/* 028B4954 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B4958 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B495C */ cpu->r[10] = cpu->r[10] + 0xFFFF894Cu;
|
|
/* 028B4960 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B4960 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B4964 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B4964 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B4968 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4968 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B496C: ; // 0x28b496c
|
|
/* 028B496C */ cpu->r[0] = 0x10140000u;
|
|
/* 028B4970 */ cpu->r[0] = cpu->r[0] + 0xFFFF897Cu;
|
|
/* 028B4974 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B4974 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B4978: ; // 0x28b4978
|
|
/* 028B4978 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B497C */ cpu->r[4] = cpu->r[28];
|
|
/* 028B4980 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4984 */ Gambit_fn_028AC7F4(cpu);
|
|
/* 028B4988 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4988 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B498C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B498C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B4990 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4990 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B4994 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4994 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B4998 */ cpu->lr = cpu->r[0];
|
|
/* 028B499C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B499C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B49A0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B49A4 */ return;
|
|
}
|
|
|
|
// fn_028B49A8 @ 0x28b49a8
|
|
void Gambit_fn_028B49A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_028B49A8: ; // 0x28b49a8
|
|
/* 028B49A8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B49AC */ cpu->r[9] = 0x00000000u;
|
|
/* 028B49B0 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B49B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B49B4 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 028B49B8 */ _t1 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B49B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B49B8 */ cpu->r[1] = _t1;
|
|
/* 028B49BC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B49BC */ rbrew_write32(cpu->mem, _t2, cpu->r[11]);
|
|
/* 028B49C0 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B49C0 */ rbrew_write32(cpu->mem, _t3, cpu->r[9]);
|
|
/* 028B49C4 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B49C4 */ rbrew_write32(cpu->mem, _t4, cpu->r[4]);
|
|
/* 028B49C8 */ _t5 = cpu->r[1] + 0x00000018u;
|
|
/* 028B49C8 */ rbrew_write32(cpu->mem, _t5, cpu->r[9]);
|
|
/* 028B49CC */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B49D0 */ _t6 = cpu->r[1] + 0x00000010u;
|
|
/* 028B49D0 */ rbrew_write32(cpu->mem, _t6, cpu->r[9]);
|
|
/* 028B49D4 */ Gambit_fn_028AC7F4(cpu);
|
|
/* 028B49D8 */ _t7 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B49D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B49DC */ cpu->lr = cpu->r[0];
|
|
/* 028B49E0 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B49E4 */ return;
|
|
}
|
|
|
|
// fn_028B49B8 @ 0x28b49b8
|
|
void Gambit_fn_028B49B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B49B8: ; // 0x28b49b8
|
|
/* 028B49B8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B49B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B49B8 */ cpu->r[1] = _t0;
|
|
/* 028B49BC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B49BC */ rbrew_write32(cpu->mem, _t1, cpu->r[11]);
|
|
/* 028B49C0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B49C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[9]);
|
|
/* 028B49C4 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B49C4 */ rbrew_write32(cpu->mem, _t3, cpu->r[4]);
|
|
/* 028B49C8 */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 028B49C8 */ rbrew_write32(cpu->mem, _t4, cpu->r[9]);
|
|
/* 028B49CC */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B49D0 */ _t5 = cpu->r[1] + 0x00000010u;
|
|
/* 028B49D0 */ rbrew_write32(cpu->mem, _t5, cpu->r[9]);
|
|
/* 028B49D4 */ Gambit_fn_028AC7F4(cpu);
|
|
/* 028B49D8 */ _t6 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B49D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B49DC */ cpu->lr = cpu->r[0];
|
|
/* 028B49E0 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B49E4 */ return;
|
|
}
|
|
|
|
// fn_028B49E8 @ 0x28b49e8
|
|
void Gambit_fn_028B49E8(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_028B49E8: ; // 0x28b49e8
|
|
/* 028B49E8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B49EC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B49EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B49EC */ cpu->r[1] = _t0;
|
|
/* 028B49F0 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B49F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B49F4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B49F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B49F8 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B49F8 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B49FC */ cpu->r[28] = cpu->r[5];
|
|
/* 028B4A00 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4A04 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4A04 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B4A08 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B4A08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4A0C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4A0C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B4A10 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B4A14 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4A14 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B4A14 */ if (_t7) goto L_028B4A18; else goto L_028B4A28;
|
|
L_028B4A18: ; // 0x28b4a18
|
|
/* 028B4A18 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4A1C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4A20 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B4A20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4A24 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4A24 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B4A24 */ if (_t9) goto L_028B4A64; else goto L_028B4A28;
|
|
L_028B4A28: ; // 0x28b4a28
|
|
/* 028B4A28 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B4A28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4A2C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4A2C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4A2C */ if (_t11) goto L_028B4A30; else goto L_028B4A40;
|
|
L_028B4A30: ; // 0x28b4a30
|
|
/* 028B4A30 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4A34 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4A38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4A3C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4A3C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B4A3C */ if (_t13) goto L_028B4A58; else goto L_028B4A40;
|
|
L_028B4A40: ; // 0x28b4a40
|
|
/* 028B4A40 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B4A44 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B4A48 */ cpu->r[10] = cpu->r[10] + 0xFFFF894Cu;
|
|
/* 028B4A4C */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B4A4C */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B4A50 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B4A50 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B4A54 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4A54 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B4A58: ; // 0x28b4a58
|
|
/* 028B4A58 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B4A5C */ cpu->r[0] = cpu->r[0] + 0xFFFF897Cu;
|
|
/* 028B4A60 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B4A60 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B4A64: ; // 0x28b4a64
|
|
/* 028B4A64 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B4A68 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B4A6C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4A70 */ Gambit_fn_028B49A8(cpu);
|
|
/* 028B4A74 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4A74 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B4A78 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4A78 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B4A7C */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4A7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B4A80 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4A80 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B4A84 */ cpu->lr = cpu->r[0];
|
|
/* 028B4A88 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4A88 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B4A8C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B4A90 */ return;
|
|
}
|
|
|
|
// fn_028B49EC @ 0x28b49ec
|
|
void Gambit_fn_028B49EC(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_028B49EC: ; // 0x28b49ec
|
|
/* 028B49EC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B49EC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B49EC */ cpu->r[1] = _t0;
|
|
/* 028B49F0 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B49F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B49F4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B49F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B49F8 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B49F8 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B49FC */ cpu->r[28] = cpu->r[5];
|
|
/* 028B4A00 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4A04 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4A04 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B4A08 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B4A08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4A0C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4A0C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B4A10 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B4A14 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4A14 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B4A14 */ if (_t7) goto L_028B4A18; else goto L_028B4A28;
|
|
L_028B4A18: ; // 0x28b4a18
|
|
/* 028B4A18 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4A1C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4A20 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B4A20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4A24 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4A24 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B4A24 */ if (_t9) goto L_028B4A64; else goto L_028B4A28;
|
|
L_028B4A28: ; // 0x28b4a28
|
|
/* 028B4A28 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B4A28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4A2C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4A2C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4A2C */ if (_t11) goto L_028B4A30; else goto L_028B4A40;
|
|
L_028B4A30: ; // 0x28b4a30
|
|
/* 028B4A30 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4A34 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4A38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4A3C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4A3C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B4A3C */ if (_t13) goto L_028B4A58; else goto L_028B4A40;
|
|
L_028B4A40: ; // 0x28b4a40
|
|
/* 028B4A40 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B4A44 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B4A48 */ cpu->r[10] = cpu->r[10] + 0xFFFF894Cu;
|
|
/* 028B4A4C */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B4A4C */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B4A50 */ _t15 = cpu->r[3] + 0x00000008u;
|
|
/* 028B4A50 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 028B4A54 */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4A54 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B4A58: ; // 0x28b4a58
|
|
/* 028B4A58 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B4A5C */ cpu->r[0] = cpu->r[0] + 0xFFFF897Cu;
|
|
/* 028B4A60 */ _t17 = cpu->r[29] + 0x00000008u;
|
|
/* 028B4A60 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_028B4A64: ; // 0x28b4a64
|
|
/* 028B4A64 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B4A68 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B4A6C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4A70 */ Gambit_fn_028B49A8(cpu);
|
|
/* 028B4A74 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4A74 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B4A78 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4A78 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B4A7C */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4A7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B4A80 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4A80 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B4A84 */ cpu->lr = cpu->r[0];
|
|
/* 028B4A88 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4A88 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B4A8C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B4A90 */ return;
|
|
}
|
|
|
|
// fn_028B4A94 @ 0x28b4a94
|
|
void Gambit_fn_028B4A94(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_028B4A94: ; // 0x28b4a94
|
|
/* 028B4A94 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B4A94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4A94 */ cpu->r[1] = _t0;
|
|
/* 028B4A98 */ /* nop */
|
|
/* 028B4A9C */ cpu->r[0] = cpu->lr;
|
|
/* 028B4AA0 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B4AA0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B4AA4 */ cpu->r[30] = 0x101D0000u;
|
|
/* 028B4AA8 */ _t2 = cpu->r[30] + 0xFFFF9A6Cu;
|
|
/* 028B4AA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B4AAC */ _t3 = cpu->r[30] + 0x00000000u;
|
|
/* 028B4AAC */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B4AB0 */ _t4 = cpu->r[12] + 0x00000014u;
|
|
/* 028B4AB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B4AB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B4AB8 */ cpu->ctr = cpu->r[0];
|
|
/* 028B4ABC */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4AC0 */ cpu->r[27] = cpu->r[4];
|
|
/* 028B4AC4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B4AC8 */ _t5 = cpu->r[31] + 0x00000014u;
|
|
/* 028B4AC8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B4ACC */ cpu->r[8] = cpu->r[31] + 0x00000008u;
|
|
/* 028B4AD0 */ _t6 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B4AD0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B4AD4 */ cpu->r[31] = cpu->r[8] - cpu->r[29];
|
|
/* 028B4AD8 */ cpu->r[28] = cpu->r[7] - cpu->r[29];
|
|
/* 028B4ADC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B4AE0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4AE0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B4AE0 */ if (_t8) goto L_028B4B20; else goto L_028B4AE4;
|
|
L_028B4AE4: ; // 0x28b4ae4
|
|
/* 028B4AE4 */ cpu->r[26] = 0x00000001u;
|
|
L_028B4AE8: ; // 0x28b4ae8
|
|
/* 028B4AE8 */ _t9 = cpu->r[28] + 0x00000028u;
|
|
/* 028B4AE8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B4AEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4AF0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4AF0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4AF0 */ if (_t11) goto L_028B4B08; else goto L_028B4AF4;
|
|
L_028B4AF4: ; // 0x28b4af4
|
|
/* 028B4AF4 */ _t12 = cpu->r[3] + 0x00000050u;
|
|
/* 028B4AF4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B4AF8 */ _t13 = cpu->r[9] + 0x00000024u;
|
|
/* 028B4AF8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B4AFC */ cpu->ctr = cpu->r[10];
|
|
/* 028B4B00 */ cpu->r[4] = cpu->r[27];
|
|
/* 028B4B04 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B4B08: ; // 0x28b4b08
|
|
/* 028B4B08 */ cpu->r[6] = cpu->r[28] + cpu->r[29];
|
|
/* 028B4B0C */ _t14 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B4B0C */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[26]);
|
|
/* 028B4B10 */ _t15 = cpu->r[6] + 0x00000004u;
|
|
/* 028B4B10 */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B4B14 */ cpu->r[28] = cpu->r[11] - cpu->r[29];
|
|
/* 028B4B18 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B4B1C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4B1C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B4B1C */ if (_t17) goto L_028B4B20; else goto L_028B4AE8;
|
|
L_028B4B20: ; // 0x28b4b20
|
|
/* 028B4B20 */ _t18 = cpu->r[30] + 0x00000000u;
|
|
/* 028B4B20 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B4B24 */ _t19 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B4B24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B4B28 */ cpu->ctr = cpu->r[0];
|
|
/* 028B4B2C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4B30 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B4B34 */ /* nop */
|
|
/* 028B4B38 */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 028B4B38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B4B3C */ cpu->lr = cpu->r[0];
|
|
/* 028B4B40 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B4B44 */ return;
|
|
}
|
|
|
|
// fn_028B4B48 @ 0x28b4b48
|
|
void Gambit_fn_028B4B48(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_028B4B48: ; // 0x28b4b48
|
|
/* 028B4B48 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B4B48 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4B48 */ cpu->r[1] = _t0;
|
|
/* 028B4B4C */ /* nop */
|
|
/* 028B4B50 */ cpu->r[0] = cpu->lr;
|
|
/* 028B4B54 */ cpu->r[27] = cpu->r[3];
|
|
/* 028B4B58 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B4B58 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B4B5C */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B4B60 */ _t2 = cpu->r[3] + 0xFFFF9A6Cu;
|
|
/* 028B4B60 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B4B64 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4B64 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B4B68 */ _t4 = cpu->r[12] + 0x00000014u;
|
|
/* 028B4B68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B4B6C */ cpu->ctr = cpu->r[0];
|
|
/* 028B4B70 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4B74 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B4B78 */ _t5 = cpu->r[27] + 0x00000014u;
|
|
/* 028B4B78 */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B4B7C */ cpu->r[8] = cpu->r[27] + 0x00000008u;
|
|
/* 028B4B80 */ _t6 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028B4B80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B4B84 */ cpu->r[31] = cpu->r[8] - cpu->r[29];
|
|
/* 028B4B88 */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028B4B8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B4B90 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4B90 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B4B90 */ if (_t8) goto L_028B4BCC; else goto L_028B4B94;
|
|
L_028B4B94: ; // 0x28b4b94
|
|
/* 028B4B94 */ cpu->r[26] = 0x00000001u;
|
|
L_028B4B98: ; // 0x28b4b98
|
|
/* 028B4B98 */ _t9 = cpu->r[28] + 0x00000028u;
|
|
/* 028B4B98 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B4B9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4BA0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4BA0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4BA0 */ if (_t11) goto L_028B4BB4; else goto L_028B4BA4;
|
|
L_028B4BA4: ; // 0x28b4ba4
|
|
/* 028B4BA4 */ _t12 = cpu->r[3] + 0x00000050u;
|
|
/* 028B4BA4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B4BA8 */ _t13 = cpu->r[9] + 0x00000044u;
|
|
/* 028B4BA8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B4BAC */ cpu->ctr = cpu->r[10];
|
|
/* 028B4BB0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B4BB4: ; // 0x28b4bb4
|
|
/* 028B4BB4 */ cpu->r[6] = cpu->r[28] + cpu->r[29];
|
|
/* 028B4BB8 */ _t14 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B4BB8 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[26]);
|
|
/* 028B4BBC */ _t15 = cpu->r[6] + 0x00000004u;
|
|
/* 028B4BBC */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B4BC0 */ cpu->r[28] = cpu->r[11] - cpu->r[29];
|
|
/* 028B4BC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B4BC8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4BC8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B4BC8 */ if (_t17) goto L_028B4BCC; else goto L_028B4B98;
|
|
L_028B4BCC: ; // 0x28b4bcc
|
|
/* 028B4BCC */ _t18 = cpu->r[30] + 0x00000000u;
|
|
/* 028B4BCC */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B4BD0 */ _t19 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B4BD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B4BD4 */ cpu->ctr = cpu->r[0];
|
|
/* 028B4BD8 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4BDC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B4BE0 */ _t20 = cpu->r[27] + 0x00000054u;
|
|
/* 028B4BE0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B4BE4 */ Gambit_fn_028AACF8(cpu);
|
|
/* 028B4BE8 */ /* nop */
|
|
/* 028B4BEC */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 028B4BEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B4BF0 */ cpu->lr = cpu->r[0];
|
|
/* 028B4BF4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B4BF8 */ return;
|
|
}
|
|
|
|
// fn_028B4BFC @ 0x28b4bfc
|
|
void Gambit_fn_028B4BFC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028B4BFC: ; // 0x28b4bfc
|
|
/* 028B4BFC */ _t0 = cpu->r[3] + 0x00000020u;
|
|
/* 028B4BFC */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B4C00 */ _t1 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B4C00 */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B4C04 */ goto L_028B62F0;
|
|
L_028B62F0: ; // 0x28b62f0
|
|
/* 028B62F0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B62F4 */ _t2 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B62F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[1]);
|
|
/* 028B62F4 */ cpu->r[1] = _t2;
|
|
/* 028B62F8 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B62F8 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B62FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6300 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6300 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B6304 */ _t5 = cpu->r[31] + 0x00000088u;
|
|
/* 028B6304 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6308 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[4]);
|
|
/* 028B630C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B630C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B630C */ if (_t7) goto L_028B6340; else goto L_028B6310;
|
|
L_028B6310: ; // 0x28b6310
|
|
/* 028B6310 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6314 */ _t8 = cpu->r[31] + 0x00000088u;
|
|
/* 028B6314 */ rbrew_write32(cpu->mem, _t8, cpu->r[4]);
|
|
/* 028B6318 */ Gambit_fn_028B6080(cpu);
|
|
/* 028B631C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6320 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6320 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B6320 */ if (_t10) goto L_028B6340; else goto L_028B6324;
|
|
L_028B6324: ; // 0x28b6324
|
|
/* 028B6324 */ _t11 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028B6324 */ cpu->r[0] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028B6328 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B632C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B632C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B632C */ if (_t13) goto L_028B6340; else goto L_028B6330;
|
|
L_028B6330: ; // 0x28b6330
|
|
/* 028B6330 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6334 */ Gambit_fn_028B6090(cpu);
|
|
/* 028B6338 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B633C */ Gambit_fn_028AE510(cpu);
|
|
L_028B6340: ; // 0x28b6340
|
|
/* 028B6340 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6340 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B6344 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6344 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B6348 */ cpu->lr = cpu->r[0];
|
|
/* 028B634C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B6350 */ return;
|
|
}
|
|
|
|
// fn_028B4C08 @ 0x28b4c08
|
|
void Gambit_fn_028B4C08(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028B4C08: ; // 0x28b4c08
|
|
/* 028B4C08 */ _t0 = cpu->r[3] + 0x00000020u;
|
|
/* 028B4C08 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B4C0C */ _t1 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B4C0C */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B4C10 */ _t2 = cpu->r[12] + 0x00000088u;
|
|
/* 028B4C10 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B4C14 */ return;
|
|
}
|
|
|
|
// fn_028B4C18 @ 0x28b4c18
|
|
void Gambit_fn_028B4C18(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028B4C18: ; // 0x28b4c18
|
|
/* 028B4C18 */ _t0 = cpu->r[3] + 0x00000020u;
|
|
/* 028B4C18 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B4C1C */ _t1 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B4C1C */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B4C20 */ return;
|
|
}
|
|
|
|
// fn_028B4C24 @ 0x28b4c24
|
|
void Gambit_fn_028B4C24(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028B4C24: ; // 0x28b4c24
|
|
/* 028B4C24 */ cpu->r[0] = cpu->lr;
|
|
/* 028B4C28 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B4C28 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B4C2C */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B4C2C */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B4C2C */ cpu->r[1] = _t1;
|
|
/* 028B4C30 */ Gambit_fn_028B4C18(cpu);
|
|
/* 028B4C34 */ Gambit_fn_028B6078(cpu);
|
|
/* 028B4C38 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4C38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B4C3C */ cpu->lr = cpu->r[0];
|
|
/* 028B4C40 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B4C44 */ return;
|
|
}
|
|
|
|
// fn_028B4C2C @ 0x28b4c2c
|
|
void Gambit_fn_028B4C2C(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_028B4C2C: ; // 0x28b4c2c
|
|
/* 028B4C2C */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B4C2C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4C2C */ cpu->r[1] = _t0;
|
|
/* 028B4C30 */ Gambit_fn_028B4C18(cpu);
|
|
/* 028B4C34 */ Gambit_fn_028B6078(cpu);
|
|
/* 028B4C38 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4C38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B4C3C */ cpu->lr = cpu->r[0];
|
|
/* 028B4C40 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B4C44 */ return;
|
|
}
|
|
|
|
// fn_028B4C48 @ 0x28b4c48
|
|
void Gambit_fn_028B4C48(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028B4C48: ; // 0x28b4c48
|
|
/* 028B4C48 */ cpu->r[0] = cpu->lr;
|
|
/* 028B4C4C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4C4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4C4C */ cpu->r[1] = _t0;
|
|
/* 028B4C50 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4C50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B4C54 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B4C58 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4C58 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B4C5C */ _t3 = cpu->r[3] + 0x00000020u;
|
|
/* 028B4C5C */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B4C60 */ cpu->r[10] = cpu->r[10] + 0xFFFF8934u;
|
|
/* 028B4C64 */ _t4 = cpu->r[12] + 0x00000008u;
|
|
/* 028B4C64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B4C68 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4C68 */ rbrew_write32(cpu->mem, _t5, cpu->r[10]);
|
|
/* 028B4C6C */ cpu->r[31] = cpu->r[4];
|
|
/* 028B4C70 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4C70 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028B4C74 */ Gambit_fn_028C2A0C(cpu);
|
|
/* 028B4C78 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028B4C7C */ cpu->r[4] = cpu->r[31];
|
|
/* 028B4C80 */ Gambit_fn_028BA754(cpu);
|
|
/* 028B4C84 */ _t7 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4C84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B4C88 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4C88 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B4C8C */ cpu->lr = cpu->r[0];
|
|
/* 028B4C90 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B4C94 */ return;
|
|
}
|
|
|
|
// fn_028B4C4C @ 0x28b4c4c
|
|
void Gambit_fn_028B4C4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_028B4C4C: ; // 0x28b4c4c
|
|
/* 028B4C4C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B4C4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4C4C */ cpu->r[1] = _t0;
|
|
/* 028B4C50 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4C50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B4C54 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B4C58 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4C58 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B4C5C */ _t3 = cpu->r[3] + 0x00000020u;
|
|
/* 028B4C5C */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B4C60 */ cpu->r[10] = cpu->r[10] + 0xFFFF8934u;
|
|
/* 028B4C64 */ _t4 = cpu->r[12] + 0x00000008u;
|
|
/* 028B4C64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B4C68 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4C68 */ rbrew_write32(cpu->mem, _t5, cpu->r[10]);
|
|
/* 028B4C6C */ cpu->r[31] = cpu->r[4];
|
|
/* 028B4C70 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4C70 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028B4C74 */ Gambit_fn_028C2A0C(cpu);
|
|
/* 028B4C78 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 028B4C7C */ cpu->r[4] = cpu->r[31];
|
|
/* 028B4C80 */ Gambit_fn_028BA754(cpu);
|
|
/* 028B4C84 */ _t7 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B4C84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B4C88 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028B4C88 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B4C8C */ cpu->lr = cpu->r[0];
|
|
/* 028B4C90 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B4C94 */ return;
|
|
}
|
|
|
|
// fn_028B4C98 @ 0x28b4c98
|
|
void Gambit_fn_028B4C98(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_028B4C98: ; // 0x28b4c98
|
|
/* 028B4C98 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028B4C98 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4C98 */ cpu->r[1] = _t0;
|
|
/* 028B4C9C */ /* nop */
|
|
/* 028B4CA0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B4CA4 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028B4CA4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B4CA8 */ cpu->r[27] = cpu->r[4];
|
|
/* 028B4CAC */ cpu->r[28] = cpu->r[3];
|
|
/* 028B4CB0 */ _t2 = cpu->r[27] + 0x00000004u;
|
|
/* 028B4CB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B4CB4 */ _t3 = cpu->r[28] + 0x0000003Cu;
|
|
/* 028B4CB4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B4CB8 */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028B4CBC */ _t4 = cpu->r[28] + 0x00000060u;
|
|
/* 028B4CBC */ cpu->r[0] = rbrew_read8(cpu->mem, _t4);
|
|
/* 028B4CC0 */ _t5 = cpu->r[28] + 0x00000020u;
|
|
/* 028B4CC0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B4CC4 */ cpu->r[29] = cpu->r[9] + cpu->r[7];
|
|
/* 028B4CC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B4CCC */ _t6 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028B4CCC */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B4CD0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4CD0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B4CD0 */ if (_t8) goto L_028B4CD4; else goto L_028B4CE4;
|
|
L_028B4CD4: ; // 0x28b4cd4
|
|
/* 028B4CD4 */ _t9 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B4CD4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B4CD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4CDC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4CDC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B4CDC */ if (_t11) goto L_028B4E34; else goto L_028B4CE0;
|
|
L_028B4CE0: ; // 0x28b4ce0
|
|
/* 028B4CE0 */ goto L_028B4DD4;
|
|
L_028B4CE4: ; // 0x28b4ce4
|
|
/* 028B4CE4 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B4CE8 */ Gambit_fn_028B4C24(cpu);
|
|
/* 028B4CEC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B4CF0 */ cpu->r[4] = cpu->r[27];
|
|
/* 028B4CF4 */ cpu->r[5] = 0x00000015u;
|
|
/* 028B4CF8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B4CFC */ _t12 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B4CFC */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B4D00 */ _t13 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B4D00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B4D04 */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 028B4D04 */ cpu->r[26] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B4D08 */ cpu->ctr = cpu->r[0];
|
|
/* 028B4D0C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B4D10 */ cpu->r[4] = cpu->r[27];
|
|
/* 028B4D14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B4D18 */ cpu->r[7] = cpu->r[3];
|
|
/* 028B4D1C */ _t15 = cpu->r[7] + 0x00000000u;
|
|
/* 028B4D1C */ cpu->r[0] = rbrew_read8(cpu->mem, _t15);
|
|
/* 028B4D20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B4D24 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4D24 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B4D24 */ if (_t17) goto L_028B4DAC; else goto L_028B4D28;
|
|
L_028B4D28: ; // 0x28b4d28
|
|
/* 028B4D28 */ _t18 = cpu->r[28] + 0x0000006Cu;
|
|
/* 028B4D28 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B4D2C */ _t19 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028B4D2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B4D30 */ _t20 = cpu->r[9] + 0x00000004u;
|
|
/* 028B4D30 */ cpu->r[6] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B4D34 */ cpu->r[12] = cpu->r[9] - cpu->r[0];
|
|
/* 028B4D38 */ cpu->r[31] = cpu->r[6] - cpu->r[0];
|
|
/* 028B4D3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[12]);
|
|
/* 028B4D40 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4D40 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028B4D40 */ if (_t22) goto L_028B4D8C; else goto L_028B4D44;
|
|
L_028B4D44: ; // 0x28b4d44
|
|
/* 028B4D44 */ _t23 = cpu->r[31] + 0x00000000u;
|
|
/* 028B4D44 */ cpu->r[8] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B4D48 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[26]);
|
|
/* 028B4D4C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4D4C */ _t25 = _t24 & 0x00000001u;
|
|
/* 028B4D4C */ if (_t25) goto L_028B4D50; else goto L_028B4D78;
|
|
L_028B4D50: ; // 0x28b4d50
|
|
/* 028B4D50 */ _t26 = cpu->r[31] + 0x00000004u;
|
|
/* 028B4D50 */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B4D54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B4D58 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4D58 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B4D58 */ if (_t28) goto L_028B4D5C; else goto L_028B4D6C;
|
|
L_028B4D5C: ; // 0x28b4d5c
|
|
/* 028B4D5C */ _t29 = cpu->r[28] + 0x00000064u;
|
|
/* 028B4D5C */ cpu->r[4] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B4D60 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B4D64 */ Gambit_fn_028B4C48(cpu);
|
|
/* 028B4D68 */ _t30 = cpu->r[31] + 0x00000004u;
|
|
/* 028B4D68 */ rbrew_write32(cpu->mem, _t30, cpu->r[3]);
|
|
L_028B4D6C: ; // 0x28b4d6c
|
|
/* 028B4D6C */ _t31 = cpu->r[31] + 0x00000004u;
|
|
/* 028B4D6C */ cpu->r[3] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B4D70 */ _t32 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B4D70 */ rbrew_write32(cpu->mem, _t32, cpu->r[3]);
|
|
/* 028B4D74 */ goto L_028B4DCC;
|
|
L_028B4D78: ; // 0x28b4d78
|
|
/* 028B4D78 */ cpu->r[10] = cpu->r[31] + cpu->r[0];
|
|
/* 028B4D7C */ _t33 = cpu->r[10] + 0x00000004u;
|
|
/* 028B4D7C */ cpu->r[11] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B4D80 */ cpu->r[31] = cpu->r[11] - cpu->r[0];
|
|
/* 028B4D84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[12]);
|
|
/* 028B4D88 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4D88 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028B4D88 */ if (_t35) goto L_028B4D8C; else goto L_028B4D44;
|
|
L_028B4D8C: ; // 0x28b4d8c
|
|
/* 028B4D8C */ _t36 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B4D8C */ cpu->r[3] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028B4D90 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B4D94 */ _t37 = cpu->r[28] + 0x00000020u;
|
|
/* 028B4D94 */ cpu->r[5] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028B4D98 */ cpu->r[6] = cpu->r[6] + 0xFFFF898Cu;
|
|
/* 028B4D9C */ _t38 = cpu->r[27] + 0x00000000u;
|
|
/* 028B4D9C */ cpu->r[8] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B4DA0 */ cpu->r[4] = 0x0000000Bu;
|
|
/* 028B4DA4 */ _t39 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B4DA4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028B4DA4 */ if (_t40) goto L_028B4DA8; // else: addr-0 trap, fall-through
|
|
L_028B4DA8: ; // 0x28b4da8
|
|
/* 028B4DA8 */ Gambit_fn_028AA73C(cpu);
|
|
L_028B4DAC: ; // 0x28b4dac
|
|
/* 028B4DAC */ _t41 = cpu->r[28] + 0x00000068u;
|
|
/* 028B4DAC */ cpu->r[3] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B4DB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4DB4 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4DB4 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028B4DB4 */ if (_t43) goto L_028B4DB8; else goto L_028B4DC8;
|
|
L_028B4DB8: ; // 0x28b4db8
|
|
/* 028B4DB8 */ _t44 = cpu->r[28] + 0x00000064u;
|
|
/* 028B4DB8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028B4DBC */ cpu->r[3] = cpu->r[28];
|
|
/* 028B4DC0 */ Gambit_fn_028B4C48(cpu);
|
|
/* 028B4DC4 */ _t45 = cpu->r[28] + 0x00000068u;
|
|
/* 028B4DC4 */ rbrew_write32(cpu->mem, _t45, cpu->r[3]);
|
|
L_028B4DC8: ; // 0x28b4dc8
|
|
/* 028B4DC8 */ _t46 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B4DC8 */ rbrew_write32(cpu->mem, _t46, cpu->r[3]);
|
|
L_028B4DCC: ; // 0x28b4dcc
|
|
/* 028B4DCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4DD0 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4DD0 */ _t48 = _t47 & 0x00000001u;
|
|
/* 028B4DD0 */ if (_t48) goto L_028B4E34; else goto L_028B4DD4;
|
|
L_028B4DD4: ; // 0x28b4dd4
|
|
/* 028B4DD4 */ _t49 = cpu->r[30] + 0x0000006Cu;
|
|
/* 028B4DD4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B4DD8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B4DDC */ _t50 = cpu->r[1] + 0x00000008u;
|
|
/* 028B4DDC */ rbrew_write32(cpu->mem, _t50, cpu->r[8]);
|
|
/* 028B4DE0 */ _t51 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B4DE0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028B4DE4 */ cpu->r[5] = 0x00000000u;
|
|
/* 028B4DE8 */ Gambit_fn_028BB494(cpu);
|
|
/* 028B4DEC */ _t52 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B4DEC */ cpu->r[11] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028B4DF0 */ _t53 = cpu->r[30] + 0x00000070u;
|
|
/* 028B4DF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028B4DF4 */ _t54 = cpu->r[11] + 0x000000F8u;
|
|
/* 028B4DF4 */ rbrew_write32(cpu->mem, _t54, cpu->r[0]);
|
|
/* 028B4DF8 */ _t55 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B4DF8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028B4DFC */ cpu->r[3] = cpu->r[5] + 0x000000FCu;
|
|
/* 028B4E00 */ _t56 = cpu->r[30] + 0x0000007Cu;
|
|
/* 028B4E00 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 028B4E04 */ Gambit_fn_028E1550(cpu);
|
|
/* 028B4E08 */ _t57 = cpu->r[30] + 0x00000068u;
|
|
/* 028B4E08 */ cpu->r[12] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028B4E0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B4E10 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4E10 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028B4E10 */ if (_t59) goto L_028B4E34; else goto L_028B4E14;
|
|
L_028B4E14: ; // 0x28b4e14
|
|
/* 028B4E14 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B4E18 */ _t60 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B4E18 */ cpu->r[6] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028B4E1C */ cpu->r[0] = cpu->r[0] + 0xFFFF8934u;
|
|
/* 028B4E20 */ cpu->r[4] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4E24 */ _t61 = cpu->r[1] + 0x00000010u;
|
|
/* 028B4E24 */ rbrew_write32(cpu->mem, _t61, cpu->r[0]);
|
|
/* 028B4E28 */ cpu->r[3] = cpu->r[6] + 0x000000FCu;
|
|
/* 028B4E2C */ _t62 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B4E2C */ rbrew_write32(cpu->mem, _t62, cpu->r[12]);
|
|
/* 028B4E30 */ Gambit_fn_028E1510(cpu);
|
|
L_028B4E34: ; // 0x28b4e34
|
|
/* 028B4E34 */ /* nop */
|
|
/* 028B4E38 */ _t63 = cpu->r[1] + 0x00000034u;
|
|
/* 028B4E38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028B4E3C */ cpu->lr = cpu->r[0];
|
|
/* 028B4E40 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028B4E44 */ return;
|
|
}
|
|
|
|
// fn_028B4E48 @ 0x28b4e48
|
|
void Gambit_fn_028B4E48(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_028B4E48: ; // 0x28b4e48
|
|
/* 028B4E48 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B4E48 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4E48 */ cpu->r[1] = _t0;
|
|
/* 028B4E4C */ cpu->r[0] = cpu->lr;
|
|
/* 028B4E50 */ /* nop */
|
|
/* 028B4E54 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4E54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B4E58 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B4E5C */ cpu->r[27] = cpu->r[5];
|
|
/* 028B4E60 */ cpu->r[28] = cpu->r[7];
|
|
/* 028B4E64 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B4E64 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B4E68 */ cpu->r[29] = cpu->r[6];
|
|
/* 028B4E6C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4E6C */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B4E6C */ if (_t3) goto L_028B4E70; else goto L_028B4E80;
|
|
L_028B4E70: ; // 0x28b4e70
|
|
/* 028B4E70 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 028B4E74 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4E78 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B4E78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B4E7C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4E7C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B4E7C */ if (_t5) goto L_028B4F84; else goto L_028B4E80;
|
|
L_028B4E80: ; // 0x28b4e80
|
|
/* 028B4E80 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4E84 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B4E88 */ cpu->r[5] = cpu->r[27];
|
|
/* 028B4E8C */ cpu->r[6] = cpu->r[29];
|
|
/* 028B4E90 */ cpu->r[7] = cpu->r[28];
|
|
/* 028B4E94 */ Gambit_fn_028ACDD8(cpu);
|
|
/* 028B4E98 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B4E9C */ cpu->r[29] = 0x00000000u;
|
|
/* 028B4EA0 */ cpu->r[0] = cpu->r[0] + 0xFFFF89BCu;
|
|
/* 028B4EA4 */ _t6 = cpu->r[30] + 0x00000070u;
|
|
/* 028B4EA4 */ rbrew_write32(cpu->mem, _t6, cpu->r[29]);
|
|
/* 028B4EA8 */ _t7 = cpu->r[30] + 0x0000005Cu;
|
|
/* 028B4EA8 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028B4EAC */ _t8 = cpu->r[30] + 0x00000074u;
|
|
/* 028B4EAC */ rbrew_write32(cpu->mem, _t8, cpu->r[29]);
|
|
/* 028B4EB0 */ _t9 = cpu->r[30] + 0x00000068u;
|
|
/* 028B4EB0 */ rbrew_write32(cpu->mem, _t9, cpu->r[29]);
|
|
/* 028B4EB4 */ cpu->r[3] = cpu->r[30] + 0x00000078u;
|
|
/* 028B4EB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4EB8 */ _t10 = cpu->r[30] + 0x0000006Cu;
|
|
/* 028B4EB8 */ rbrew_write32(cpu->mem, _t10, cpu->r[29]);
|
|
/* 028B4EBC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4EBC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B4EBC */ if (_t12) goto L_028B4EC0; else goto L_028B4ED0;
|
|
L_028B4EC0: ; // 0x28b4ec0
|
|
/* 028B4EC0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4EC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4EC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4ECC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4ECC */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B4ECC */ if (_t14) goto L_028B4EF4; else goto L_028B4ED0;
|
|
L_028B4ED0: ; // 0x28b4ed0
|
|
/* 028B4ED0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4ED4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4ED4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B4ED4 */ if (_t16) goto L_028B4ED8; else goto L_028B4EE8;
|
|
L_028B4ED8: ; // 0x28b4ed8
|
|
/* 028B4ED8 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4EDC */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4EE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4EE4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4EE4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B4EE4 */ if (_t18) goto L_028B4EF4; else goto L_028B4EE8;
|
|
L_028B4EE8: ; // 0x28b4ee8
|
|
/* 028B4EE8 */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 028B4EE8 */ rbrew_write32(cpu->mem, _t19, cpu->r[29]);
|
|
/* 028B4EEC */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4EEC */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
/* 028B4EF0 */ _t21 = cpu->r[3] + 0x00000008u;
|
|
/* 028B4EF0 */ rbrew_write32(cpu->mem, _t21, cpu->r[29]);
|
|
L_028B4EF4: ; // 0x28b4ef4
|
|
/* 028B4EF4 */ _t22 = cpu->r[30] + 0x00000084u;
|
|
/* 028B4EF4 */ rbrew_write32(cpu->mem, _t22, cpu->r[29]);
|
|
/* 028B4EF8 */ _t23 = cpu->r[30] + 0x00000088u;
|
|
/* 028B4EF8 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028B4EFC */ _t24 = cpu->r[31] + 0x00000020u;
|
|
/* 028B4EFC */ cpu->r[0] = rbrew_read8(cpu->mem, _t24);
|
|
/* 028B4F00 */ _t25 = cpu->r[30] + 0x00000060u;
|
|
/* 028B4F00 */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[0]);
|
|
/* 028B4F04 */ _t26 = cpu->r[31] + 0x00000024u;
|
|
/* 028B4F04 */ cpu->r[4] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B4F08 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 028B4F08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B4F0C */ _t27 = cpu->r[30] + 0x00000064u;
|
|
/* 028B4F0C */ rbrew_write32(cpu->mem, _t27, cpu->r[4]);
|
|
/* 028B4F10 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4F10 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028B4F10 */ if (_t29) goto L_028B4F14; else goto L_028B4F20;
|
|
L_028B4F14: ; // 0x28b4f14
|
|
/* 028B4F14 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4F18 */ Gambit_fn_028B4C48(cpu);
|
|
/* 028B4F1C */ _t30 = cpu->r[30] + 0x00000068u;
|
|
/* 028B4F1C */ rbrew_write32(cpu->mem, _t30, cpu->r[3]);
|
|
L_028B4F20: ; // 0x28b4f20
|
|
/* 028B4F20 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B4F24 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B4F28 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B4F2C */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B4F30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4F34 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4F34 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028B4F34 */ if (_t32) goto L_028B4F74; else goto L_028B4F38;
|
|
L_028B4F38: ; // 0x28b4f38
|
|
/* 028B4F38 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B4F38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B4F3C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4F3C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028B4F3C */ if (_t34) goto L_028B4F40; else goto L_028B4F50;
|
|
L_028B4F40: ; // 0x28b4f40
|
|
/* 028B4F40 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B4F44 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B4F48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B4F4C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4F4C */ _t36 = _t35 & 0x00000001u;
|
|
/* 028B4F4C */ if (_t36) goto L_028B4F5C; else goto L_028B4F50;
|
|
L_028B4F50: ; // 0x28b4f50
|
|
/* 028B4F50 */ _t37 = cpu->r[3] + 0x00000004u;
|
|
/* 028B4F50 */ rbrew_write32(cpu->mem, _t37, cpu->r[3]);
|
|
/* 028B4F54 */ _t38 = cpu->r[3] + 0x00000008u;
|
|
/* 028B4F54 */ rbrew_write32(cpu->mem, _t38, cpu->r[29]);
|
|
/* 028B4F58 */ _t39 = cpu->r[3] + 0x00000000u;
|
|
/* 028B4F58 */ rbrew_write32(cpu->mem, _t39, cpu->r[3]);
|
|
L_028B4F5C: ; // 0x28b4f5c
|
|
/* 028B4F5C */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028B4F60 */ _t40 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B4F60 */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
/* 028B4F64 */ cpu->r[11] = 0x00000008u;
|
|
/* 028B4F68 */ _t41 = cpu->r[30] + 0x0000006Cu;
|
|
/* 028B4F68 */ rbrew_write32(cpu->mem, _t41, cpu->r[31]);
|
|
/* 028B4F6C */ _t42 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B4F6C */ rbrew_write32(cpu->mem, _t42, cpu->r[11]);
|
|
/* 028B4F70 */ goto L_028B4F84;
|
|
L_028B4F74: ; // 0x28b4f74
|
|
/* 028B4F74 */ cpu->r[31] = 0x00000000u;
|
|
/* 028B4F78 */ cpu->r[11] = 0x00000008u;
|
|
/* 028B4F7C */ _t43 = cpu->r[30] + 0x0000006Cu;
|
|
/* 028B4F7C */ rbrew_write32(cpu->mem, _t43, cpu->r[31]);
|
|
/* 028B4F80 */ _t44 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B4F80 */ rbrew_write32(cpu->mem, _t44, cpu->r[11]);
|
|
L_028B4F84: ; // 0x28b4f84
|
|
/* 028B4F84 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B4F88 */ /* nop */
|
|
/* 028B4F8C */ _t45 = cpu->r[1] + 0x00000024u;
|
|
/* 028B4F8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028B4F90 */ cpu->lr = cpu->r[0];
|
|
/* 028B4F94 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B4F98 */ return;
|
|
}
|
|
|
|
// fn_028B4F9C @ 0x28b4f9c
|
|
void Gambit_fn_028B4F9C(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;
|
|
|
|
L_028B4F9C: ; // 0x28b4f9c
|
|
/* 028B4F9C */ _t0 = cpu->r[1] + 0xFFFFFF68u;
|
|
/* 028B4F9C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B4F9C */ cpu->r[1] = _t0;
|
|
/* 028B4FA0 */ /* nop */
|
|
/* 028B4FA4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B4FA8 */ _t1 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028B4FA8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B4FAC */ cpu->r[26] = cpu->r[3];
|
|
/* 028B4FB0 */ _t2 = cpu->r[26] + 0x00000074u;
|
|
/* 028B4FB0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B4FB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B4FB8 */ cpu->r[31] = 0x00000000u;
|
|
/* 028B4FBC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4FBC */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B4FBC */ if (_t4) goto L_028B4FC4; else goto L_028B4FC0;
|
|
L_028B4FC0: ; // 0x28b4fc0
|
|
/* 028B4FC0 */ _t5 = cpu->r[12] + 0x00000000u;
|
|
/* 028B4FC0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
L_028B4FC4: ; // 0x28b4fc4
|
|
/* 028B4FC4 */ _t6 = cpu->r[26] + 0x00000070u;
|
|
/* 028B4FC4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B4FC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B4FCC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4FCC */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B4FCC */ if (_t8) goto L_028B4FF8; else goto L_028B4FD0;
|
|
L_028B4FD0: ; // 0x28b4fd0
|
|
/* 028B4FD0 */ cpu->r[29] = cpu->r[31];
|
|
/* 028B4FD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4FD4 */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B4FD4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B4FD4 */ if (_t10) goto L_028B4FD8; else goto L_028B4FF8;
|
|
L_028B4FD8: ; // 0x28b4fd8
|
|
/* 028B4FD8 */ cpu->r[30] = 0x00000000u;
|
|
L_028B4FDC: ; // 0x28b4fdc
|
|
/* 028B4FDC */ cpu->r[3] = cpu->r[12] + cpu->r[30];
|
|
/* 028B4FE0 */ Gambit_fn_028D44EC(cpu);
|
|
/* 028B4FE4 */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028B4FE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B4FE8 */ cpu->r[30] = cpu->r[30] + 0x00000014u;
|
|
/* 028B4FEC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B4FEC */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B4FEC */ if (_t12) goto L_028B4FF8; else goto L_028B4FF0;
|
|
L_028B4FF0: ; // 0x28b4ff0
|
|
/* 028B4FF0 */ _t13 = cpu->r[26] + 0x00000070u;
|
|
/* 028B4FF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B4FF4 */ goto L_028B4FDC;
|
|
L_028B4FF8: ; // 0x28b4ff8
|
|
/* 028B4FF8 */ _t14 = cpu->r[26] + 0x00000014u;
|
|
/* 028B4FF8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B4FFC */ cpu->r[25] = cpu->r[26] + 0x00000008u;
|
|
/* 028B5000 */ _t15 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028B5000 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B5004 */ cpu->r[30] = cpu->r[25] - cpu->r[4];
|
|
/* 028B5008 */ cpu->r[9] = cpu->r[5] - cpu->r[4];
|
|
/* 028B500C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[30]);
|
|
/* 028B5010 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5010 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B5010 */ if (_t17) goto L_028B5288; else goto L_028B5014;
|
|
L_028B5014: ; // 0x28b5014
|
|
/* 028B5014 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5018 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B5018 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B5018 */ if (_t19) goto L_028B501C; else goto L_028B5240;
|
|
L_028B501C: ; // 0x28b501c
|
|
/* 028B501C */ cpu->r[22] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5020 */ cpu->r[21] = 0x00000000u;
|
|
L_028B5024: ; // 0x28b5024
|
|
/* 028B5024 */ cpu->r[5] = cpu->r[9] + cpu->r[4];
|
|
/* 028B5028 */ _t20 = cpu->r[5] + 0x00000004u;
|
|
/* 028B5028 */ cpu->r[6] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B502C */ cpu->r[29] = cpu->r[9];
|
|
/* 028B5030 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5030 */ rbrew_write32(cpu->mem, _t21, cpu->r[4]);
|
|
/* 028B5034 */ cpu->r[9] = cpu->r[6] - cpu->r[4];
|
|
/* 028B5038 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B503C */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 028B503C */ rbrew_write32(cpu->mem, _t22, cpu->r[9]);
|
|
/* 028B5040 */ Gambit_fn_028A5630(cpu);
|
|
/* 028B5044 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5048 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5048 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028B5048 */ if (_t24) goto L_028B5070; else goto L_028B504C;
|
|
L_028B504C: ; // 0x28b504c
|
|
/* 028B504C */ _t25 = cpu->r[26] + 0x0000001Cu;
|
|
/* 028B504C */ cpu->r[3] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B5050 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B5054 */ cpu->r[5] = cpu->r[25];
|
|
/* 028B5058 */ Gambit_fn_028AA014(cpu);
|
|
/* 028B505C */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 028B505C */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B5060 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[30]);
|
|
/* 028B5064 */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5064 */ cpu->r[4] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B5068 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5068 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028B5068 */ if (_t29) goto L_028B506C; else goto L_028B5024;
|
|
L_028B506C: ; // 0x28b506c
|
|
/* 028B506C */ goto L_028B5220;
|
|
L_028B5070: ; // 0x28b5070
|
|
/* 028B5070 */ _t30 = cpu->r[26] + 0x00000070u;
|
|
/* 028B5070 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B5074 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B5078 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5078 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028B5078 */ if (_t32) goto L_028B5210; else goto L_028B507C;
|
|
L_028B507C: ; // 0x28b507c
|
|
/* 028B507C */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 028B507C */ rbrew_write32(cpu->mem, _t33, cpu->r[21]);
|
|
/* 028B5080 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 028B5084 */ cpu->r[5] = cpu->r[22];
|
|
/* 028B5088 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5088 */ rbrew_write32(cpu->mem, _t34, cpu->r[21]);
|
|
/* 028B508C */ cpu->r[4] = 0x00000010u;
|
|
/* 028B5090 */ _t35 = cpu->r[1] + 0x00000018u;
|
|
/* 028B5090 */ rbrew_write32(cpu->mem, _t35, cpu->r[21]);
|
|
/* 028B5094 */ Gambit_fn_028023A8(cpu);
|
|
/* 028B5098 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028B509C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B50A0 */ Gambit_fn_028BA0E0(cpu);
|
|
/* 028B50A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B50A8 */ cpu->r[20] = cpu->r[3];
|
|
/* 028B50AC */ cpu->r[28] = 0x00000000u;
|
|
/* 028B50B0 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B50B0 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028B50B0 */ if (_t37) goto L_028B5210; else goto L_028B50B4;
|
|
L_028B50B4: ; // 0x28b50b4
|
|
/* 028B50B4 */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 028B50B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B50B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028B50BC */ cpu->r[9] = 0x00000000u;
|
|
/* 028B50C0 */ _t39 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B50C0 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028B50C0 */ if (_t40) goto L_028B50C4; else goto L_028B50D0;
|
|
L_028B50C4: ; // 0x28b50c4
|
|
/* 028B50C4 */ _t41 = cpu->r[1] + 0x00000018u;
|
|
/* 028B50C4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B50C8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[28], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028B50CC */ _t42 = cpu->r[12] + cpu->r[4];
|
|
/* 028B50CC */ cpu->r[9] = rbrew_read32(cpu->mem, _t42);
|
|
L_028B50D0: ; // 0x28b50d0
|
|
/* 028B50D0 */ cpu->r[3] = cpu->r[9] + 0x0000002Cu;
|
|
/* 028B50D4 */ Gambit_fn_028BC334(cpu);
|
|
/* 028B50D8 */ _t43 = cpu->r[26] + 0x00000074u;
|
|
/* 028B50D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028B50DC */ _t44 = cpu->r[12] + 0x00000000u;
|
|
/* 028B50DC */ cpu->r[5] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028B50E0 */ cpu->r[24] = 0x00000000u;
|
|
/* 028B50E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[5]);
|
|
/* 028B50E8 */ cpu->r[23] = cpu->r[3];
|
|
/* 028B50EC */ _t45 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B50EC */ _t46 = _t45 & 0x00000001u;
|
|
/* 028B50EC */ if (_t46) goto L_028B50F0; else goto L_028B5204;
|
|
L_028B50F0: ; // 0x28b50f0
|
|
/* 028B50F0 */ cpu->r[18] = 0x00000000u;
|
|
/* 028B50F4 */ cpu->r[19] = cpu->r[18];
|
|
L_028B50F8: ; // 0x28b50f8
|
|
/* 028B50F8 */ _t47 = cpu->r[12] + 0x00000000u;
|
|
/* 028B50F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 028B50FC */ _t48 = cpu->r[23] + 0x00000128u;
|
|
/* 028B50FC */ cpu->r[3] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028B5100 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[0]);
|
|
/* 028B5104 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B5108 */ _t49 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5108 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028B5108 */ if (_t50) goto L_028B510C; else goto L_028B5114;
|
|
L_028B510C: ; // 0x28b510c
|
|
/* 028B510C */ _t51 = cpu->r[12] + 0x00000008u;
|
|
/* 028B510C */ cpu->r[7] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028B5110 */ _t52 = cpu->r[7] + cpu->r[19];
|
|
/* 028B5110 */ cpu->r[4] = rbrew_read32(cpu->mem, _t52);
|
|
L_028B5114: ; // 0x28b5114
|
|
/* 028B5114 */ Gambit_fn_028D3314(cpu);
|
|
/* 028B5118 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B511C */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B511C */ _t54 = _t53 & 0x00000001u;
|
|
/* 028B511C */ if (_t54) goto L_028B51E8; else goto L_028B5120;
|
|
L_028B5120: ; // 0x28b5120
|
|
/* 028B5120 */ _t55 = cpu->r[26] + 0x00000070u;
|
|
/* 028B5120 */ cpu->r[9] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028B5124 */ _t56 = cpu->r[9] + cpu->r[18];
|
|
/* 028B5124 */ cpu->r[27] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028B5128 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B512C */ Gambit_fn_028CA2FC(cpu);
|
|
/* 028B5130 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5134 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5134 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028B5134 */ if (_t58) goto L_028B51D8; else goto L_028B5138;
|
|
L_028B5138: ; // 0x28b5138
|
|
/* 028B5138 */ _t59 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5138 */ cpu->r[0] = rbrew_read32(cpu->mem, _t59);
|
|
/* 028B513C */ cpu->r[4] = 0x00000000u;
|
|
/* 028B5140 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 028B5144 */ _t60 = cpu->r[26] + 0x0000001Cu;
|
|
/* 028B5144 */ cpu->r[3] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028B5148 */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5148 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028B5148 */ if (_t62) goto L_028B514C; else goto L_028B5158;
|
|
L_028B514C: ; // 0x28b514c
|
|
/* 028B514C */ _t63 = cpu->r[1] + 0x00000018u;
|
|
/* 028B514C */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 028B5150 */ cpu->r[12] = rbrew_rlwinm(cpu->r[28], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028B5154 */ _t64 = cpu->r[12] + cpu->r[0];
|
|
/* 028B5154 */ cpu->r[4] = rbrew_read32(cpu->mem, _t64);
|
|
L_028B5158: ; // 0x28b5158
|
|
/* 028B5158 */ _t65 = cpu->r[4] + 0x00000010u;
|
|
/* 028B5158 */ cpu->r[7] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028B515C */ _t66 = cpu->r[26] + 0x00000020u;
|
|
/* 028B515C */ cpu->r[5] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028B5160 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B5164 */ _t67 = cpu->r[7] + 0x00000000u;
|
|
/* 028B5164 */ cpu->r[7] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028B5168 */ cpu->r[6] = cpu->r[6] + 0xFFFF899Cu;
|
|
/* 028B516C */ cpu->r[4] = 0x0000001Cu;
|
|
/* 028B5170 */ _t68 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B5170 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028B5170 */ if (_t69) goto L_028B5174; // else: addr-0 trap, fall-through
|
|
L_028B5174: ; // 0x28b5174
|
|
/* 028B5174 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028B5178 */ _t70 = cpu->r[27] + 0x00000000u;
|
|
/* 028B5178 */ cpu->r[8] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028B517C */ _t71 = cpu->r[8] + 0x00000044u;
|
|
/* 028B517C */ cpu->r[0] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028B5180 */ cpu->ctr = cpu->r[0];
|
|
/* 028B5184 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B5188 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B518C */ cpu->r[4] = cpu->r[3];
|
|
/* 028B518C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B5190 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5190 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028B5190 */ if (_t73) goto L_028B51B0; else goto L_028B5194;
|
|
L_028B5194: ; // 0x28b5194
|
|
/* 028B5194 */ _t74 = cpu->r[27] + 0x00000000u;
|
|
/* 028B5194 */ cpu->r[12] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028B5198 */ _t75 = cpu->r[12] + 0x0000005Cu;
|
|
/* 028B5198 */ cpu->r[6] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028B519C */ cpu->ctr = cpu->r[6];
|
|
/* 028B51A0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B51A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B51A8 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B51A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B51AC */ _t76 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B51AC */ _t77 = _t76 & 0x00000001u;
|
|
/* 028B51AC */ if (_t77) goto L_028B51B0; else goto L_028B5194;
|
|
L_028B51B0: ; // 0x28b51b0
|
|
/* 028B51B0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B51B4 */ Gambit_fn_028A545C(cpu);
|
|
/* 028B51B8 */ _t78 = cpu->r[26] + 0x00000074u;
|
|
/* 028B51B8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028B51BC */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028B51C0 */ _t79 = cpu->r[12] + 0x00000000u;
|
|
/* 028B51C0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028B51C4 */ cpu->r[18] = cpu->r[18] + 0x00000014u;
|
|
/* 028B51C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[8]);
|
|
/* 028B51CC */ cpu->r[19] = cpu->r[19] + 0x00000004u;
|
|
/* 028B51D0 */ _t80 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B51D0 */ _t81 = _t80 & 0x00000001u;
|
|
/* 028B51D0 */ if (_t81) goto L_028B50F8; else goto L_028B51D4;
|
|
L_028B51D4: ; // 0x28b51d4
|
|
/* 028B51D4 */ goto L_028B5204;
|
|
L_028B51D8: ; // 0x28b51d8
|
|
/* 028B51D8 */ _t82 = cpu->r[26] + 0x00000070u;
|
|
/* 028B51D8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028B51DC */ cpu->r[4] = cpu->r[23];
|
|
/* 028B51E0 */ cpu->r[3] = cpu->r[7] + cpu->r[18];
|
|
/* 028B51E4 */ Gambit_fn_028D4804(cpu);
|
|
L_028B51E8: ; // 0x28b51e8
|
|
/* 028B51E8 */ _t83 = cpu->r[26] + 0x00000074u;
|
|
/* 028B51E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028B51EC */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028B51F0 */ _t84 = cpu->r[12] + 0x00000000u;
|
|
/* 028B51F0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028B51F4 */ cpu->r[18] = cpu->r[18] + 0x00000014u;
|
|
/* 028B51F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[8]);
|
|
/* 028B51FC */ cpu->r[19] = cpu->r[19] + 0x00000004u;
|
|
/* 028B5200 */ _t85 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5200 */ _t86 = _t85 & 0x00000001u;
|
|
/* 028B5200 */ if (_t86) goto L_028B50F8; else goto L_028B5204;
|
|
L_028B5204: ; // 0x28b5204
|
|
/* 028B5204 */ cpu->r[20] = cpu->r[20] + 0xFFFFFFFFu;
|
|
/* 028B5204 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 028B5208 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028B520C */ _t87 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B520C */ _t88 = _t87 & 0x00000001u;
|
|
/* 028B520C */ if (_t88) goto L_028B5210; else goto L_028B50B4;
|
|
L_028B5210: ; // 0x28b5210
|
|
/* 028B5210 */ _t89 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5210 */ cpu->r[9] = rbrew_read32(cpu->mem, _t89);
|
|
/* 028B5214 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[30]);
|
|
/* 028B5218 */ _t90 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5218 */ cpu->r[4] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028B521C */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B521C */ _t92 = _t91 & 0x00000001u;
|
|
/* 028B521C */ if (_t92) goto L_028B5220; else goto L_028B5024;
|
|
L_028B5220: ; // 0x28b5220
|
|
/* 028B5220 */ _t93 = cpu->r[26] + 0x00000070u;
|
|
/* 028B5220 */ cpu->r[12] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028B5224 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B5228 */ _t94 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5228 */ _t95 = _t94 & 0x00000001u;
|
|
/* 028B5228 */ if (_t95) goto L_028B522C; else goto L_028B5294;
|
|
L_028B522C: ; // 0x28b522c
|
|
/* 028B522C */ /* nop */
|
|
/* 028B5230 */ _t96 = cpu->r[1] + 0x0000009Cu;
|
|
/* 028B5230 */ cpu->r[0] = rbrew_read32(cpu->mem, _t96);
|
|
/* 028B5234 */ cpu->lr = cpu->r[0];
|
|
/* 028B5238 */ cpu->r[1] = cpu->r[1] + 0x00000098u;
|
|
/* 028B523C */ return;
|
|
L_028B5240: ; // 0x28b5240
|
|
/* 028B5240 */ cpu->r[5] = cpu->r[9] + cpu->r[4];
|
|
/* 028B5244 */ _t97 = cpu->r[5] + 0x00000004u;
|
|
/* 028B5244 */ cpu->r[10] = rbrew_read32(cpu->mem, _t97);
|
|
/* 028B5248 */ cpu->r[29] = cpu->r[9];
|
|
/* 028B524C */ _t98 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B524C */ rbrew_write32(cpu->mem, _t98, cpu->r[4]);
|
|
/* 028B5250 */ cpu->r[9] = cpu->r[10] - cpu->r[4];
|
|
/* 028B5254 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B5258 */ _t99 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5258 */ rbrew_write32(cpu->mem, _t99, cpu->r[9]);
|
|
/* 028B525C */ Gambit_fn_028A5630(cpu);
|
|
/* 028B5260 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5264 */ _t100 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5264 */ _t101 = _t100 & 0x00000001u;
|
|
/* 028B5264 */ if (_t101) goto L_028B5278; else goto L_028B5268;
|
|
L_028B5268: ; // 0x28b5268
|
|
/* 028B5268 */ _t102 = cpu->r[26] + 0x0000001Cu;
|
|
/* 028B5268 */ cpu->r[3] = rbrew_read32(cpu->mem, _t102);
|
|
/* 028B526C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B5270 */ cpu->r[5] = cpu->r[25];
|
|
/* 028B5274 */ Gambit_fn_028AA014(cpu);
|
|
L_028B5278: ; // 0x28b5278
|
|
/* 028B5278 */ _t103 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5278 */ cpu->r[9] = rbrew_read32(cpu->mem, _t103);
|
|
/* 028B527C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[30]);
|
|
/* 028B5280 */ _t104 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5280 */ cpu->r[4] = rbrew_read32(cpu->mem, _t104);
|
|
/* 028B5284 */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5284 */ _t106 = _t105 & 0x00000001u;
|
|
/* 028B5284 */ if (_t106) goto L_028B5288; else goto L_028B5240;
|
|
L_028B5288: ; // 0x28b5288
|
|
/* 028B5288 */ _t107 = cpu->r[26] + 0x00000070u;
|
|
/* 028B5288 */ cpu->r[12] = rbrew_read32(cpu->mem, _t107);
|
|
/* 028B528C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B5290 */ _t108 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5290 */ _t109 = _t108 & 0x00000001u;
|
|
/* 028B5290 */ if (_t109) goto L_028B522C; else goto L_028B5294;
|
|
L_028B5294: ; // 0x28b5294
|
|
/* 028B5294 */ _t110 = cpu->r[26] + 0x00000020u;
|
|
/* 028B5294 */ cpu->r[8] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028B5298 */ _t111 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028B5298 */ cpu->r[9] = rbrew_read32(cpu->mem, _t111);
|
|
/* 028B529C */ cpu->r[0] = cpu->r[9] + 0x00000064u;
|
|
/* 028B529C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B52A0 */ _t112 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B52A0 */ _t113 = _t112 & 0x00000001u;
|
|
/* 028B52A0 */ if (_t113) goto L_028B522C; else goto L_028B52A4;
|
|
L_028B52A4: ; // 0x28b52a4
|
|
/* 028B52A4 */ _t114 = cpu->r[9] + 0x00000084u;
|
|
/* 028B52A4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t114);
|
|
/* 028B52A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B52AC */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B52AC */ _t116 = _t115 & 0x00000001u;
|
|
/* 028B52AC */ if (_t116) goto L_028B522C; else goto L_028B52B0;
|
|
L_028B52B0: ; // 0x28b52b0
|
|
/* 028B52B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B52B4 */ _t117 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B52B4 */ _t118 = _t117 & 0x00000001u;
|
|
/* 028B52B4 */ if (_t118) goto L_028B52B8; else goto L_028B522C;
|
|
L_028B52B8: ; // 0x28b52b8
|
|
/* 028B52B8 */ cpu->r[30] = cpu->r[10] + 0xFFFFFFF8u;
|
|
/* 028B52BC */ cpu->r[29] = 0x00000000u;
|
|
L_028B52C0: ; // 0x28b52c0
|
|
/* 028B52C0 */ _t119 = cpu->r[30] + 0x0000000Du;
|
|
/* 028B52C0 */ cpu->r[4] = rbrew_read8(cpu->mem, _t119);
|
|
/* 028B52C4 */ cpu->r[3] = cpu->r[12] + cpu->r[29];
|
|
/* 028B52C8 */ /* nop */
|
|
/* 028B52CC */ cpu->r[30] = cpu->r[30] + 0x00000008u;
|
|
/* 028B52D0 */ Gambit_fn_028D4938(cpu);
|
|
/* 028B52D4 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028B52D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B52D8 */ cpu->r[29] = cpu->r[29] + 0x00000014u;
|
|
/* 028B52DC */ _t120 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B52DC */ _t121 = _t120 & 0x00000001u;
|
|
/* 028B52DC */ if (_t121) goto L_028B522C; else goto L_028B52E0;
|
|
L_028B52E0: ; // 0x28b52e0
|
|
/* 028B52E0 */ _t122 = cpu->r[26] + 0x00000070u;
|
|
/* 028B52E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t122);
|
|
/* 028B52E4 */ goto L_028B52C0;
|
|
}
|
|
|
|
// fn_028B52E8 @ 0x28b52e8
|
|
void Gambit_fn_028B52E8(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_028B52E8: ; // 0x28b52e8
|
|
/* 028B52E8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B52E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B52E8 */ cpu->r[1] = _t0;
|
|
/* 028B52EC */ /* nop */
|
|
/* 028B52F0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B52F4 */ cpu->r[26] = cpu->r[3];
|
|
/* 028B52F8 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B52F8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B52FC */ cpu->r[3] = 0x101D0000u;
|
|
/* 028B5300 */ _t2 = cpu->r[3] + 0xFFFF9A6Cu;
|
|
/* 028B5300 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B5304 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5304 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B5308 */ _t4 = cpu->r[12] + 0x00000014u;
|
|
/* 028B5308 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B530C */ cpu->ctr = cpu->r[0];
|
|
/* 028B5310 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B5314 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B5318 */ _t5 = cpu->r[26] + 0x00000014u;
|
|
/* 028B5318 */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B531C */ cpu->r[25] = cpu->r[26] + 0x00000008u;
|
|
/* 028B5320 */ _t6 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028B5320 */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B5324 */ cpu->r[31] = cpu->r[25] - cpu->r[29];
|
|
/* 028B5328 */ cpu->r[28] = cpu->r[8] - cpu->r[29];
|
|
/* 028B532C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B5330 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5330 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B5330 */ if (_t8) goto L_028B536C; else goto L_028B5334;
|
|
L_028B5334: ; // 0x28b5334
|
|
/* 028B5334 */ cpu->r[27] = 0x00000001u;
|
|
L_028B5338: ; // 0x28b5338
|
|
/* 028B5338 */ _t9 = cpu->r[28] + 0x00000028u;
|
|
/* 028B5338 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B533C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5340 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5340 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B5340 */ if (_t11) goto L_028B5354; else goto L_028B5344;
|
|
L_028B5344: ; // 0x28b5344
|
|
/* 028B5344 */ _t12 = cpu->r[3] + 0x00000050u;
|
|
/* 028B5344 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B5348 */ _t13 = cpu->r[9] + 0x00000044u;
|
|
/* 028B5348 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B534C */ cpu->ctr = cpu->r[10];
|
|
/* 028B5350 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B5354: ; // 0x28b5354
|
|
/* 028B5354 */ cpu->r[7] = cpu->r[28] + cpu->r[29];
|
|
/* 028B5358 */ _t14 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B5358 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[27]);
|
|
/* 028B535C */ _t15 = cpu->r[7] + 0x00000004u;
|
|
/* 028B535C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B5360 */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028B5364 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 028B5368 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5368 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B5368 */ if (_t17) goto L_028B536C; else goto L_028B5338;
|
|
L_028B536C: ; // 0x28b536c
|
|
/* 028B536C */ _t18 = cpu->r[26] + 0x0000001Cu;
|
|
/* 028B536C */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B5370 */ cpu->r[4] = cpu->r[25];
|
|
/* 028B5374 */ Gambit_fn_028AA06C(cpu);
|
|
/* 028B5378 */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 028B5378 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B537C */ _t20 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B537C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B5380 */ cpu->ctr = cpu->r[0];
|
|
/* 028B5384 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B5388 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B538C */ /* nop */
|
|
/* 028B5390 */ _t21 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B5390 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B5394 */ cpu->lr = cpu->r[0];
|
|
/* 028B5398 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B539C */ return;
|
|
}
|
|
|
|
// fn_028B53A0 @ 0x28b53a0
|
|
void Gambit_fn_028B53A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B53A0: ; // 0x28b53a0
|
|
/* 028B53A0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B53A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B53A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B53A4 */ cpu->r[1] = _t0;
|
|
/* 028B53A8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B53A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B53AC */ cpu->r[31] = cpu->r[4];
|
|
/* 028B53B0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B53B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B53B4 */ Gambit_fn_028C2A0C(cpu);
|
|
/* 028B53B8 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B53BC */ Gambit_fn_028BAC44(cpu);
|
|
/* 028B53C0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B53C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B53C4 */ cpu->lr = cpu->r[0];
|
|
/* 028B53C8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B53C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B53CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B53D0 */ return;
|
|
}
|
|
|
|
// fn_028B53A4 @ 0x28b53a4
|
|
void Gambit_fn_028B53A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B53A4: ; // 0x28b53a4
|
|
/* 028B53A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B53A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B53A4 */ cpu->r[1] = _t0;
|
|
/* 028B53A8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B53A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B53AC */ cpu->r[31] = cpu->r[4];
|
|
/* 028B53B0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B53B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B53B4 */ Gambit_fn_028C2A0C(cpu);
|
|
/* 028B53B8 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B53BC */ Gambit_fn_028BAC44(cpu);
|
|
/* 028B53C0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B53C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B53C4 */ cpu->lr = cpu->r[0];
|
|
/* 028B53C8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B53C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B53CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B53D0 */ return;
|
|
}
|
|
|
|
// fn_028B53D4 @ 0x28b53d4
|
|
void Gambit_fn_028B53D4(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_028B53D4: ; // 0x28b53d4
|
|
/* 028B53D4 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B53D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B53D4 */ cpu->r[1] = _t0;
|
|
/* 028B53D8 */ /* nop */
|
|
/* 028B53DC */ cpu->r[0] = cpu->lr;
|
|
/* 028B53E0 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B53E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B53E4 */ cpu->r[27] = cpu->r[3];
|
|
/* 028B53E8 */ _t2 = cpu->r[27] + 0x0000006Cu;
|
|
/* 028B53E8 */ cpu->r[26] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B53EC */ _t3 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028B53EC */ cpu->r[30] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B53F0 */ _t4 = cpu->r[26] + 0x00000004u;
|
|
/* 028B53F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B53F4 */ cpu->r[28] = cpu->r[26] - cpu->r[30];
|
|
/* 028B53F8 */ cpu->r[29] = cpu->r[9] - cpu->r[30];
|
|
/* 028B53FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[28]);
|
|
/* 028B5400 */ _t5 = cpu->r[9] + 0x00000004u;
|
|
/* 028B5400 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B5404 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5404 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B5404 */ if (_t7) goto L_028B5458; else goto L_028B5408;
|
|
L_028B5408: ; // 0x28b5408
|
|
/* 028B5408 */ cpu->r[25] = 0x00000000u;
|
|
L_028B540C: ; // 0x28b540c
|
|
/* 028B540C */ _t8 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028B540C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B5410 */ cpu->r[3] = cpu->r[29] + cpu->r[0];
|
|
/* 028B5414 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B5418 */ _t9 = cpu->r[26] + 0x00000008u;
|
|
/* 028B5418 */ cpu->r[6] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B541C */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 028B5420 */ _t10 = cpu->r[26] + 0x00000008u;
|
|
/* 028B5420 */ rbrew_write32(cpu->mem, _t10, cpu->r[6]);
|
|
/* 028B5424 */ _t11 = cpu->r[29] + 0x00000004u;
|
|
/* 028B5424 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B5428 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B542C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B542C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B542C */ if (_t13) goto L_028B543C; else goto L_028B5430;
|
|
L_028B5430: ; // 0x28b5430
|
|
/* 028B5430 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B5434 */ Gambit_fn_028B53A0(cpu);
|
|
/* 028B5438 */ _t14 = cpu->r[29] + 0x00000004u;
|
|
/* 028B5438 */ rbrew_write32(cpu->mem, _t14, cpu->r[25]);
|
|
L_028B543C: ; // 0x28b543c
|
|
/* 028B543C */ cpu->r[3] = cpu->r[29];
|
|
/* 028B5440 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028B5444 */ cpu->r[29] = cpu->r[31] - cpu->r[30];
|
|
/* 028B5448 */ _t15 = cpu->r[31] + 0x00000004u;
|
|
/* 028B5448 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B544C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[28]);
|
|
/* 028B5450 */ _t16 = cpu->r[27] + 0x0000006Cu;
|
|
/* 028B5450 */ cpu->r[26] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B5454 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5454 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B5454 */ if (_t18) goto L_028B5458; else goto L_028B540C;
|
|
L_028B5458: ; // 0x28b5458
|
|
/* 028B5458 */ cpu->r[3] = cpu->r[26];
|
|
/* 028B545C */ Gambit_fn_02801BB0(cpu);
|
|
/* 028B5460 */ _t19 = cpu->r[27] + 0x0000003Cu;
|
|
/* 028B5460 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B5464 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B5468 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5468 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B5468 */ if (_t21) goto L_028B549C; else goto L_028B546C;
|
|
L_028B546C: ; // 0x28b546c
|
|
/* 028B546C */ _t22 = cpu->r[27] + 0x00000040u;
|
|
/* 028B546C */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B5470 */ cpu->r[11] = 0x00000000u;
|
|
/* 028B5474 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[8]);
|
|
/* 028B5478 */ _t23 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5478 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028B5478 */ if (_t24) goto L_028B547C; else goto L_028B549C;
|
|
L_028B547C: ; // 0x28b547c
|
|
/* 028B547C */ cpu->r[7] = cpu->r[12] + 0xFFFFFFF0u;
|
|
/* 028B5480 */ cpu->r[0] = 0x00000000u;
|
|
L_028B5484: ; // 0x28b5484
|
|
/* 028B5484 */ _t25 = cpu->r[7] + 0x0000001Cu;
|
|
/* 028B5484 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 028B5488 */ _t26 = cpu->r[27] + 0x00000040u;
|
|
/* 028B5488 */ cpu->r[10] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B548C */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 028B5490 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[10]);
|
|
/* 028B5494 */ cpu->r[7] = cpu->r[7] + 0x00000010u;
|
|
/* 028B5498 */ _t27 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5498 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B5498 */ if (_t28) goto L_028B5484; else goto L_028B549C;
|
|
L_028B549C: ; // 0x28b549c
|
|
/* 028B549C */ /* nop */
|
|
/* 028B54A0 */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B54A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B54A4 */ cpu->lr = cpu->r[0];
|
|
/* 028B54A8 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B54AC */ return;
|
|
}
|
|
|
|
// fn_028B54B0 @ 0x28b54b0
|
|
void Gambit_fn_028B54B0(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_028B54B0: ; // 0x28b54b0
|
|
/* 028B54B0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B54B4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B54B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B54B4 */ cpu->r[1] = _t0;
|
|
/* 028B54B8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B54B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B54BC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B54C0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B54C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B54C4 */ cpu->r[3] = cpu->r[31] + 0x00000078u;
|
|
/* 028B54C8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B54C8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B54CC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B54CC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B54D0 */ Gambit_fn_02802424(cpu);
|
|
/* 028B54D4 */ _t5 = cpu->r[31] + 0x00000070u;
|
|
/* 028B54D4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B54D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B54DC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B54DC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B54DC */ if (_t7) goto L_028B5538; else goto L_028B54E0;
|
|
L_028B54E0: ; // 0x28b54e0
|
|
/* 028B54E0 */ _t8 = cpu->r[31] + 0x00000084u;
|
|
/* 028B54E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B54E4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B54E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B54EC */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B54EC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B54EC */ if (_t10) goto L_028B54F0; else goto L_028B5514;
|
|
L_028B54F0: ; // 0x28b54f0
|
|
/* 028B54F0 */ cpu->r[30] = 0x00000000u;
|
|
L_028B54F4: ; // 0x28b54f4
|
|
/* 028B54F4 */ cpu->r[3] = cpu->r[3] + cpu->r[30];
|
|
/* 028B54F8 */ Gambit_fn_028D43DC(cpu);
|
|
/* 028B54FC */ _t11 = cpu->r[31] + 0x00000084u;
|
|
/* 028B54FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B5500 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028B5504 */ cpu->r[30] = cpu->r[30] + 0x00000014u;
|
|
/* 028B5508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B550C */ _t12 = cpu->r[31] + 0x00000070u;
|
|
/* 028B550C */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B5510 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5510 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B5510 */ if (_t14) goto L_028B54F4; else goto L_028B5514;
|
|
L_028B5514: ; // 0x28b5514
|
|
/* 028B5514 */ cpu->r[6] = 0x028D0000u;
|
|
/* 028B5518 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028B551C */ cpu->r[5] = 0x00000014u;
|
|
/* 028B5520 */ cpu->r[6] = cpu->r[6] + 0x00004490u;
|
|
/* 028B5524 */ cpu->r[7] = 0x00000001u;
|
|
/* 028B5528 */ cpu->r[8] = 0x00000000u;
|
|
/* 028B552C */ Gambit_fn_02C82F38(cpu);
|
|
/* 028B5530 */ cpu->r[11] = 0x00000000u;
|
|
/* 028B5534 */ _t15 = cpu->r[31] + 0x00000070u;
|
|
/* 028B5534 */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
L_028B5538: ; // 0x28b5538
|
|
/* 028B5538 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5538 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B553C */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B553C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B5540 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5540 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B5544 */ cpu->lr = cpu->r[0];
|
|
/* 028B5548 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5548 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B554C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B5550 */ return;
|
|
}
|
|
|
|
// fn_028B54B4 @ 0x28b54b4
|
|
void Gambit_fn_028B54B4(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_028B54B4: ; // 0x28b54b4
|
|
/* 028B54B4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B54B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B54B4 */ cpu->r[1] = _t0;
|
|
/* 028B54B8 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B54B8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B54BC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B54C0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B54C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B54C4 */ cpu->r[3] = cpu->r[31] + 0x00000078u;
|
|
/* 028B54C8 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B54C8 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B54CC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B54CC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B54D0 */ Gambit_fn_02802424(cpu);
|
|
/* 028B54D4 */ _t5 = cpu->r[31] + 0x00000070u;
|
|
/* 028B54D4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B54D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B54DC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B54DC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B54DC */ if (_t7) goto L_028B5538; else goto L_028B54E0;
|
|
L_028B54E0: ; // 0x28b54e0
|
|
/* 028B54E0 */ _t8 = cpu->r[31] + 0x00000084u;
|
|
/* 028B54E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B54E4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B54E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B54EC */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B54EC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B54EC */ if (_t10) goto L_028B54F0; else goto L_028B5514;
|
|
L_028B54F0: ; // 0x28b54f0
|
|
/* 028B54F0 */ cpu->r[30] = 0x00000000u;
|
|
L_028B54F4: ; // 0x28b54f4
|
|
/* 028B54F4 */ cpu->r[3] = cpu->r[3] + cpu->r[30];
|
|
/* 028B54F8 */ Gambit_fn_028D43DC(cpu);
|
|
/* 028B54FC */ _t11 = cpu->r[31] + 0x00000084u;
|
|
/* 028B54FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B5500 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028B5504 */ cpu->r[30] = cpu->r[30] + 0x00000014u;
|
|
/* 028B5508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B550C */ _t12 = cpu->r[31] + 0x00000070u;
|
|
/* 028B550C */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B5510 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5510 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B5510 */ if (_t14) goto L_028B54F4; else goto L_028B5514;
|
|
L_028B5514: ; // 0x28b5514
|
|
/* 028B5514 */ cpu->r[6] = 0x028D0000u;
|
|
/* 028B5518 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028B551C */ cpu->r[5] = 0x00000014u;
|
|
/* 028B5520 */ cpu->r[6] = cpu->r[6] + 0x00004490u;
|
|
/* 028B5524 */ cpu->r[7] = 0x00000001u;
|
|
/* 028B5528 */ cpu->r[8] = 0x00000000u;
|
|
/* 028B552C */ Gambit_fn_02C82F38(cpu);
|
|
/* 028B5530 */ cpu->r[11] = 0x00000000u;
|
|
/* 028B5534 */ _t15 = cpu->r[31] + 0x00000070u;
|
|
/* 028B5534 */ rbrew_write32(cpu->mem, _t15, cpu->r[11]);
|
|
L_028B5538: ; // 0x28b5538
|
|
/* 028B5538 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5538 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B553C */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B553C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B5540 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5540 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B5544 */ cpu->lr = cpu->r[0];
|
|
/* 028B5548 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5548 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B554C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B5550 */ return;
|
|
}
|
|
|
|
// fn_028B5554 @ 0x28b5554
|
|
void Gambit_fn_028B5554(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_028B5554: ; // 0x28b5554
|
|
/* 028B5554 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B5554 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5554 */ cpu->r[1] = _t0;
|
|
/* 028B5558 */ /* nop */
|
|
/* 028B555C */ cpu->r[0] = cpu->lr;
|
|
/* 028B5560 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B5560 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B5564 */ cpu->r[31] = 0x101D0000u;
|
|
/* 028B5568 */ _t2 = cpu->r[31] + 0xFFFF9A6Cu;
|
|
/* 028B5568 */ cpu->r[31] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B556C */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 028B556C */ cpu->r[6] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B5570 */ _t4 = cpu->r[6] + 0x00000014u;
|
|
/* 028B5570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B5574 */ cpu->r[27] = cpu->r[3];
|
|
/* 028B5578 */ cpu->ctr = cpu->r[0];
|
|
/* 028B557C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5580 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B5584 */ _t5 = cpu->r[27] + 0x00000014u;
|
|
/* 028B5584 */ cpu->r[29] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B5588 */ cpu->r[25] = cpu->r[27] + 0x00000008u;
|
|
/* 028B558C */ _t6 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028B558C */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B5590 */ cpu->r[30] = cpu->r[25] - cpu->r[29];
|
|
/* 028B5594 */ cpu->r[28] = cpu->r[10] - cpu->r[29];
|
|
/* 028B5598 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[30]);
|
|
/* 028B559C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B559C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B559C */ if (_t8) goto L_028B55D8; else goto L_028B55A0;
|
|
L_028B55A0: ; // 0x28b55a0
|
|
/* 028B55A0 */ cpu->r[26] = 0x00000001u;
|
|
L_028B55A4: ; // 0x28b55a4
|
|
/* 028B55A4 */ _t9 = cpu->r[28] + 0x00000028u;
|
|
/* 028B55A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B55A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B55AC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B55AC */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B55AC */ if (_t11) goto L_028B55C0; else goto L_028B55B0;
|
|
L_028B55B0: ; // 0x28b55b0
|
|
/* 028B55B0 */ _t12 = cpu->r[3] + 0x00000050u;
|
|
/* 028B55B0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B55B4 */ _t13 = cpu->r[11] + 0x00000044u;
|
|
/* 028B55B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B55B8 */ cpu->ctr = cpu->r[12];
|
|
/* 028B55BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B55C0: ; // 0x28b55c0
|
|
/* 028B55C0 */ cpu->r[9] = cpu->r[28] + cpu->r[29];
|
|
/* 028B55C4 */ _t14 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B55C4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[26]);
|
|
/* 028B55C8 */ _t15 = cpu->r[9] + 0x00000004u;
|
|
/* 028B55C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B55CC */ cpu->r[28] = cpu->r[0] - cpu->r[29];
|
|
/* 028B55D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[30]);
|
|
/* 028B55D4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B55D4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B55D4 */ if (_t17) goto L_028B55D8; else goto L_028B55A4;
|
|
L_028B55D8: ; // 0x28b55d8
|
|
/* 028B55D8 */ _t18 = cpu->r[27] + 0x0000001Cu;
|
|
/* 028B55D8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B55DC */ cpu->r[4] = cpu->r[25];
|
|
/* 028B55E0 */ Gambit_fn_028AA06C(cpu);
|
|
/* 028B55E4 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 028B55E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B55E8 */ _t20 = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B55E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B55EC */ cpu->ctr = cpu->r[0];
|
|
/* 028B55F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B55F4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B55F8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B55FC */ Gambit_fn_028B53D4(cpu);
|
|
/* 028B5600 */ _t21 = cpu->r[27] + 0x00000068u;
|
|
/* 028B5600 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B5604 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B5608 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5608 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B5608 */ if (_t23) goto L_028B561C; else goto L_028B560C;
|
|
L_028B560C: ; // 0x28b560c
|
|
/* 028B560C */ cpu->r[3] = cpu->r[27];
|
|
/* 028B5610 */ Gambit_fn_028B53A0(cpu);
|
|
/* 028B5614 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B5618 */ _t24 = cpu->r[27] + 0x00000068u;
|
|
/* 028B5618 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
L_028B561C: ; // 0x28b561c
|
|
/* 028B561C */ cpu->r[3] = cpu->r[27];
|
|
/* 028B5620 */ Gambit_fn_028B54B0(cpu);
|
|
/* 028B5624 */ /* nop */
|
|
/* 028B5628 */ _t25 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B5628 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B562C */ cpu->lr = cpu->r[0];
|
|
/* 028B5630 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B5634 */ return;
|
|
}
|
|
|
|
// fn_028B5638 @ 0x28b5638
|
|
void Gambit_fn_028B5638(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_028B5638: ; // 0x28b5638
|
|
/* 028B5638 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 028B5638 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5638 */ cpu->r[1] = _t0;
|
|
/* 028B563C */ /* nop */
|
|
/* 028B5640 */ cpu->r[0] = cpu->lr;
|
|
/* 028B5644 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B5644 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B5648 */ cpu->r[29] = cpu->r[4];
|
|
/* 028B564C */ cpu->r[28] = cpu->r[3];
|
|
/* 028B5650 */ _t2 = cpu->r[28] + 0x00000020u;
|
|
/* 028B5650 */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B5654 */ _t3 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028B5654 */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B5658 */ _t4 = cpu->r[10] + 0x00000080u;
|
|
/* 028B5658 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B565C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5660 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B5660 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B5660 */ if (_t6) goto L_028B5664; else goto L_028B5748;
|
|
L_028B5664: ; // 0x28b5664
|
|
/* 028B5664 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B5668 */ cpu->r[26] = 0x101D0000u;
|
|
/* 028B566C */ cpu->r[30] = 0x00000001u;
|
|
/* 028B5670 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5670 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B5670 */ if (_t8) goto L_028B5684; else goto L_028B5674;
|
|
L_028B5674: ; // 0x28b5674
|
|
/* 028B5674 */ _t9 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028B5674 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B5678 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B567C */ Gambit_fn_02827008(cpu);
|
|
/* 028B5680 */ cpu->r[30] = cpu->r[3];
|
|
L_028B5684: ; // 0x28b5684
|
|
/* 028B5684 */ cpu->r[6] = 0x00000004u;
|
|
/* 028B5688 */ cpu->r[25] = cpu->r[28] + 0x00000078u;
|
|
/* 028B568C */ cpu->r[4] = cpu->r[31];
|
|
/* 028B5690 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B5694 */ cpu->r[3] = cpu->r[25];
|
|
/* 028B5698 */ _t10 = cpu->r[28] + 0x00000084u;
|
|
/* 028B5698 */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 028B569C */ Gambit_fn_028023CC(cpu);
|
|
/* 028B56A0 */ cpu->r[27] = 0x101D0000u;
|
|
/* 028B56A4 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x00000014u);
|
|
/* 028B56A8 */ _t11 = cpu->r[27] + 0xFFFFC3D4u;
|
|
/* 028B56A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B56A8 */ cpu->r[27] = _t11;
|
|
/* 028B56AC */ cpu->r[4] = cpu->r[29];
|
|
/* 028B56B0 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B56B4 */ cpu->r[3] = cpu->r[11] + cpu->r[0];
|
|
/* 028B56B8 */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B56BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B56C0 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B56C0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B56C0 */ if (_t13) goto L_028B56F4; else goto L_028B56C4;
|
|
L_028B56C4: ; // 0x28b56c4
|
|
/* 028B56C4 */ cpu->r[6] = 0x028D0000u;
|
|
/* 028B56C8 */ _t14 = cpu->r[27] + 0x00000000u;
|
|
/* 028B56C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B56CC */ cpu->r[5] = 0x00000014u;
|
|
/* 028B56D0 */ cpu->r[6] = cpu->r[6] + 0x00004388u;
|
|
/* 028B56D4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B56D8 */ cpu->r[3] = cpu->r[3] + cpu->r[0];
|
|
/* 028B56DC */ cpu->r[7] = 0x00000000u;
|
|
/* 028B56E0 */ Gambit_fn_02C82DBC(cpu);
|
|
/* 028B56E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B56E8 */ _t15 = cpu->r[28] + 0x00000070u;
|
|
/* 028B56E8 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
/* 028B56EC */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B56EC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B56EC */ if (_t17) goto L_028B56F0; else goto L_028B5730;
|
|
L_028B56F0: ; // 0x28b56f0
|
|
/* 028B56F0 */ goto L_028B5704;
|
|
L_028B56F4: ; // 0x28b56f4
|
|
/* 028B56F4 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B56F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B56FC */ _t18 = cpu->r[28] + 0x00000070u;
|
|
/* 028B56FC */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 028B5700 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B5700 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B5700 */ if (_t20) goto L_028B5704; else goto L_028B5730;
|
|
L_028B5704: ; // 0x28b5704
|
|
/* 028B5704 */ cpu->r[27] = 0x00000000u;
|
|
L_028B5708: ; // 0x28b5708
|
|
/* 028B5708 */ cpu->r[6] = 0x00000001u;
|
|
/* 028B570C */ cpu->r[4] = 0x00000010u;
|
|
/* 028B5710 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B5714 */ cpu->r[3] = cpu->r[3] + cpu->r[27];
|
|
/* 028B5718 */ Gambit_fn_028D463C(cpu);
|
|
/* 028B571C */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 028B571C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5720 */ cpu->r[27] = cpu->r[27] + 0x00000014u;
|
|
/* 028B5724 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5724 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028B5724 */ if (_t22) goto L_028B5730; else goto L_028B5728;
|
|
L_028B5728: ; // 0x28b5728
|
|
/* 028B5728 */ _t23 = cpu->r[28] + 0x00000070u;
|
|
/* 028B5728 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B572C */ goto L_028B5708;
|
|
L_028B5730: ; // 0x28b5730
|
|
/* 028B5730 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000001u);
|
|
/* 028B5734 */ _t24 = cpu->r[28] + 0x00000074u;
|
|
/* 028B5734 */ rbrew_write32(cpu->mem, _t24, cpu->r[25]);
|
|
/* 028B5738 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5738 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028B5738 */ if (_t26) goto L_028B5748; else goto L_028B573C;
|
|
L_028B573C: ; // 0x28b573c
|
|
/* 028B573C */ _t27 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 028B573C */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B5740 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B5744 */ Gambit_fn_02827008(cpu);
|
|
L_028B5748: ; // 0x28b5748
|
|
/* 028B5748 */ /* nop */
|
|
/* 028B574C */ _t28 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B574C */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B5750 */ cpu->lr = cpu->r[0];
|
|
/* 028B5754 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 028B5758 */ return;
|
|
}
|
|
|
|
// fn_028B575C @ 0x28b575c
|
|
void Gambit_fn_028B575C(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;
|
|
|
|
L_028B575C: ; // 0x28b575c
|
|
/* 028B575C */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 028B575C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B575C */ cpu->r[1] = _t0;
|
|
/* 028B5760 */ /* nop */
|
|
/* 028B5764 */ cpu->r[0] = cpu->lr;
|
|
/* 028B5768 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B5768 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B576C */ cpu->r[28] = cpu->r[3];
|
|
/* 028B5770 */ _t2 = cpu->r[28] + 0x00000084u;
|
|
/* 028B5770 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B5774 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B5778 */ _t3 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B5778 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B5778 */ if (_t4) goto L_028B577C; else goto L_028B587C;
|
|
L_028B577C: ; // 0x28b577c
|
|
/* 028B577C */ _t5 = cpu->r[28] + 0x00000074u;
|
|
/* 028B577C */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B5780 */ cpu->r[31] = 0x00000000u;
|
|
/* 028B5784 */ _t6 = cpu->r[11] + 0x00000000u;
|
|
/* 028B5784 */ rbrew_write32(cpu->mem, _t6, cpu->r[31]);
|
|
/* 028B5788 */ _t7 = cpu->r[28] + 0x00000084u;
|
|
/* 028B5788 */ cpu->r[6] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B578C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[6]);
|
|
/* 028B5790 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5790 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B5790 */ if (_t9) goto L_028B5794; else goto L_028B57B8;
|
|
L_028B5794: ; // 0x28b5794
|
|
/* 028B5794 */ cpu->r[30] = 0x00000000u;
|
|
L_028B5798: ; // 0x28b5798
|
|
/* 028B5798 */ _t10 = cpu->r[28] + 0x00000070u;
|
|
/* 028B5798 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B579C */ cpu->r[3] = cpu->r[11] + cpu->r[30];
|
|
/* 028B57A0 */ Gambit_fn_028D45FC(cpu);
|
|
/* 028B57A4 */ _t11 = cpu->r[28] + 0x00000084u;
|
|
/* 028B57A4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B57A8 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B57AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[6]);
|
|
/* 028B57B0 */ cpu->r[30] = cpu->r[30] + 0x00000014u;
|
|
/* 028B57B4 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B57B4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B57B4 */ if (_t13) goto L_028B5798; else goto L_028B57B8;
|
|
L_028B57B8: ; // 0x28b57b8
|
|
/* 028B57B8 */ _t14 = cpu->r[28] + 0x00000020u;
|
|
/* 028B57B8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B57BC */ _t15 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B57BC */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B57C0 */ cpu->r[0] = cpu->r[5] + 0x00000064u;
|
|
/* 028B57C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B57C4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B57C4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B57C4 */ if (_t17) goto L_028B587C; else goto L_028B57C8;
|
|
L_028B57C8: ; // 0x28b57c8
|
|
/* 028B57C8 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B57CC */ _t18 = cpu->r[5] + 0x00000084u;
|
|
/* 028B57CC */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B57D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[6]);
|
|
/* 028B57D4 */ _t19 = cpu->r[5] + 0x00000044u;
|
|
/* 028B57D4 */ cpu->r[27] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B57D8 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B57D8 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B57D8 */ if (_t21) goto L_028B57DC; else goto L_028B587C;
|
|
L_028B57DC: ; // 0x28b57dc
|
|
/* 028B57DC */ cpu->r[26] = 0x10140000u;
|
|
/* 028B57E0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B57E4 */ cpu->r[25] = cpu->r[1] + 0x00000014u;
|
|
/* 028B57E8 */ cpu->r[26] = cpu->r[26] + 0xFFFF8934u;
|
|
/* 028B57EC */ cpu->r[31] = cpu->r[31] + 0xFFFFFFF8u;
|
|
L_028B57F0: ; // 0x28b57f0
|
|
/* 028B57F0 */ _t22 = cpu->r[31] + 0x00000008u;
|
|
/* 028B57F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B57F0 */ cpu->r[31] = _t22;
|
|
/* 028B57F4 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B57F4 */ rbrew_write32(cpu->mem, _t23, cpu->r[26]);
|
|
/* 028B57F8 */ cpu->r[0] = cpu->r[12] + cpu->r[27];
|
|
/* 028B57FC */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 028B57FC */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 028B5800 */ Gambit_fn_028C29F4(cpu);
|
|
/* 028B5804 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B5808 */ Gambit_fn_028D2200(cpu);
|
|
/* 028B580C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5810 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5810 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028B5810 */ if (_t26) goto L_028B5868; else goto L_028B5814;
|
|
L_028B5814: ; // 0x28b5814
|
|
/* 028B5814 */ _t27 = cpu->r[28] + 0x00000074u;
|
|
/* 028B5814 */ cpu->r[9] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B5818 */ _t28 = cpu->r[9] + 0x00000000u;
|
|
/* 028B5818 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B581C */ _t29 = cpu->r[9] + 0x00000004u;
|
|
/* 028B581C */ cpu->r[6] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B5820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[6]);
|
|
/* 028B5824 */ _t30 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5824 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028B5824 */ if (_t31) goto L_028B5828; else goto L_028B5840;
|
|
L_028B5828: ; // 0x28b5828
|
|
/* 028B5828 */ _t32 = cpu->r[9] + 0x00000008u;
|
|
/* 028B5828 */ cpu->r[8] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B582C */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 028B5830 */ _t33 = cpu->r[7] + cpu->r[8];
|
|
/* 028B5830 */ rbrew_write32(cpu->mem, _t33, cpu->r[3]);
|
|
/* 028B5834 */ _t34 = cpu->r[9] + 0x00000000u;
|
|
/* 028B5834 */ cpu->r[10] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B5838 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028B583C */ _t35 = cpu->r[9] + 0x00000000u;
|
|
/* 028B583C */ rbrew_write32(cpu->mem, _t35, cpu->r[10]);
|
|
L_028B5840: ; // 0x28b5840
|
|
/* 028B5840 */ _t36 = cpu->r[31] + 0x00000004u;
|
|
/* 028B5840 */ cpu->r[5] = rbrew_read8(cpu->mem, _t36);
|
|
/* 028B5844 */ _t37 = cpu->r[28] + 0x00000070u;
|
|
/* 028B5844 */ cpu->r[12] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028B5848 */ /* nop */
|
|
/* 028B584C */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028B5850 */ _t38 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5850 */ rbrew_write32(cpu->mem, _t38, cpu->r[5]);
|
|
/* 028B5854 */ _t39 = cpu->r[25] + 0x00000000u;
|
|
/* 028B5854 */ cpu->r[11] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028B5858 */ cpu->r[3] = cpu->r[12] + cpu->r[30];
|
|
/* 028B585C */ cpu->r[5] = 0x00000000u;
|
|
/* 028B5860 */ _t40 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5860 */ rbrew_write32(cpu->mem, _t40, cpu->r[11]);
|
|
/* 028B5864 */ Gambit_fn_028D454C(cpu);
|
|
L_028B5868: ; // 0x28b5868
|
|
/* 028B5868 */ _t41 = cpu->r[28] + 0x00000084u;
|
|
/* 028B5868 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B586C */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028B5870 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B5874 */ cpu->r[30] = cpu->r[30] + 0x00000014u;
|
|
/* 028B5878 */ _t42 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5878 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028B5878 */ if (_t43) goto L_028B57F0; else goto L_028B587C;
|
|
L_028B587C: ; // 0x28b587c
|
|
/* 028B587C */ /* nop */
|
|
/* 028B5880 */ _t44 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B5880 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028B5884 */ cpu->lr = cpu->r[0];
|
|
/* 028B5888 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 028B588C */ return;
|
|
}
|
|
|
|
// fn_028B5890 @ 0x28b5890
|
|
void Gambit_fn_028B5890(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B5890: ; // 0x28b5890
|
|
/* 028B5890 */ cpu->r[0] = cpu->lr;
|
|
/* 028B5894 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B5894 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5894 */ cpu->r[1] = _t0;
|
|
/* 028B5898 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5898 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B589C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B58A0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B58A0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B58A4 */ Gambit_fn_028B5638(cpu);
|
|
/* 028B58A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B58AC */ Gambit_fn_028B575C(cpu);
|
|
/* 028B58B0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B58B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B58B4 */ cpu->lr = cpu->r[0];
|
|
/* 028B58B8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B58B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B58BC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B58C0 */ return;
|
|
}
|
|
|
|
// fn_028B5894 @ 0x28b5894
|
|
void Gambit_fn_028B5894(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B5894: ; // 0x28b5894
|
|
/* 028B5894 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B5894 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5894 */ cpu->r[1] = _t0;
|
|
/* 028B5898 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5898 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B589C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B58A0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B58A0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B58A4 */ Gambit_fn_028B5638(cpu);
|
|
/* 028B58A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B58AC */ Gambit_fn_028B575C(cpu);
|
|
/* 028B58B0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B58B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B58B4 */ cpu->lr = cpu->r[0];
|
|
/* 028B58B8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B58B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B58BC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B58C0 */ return;
|
|
}
|
|
|
|
// fn_028B58C4 @ 0x28b58c4
|
|
void Gambit_fn_028B58C4(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_028B58C4: ; // 0x28b58c4
|
|
/* 028B58C4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B58C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B58C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B58C8 */ cpu->r[1] = _t0;
|
|
/* 028B58CC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B58CC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B58D0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B58D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B58D4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B58D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B58D8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B58DC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B58DC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B58E0 */ _t5 = cpu->r[30] + 0x00000020u;
|
|
/* 028B58E0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B58E4 */ _t6 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B58E4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B58E8 */ _t7 = cpu->r[9] + 0x00000008u;
|
|
/* 028B58E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B58EC */ _t8 = cpu->r[12] + 0x00000008u;
|
|
/* 028B58EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B58F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B58F4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B58F4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B58F4 */ if (_t10) goto L_028B5950; else goto L_028B58F8;
|
|
L_028B58F8: ; // 0x28b58f8
|
|
/* 028B58F8 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028B58FC */ cpu->r[8] = rbrew_rlwinm(cpu->r[31], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028B5900 */ _t11 = cpu->r[29] + 0xFFFFC3D4u;
|
|
/* 028B5900 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B5900 */ cpu->r[29] = _t11;
|
|
/* 028B5904 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B5908 */ cpu->r[3] = cpu->r[8] + cpu->r[10];
|
|
/* 028B590C */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B5910 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5914 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5914 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B5914 */ if (_t13) goto L_028B5944; else goto L_028B5918;
|
|
L_028B5918: ; // 0x28b5918
|
|
/* 028B5918 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B591C */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 028B591C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B5920 */ cpu->r[5] = 0x00000010u;
|
|
/* 028B5924 */ cpu->r[6] = cpu->r[6] + 0x00005E00u;
|
|
/* 028B5928 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B592C */ cpu->r[3] = cpu->r[3] + cpu->r[0];
|
|
/* 028B5930 */ cpu->r[7] = 0x00000000u;
|
|
/* 028B5934 */ Gambit_fn_02C82DBC(cpu);
|
|
/* 028B5938 */ _t15 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028B5938 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
/* 028B593C */ _t16 = cpu->r[30] + 0x00000040u;
|
|
/* 028B593C */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
/* 028B5940 */ goto L_028B5950;
|
|
L_028B5944: ; // 0x28b5944
|
|
/* 028B5944 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B5948 */ _t17 = cpu->r[30] + 0x00000040u;
|
|
/* 028B5948 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
/* 028B594C */ _t18 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028B594C */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
L_028B5950: ; // 0x28b5950
|
|
/* 028B5950 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5950 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B5954 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5954 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B5958 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5958 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B595C */ cpu->lr = cpu->r[0];
|
|
/* 028B5960 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5960 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B5964 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B5968 */ return;
|
|
}
|
|
|
|
// fn_028B58C8 @ 0x28b58c8
|
|
void Gambit_fn_028B58C8(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_028B58C8: ; // 0x28b58c8
|
|
/* 028B58C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B58C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B58C8 */ cpu->r[1] = _t0;
|
|
/* 028B58CC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B58CC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B58D0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B58D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B58D4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B58D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B58D8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B58DC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B58DC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B58E0 */ _t5 = cpu->r[30] + 0x00000020u;
|
|
/* 028B58E0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B58E4 */ _t6 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B58E4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B58E8 */ _t7 = cpu->r[9] + 0x00000008u;
|
|
/* 028B58E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B58EC */ _t8 = cpu->r[12] + 0x00000008u;
|
|
/* 028B58EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B58F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B58F4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B58F4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B58F4 */ if (_t10) goto L_028B5950; else goto L_028B58F8;
|
|
L_028B58F8: ; // 0x28b58f8
|
|
/* 028B58F8 */ cpu->r[29] = 0x101D0000u;
|
|
/* 028B58FC */ cpu->r[8] = rbrew_rlwinm(cpu->r[31], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028B5900 */ _t11 = cpu->r[29] + 0xFFFFC3D4u;
|
|
/* 028B5900 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B5900 */ cpu->r[29] = _t11;
|
|
/* 028B5904 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B5908 */ cpu->r[3] = cpu->r[8] + cpu->r[10];
|
|
/* 028B590C */ Gambit_fn_02801ADC(cpu);
|
|
/* 028B5910 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5914 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5914 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B5914 */ if (_t13) goto L_028B5944; else goto L_028B5918;
|
|
L_028B5918: ; // 0x28b5918
|
|
/* 028B5918 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B591C */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 028B591C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B5920 */ cpu->r[5] = 0x00000010u;
|
|
/* 028B5924 */ cpu->r[6] = cpu->r[6] + 0x00005E00u;
|
|
/* 028B5928 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B592C */ cpu->r[3] = cpu->r[3] + cpu->r[0];
|
|
/* 028B5930 */ cpu->r[7] = 0x00000000u;
|
|
/* 028B5934 */ Gambit_fn_02C82DBC(cpu);
|
|
/* 028B5938 */ _t15 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028B5938 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
/* 028B593C */ _t16 = cpu->r[30] + 0x00000040u;
|
|
/* 028B593C */ rbrew_write32(cpu->mem, _t16, cpu->r[31]);
|
|
/* 028B5940 */ goto L_028B5950;
|
|
L_028B5944: ; // 0x28b5944
|
|
/* 028B5944 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B5948 */ _t17 = cpu->r[30] + 0x00000040u;
|
|
/* 028B5948 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
/* 028B594C */ _t18 = cpu->r[30] + 0x0000003Cu;
|
|
/* 028B594C */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
L_028B5950: ; // 0x28b5950
|
|
/* 028B5950 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5950 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B5954 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5954 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B5958 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5958 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B595C */ cpu->lr = cpu->r[0];
|
|
/* 028B5960 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5960 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B5964 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B5968 */ return;
|
|
}
|
|
|
|
// fn_028B596C @ 0x28b596c
|
|
void Gambit_fn_028B596C(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;
|
|
|
|
L_028B596C: ; // 0x28b596c
|
|
/* 028B596C */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028B596C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B596C */ cpu->r[1] = _t0;
|
|
/* 028B5970 */ /* nop */
|
|
/* 028B5974 */ cpu->r[0] = cpu->lr;
|
|
/* 028B5978 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028B5978 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B597C */ cpu->r[26] = cpu->r[3];
|
|
/* 028B5980 */ _t2 = cpu->r[26] + 0x00000028u;
|
|
/* 028B5980 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B5984 */ _t3 = cpu->r[26] + 0x00000020u;
|
|
/* 028B5984 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B5988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B598C */ cpu->r[28] = cpu->r[4];
|
|
/* 028B5990 */ _t4 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B5990 */ cpu->r[25] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B5994 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5994 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B5994 */ if (_t6) goto L_028B5998; else goto L_028B59A4;
|
|
L_028B5998: ; // 0x28b5998
|
|
/* 028B5998 */ cpu->r[4] = 0x101F0000u;
|
|
/* 028B599C */ cpu->r[4] = cpu->r[4] + 0x00005E30u;
|
|
/* 028B59A0 */ _t7 = cpu->r[26] + 0x00000028u;
|
|
/* 028B59A0 */ rbrew_write32(cpu->mem, _t7, cpu->r[4]);
|
|
L_028B59A4: ; // 0x28b59a4
|
|
/* 028B59A4 */ _t8 = cpu->r[25] + 0x00000008u;
|
|
/* 028B59A4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B59A8 */ _t9 = cpu->r[5] + 0x00000004u;
|
|
/* 028B59A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B59AC */ cpu->r[29] = 0x00000000u;
|
|
/* 028B59B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028B59B4 */ _t10 = cpu->r[26] + 0x0000003Cu;
|
|
/* 028B59B4 */ cpu->r[27] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B59B8 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B59B8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B59B8 */ if (_t12) goto L_028B59BC; else goto L_028B5BB4;
|
|
L_028B59BC: ; // 0x28b59bc
|
|
/* 028B59BC */ cpu->r[30] = 0x00000000u;
|
|
L_028B59C0: ; // 0x28b59c0
|
|
/* 028B59C0 */ cpu->r[3] = cpu->r[25];
|
|
/* 028B59C4 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B59C8 */ Gambit_fn_028AD640(cpu);
|
|
/* 028B59CC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B59CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B59D0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B59D0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B59D0 */ if (_t14) goto L_028B5BB4; else goto L_028B59D4;
|
|
L_028B59D4: ; // 0x28b59d4
|
|
/* 028B59D4 */ _t15 = cpu->r[31] + 0x00000004u;
|
|
/* 028B59D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B59D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B59DC */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B59DC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B59DC */ if (_t17) goto L_028B5BA0; else goto L_028B59E0;
|
|
L_028B59E0: ; // 0x28b59e0
|
|
/* 028B59E0 */ cpu->r[6] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 028B59E4 */ cpu->r[3] = cpu->r[26];
|
|
/* 028B59E8 */ cpu->r[24] = cpu->r[27] + cpu->r[6];
|
|
/* 028B59EC */ Gambit_fn_028B4C24(cpu);
|
|
/* 028B59F0 */ cpu->r[5] = 0x00000015u;
|
|
/* 028B59F4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B59F8 */ Gambit_fn_028A8004(cpu);
|
|
/* 028B59FC */ _t18 = cpu->r[3] + 0x00000004u;
|
|
/* 028B59FC */ cpu->r[23] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B5A00 */ cpu->r[3] = cpu->r[26];
|
|
/* 028B5A04 */ Gambit_fn_028B4C24(cpu);
|
|
/* 028B5A08 */ _t19 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B5A08 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B5A0C */ _t20 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028B5A0C */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B5A10 */ cpu->ctr = cpu->r[9];
|
|
/* 028B5A14 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B5A18 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B5A1C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5A20 */ _t21 = cpu->r[31] + 0x00000000u;
|
|
/* 028B5A20 */ cpu->r[10] = rbrew_read8(cpu->mem, _t21);
|
|
/* 028B5A24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B5A28 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5A28 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B5A28 */ if (_t23) goto L_028B5B88; else goto L_028B5A2C;
|
|
L_028B5A2C: ; // 0x28b5a2c
|
|
/* 028B5A2C */ _t24 = cpu->r[26] + 0x00000024u;
|
|
/* 028B5A2C */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B5A30 */ _t25 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5A30 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B5A34 */ _t26 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028B5A34 */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B5A38 */ cpu->ctr = cpu->r[12];
|
|
/* 028B5A3C */ cpu->r[4] = cpu->r[31];
|
|
/* 028B5A40 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B5A44 */ _t27 = cpu->r[24] + 0x00000000u;
|
|
/* 028B5A44 */ rbrew_write32(cpu->mem, _t27, cpu->r[3]);
|
|
/* 028B5A48 */ _t28 = cpu->r[26] + 0x00000030u;
|
|
/* 028B5A48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B5A4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5A50 */ _t29 = cpu->r[24] + 0x00000004u;
|
|
/* 028B5A50 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028B5A54 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5A54 */ _t31 = _t30 & 0x00000001u;
|
|
/* 028B5A54 */ if (_t31) goto L_028B5A58; else goto L_028B5A88;
|
|
L_028B5A58: ; // 0x28b5a58
|
|
/* 028B5A58 */ _t32 = cpu->r[26] + 0x0000001Cu;
|
|
/* 028B5A58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B5A5C */ cpu->r[7] = cpu->r[31];
|
|
/* 028B5A60 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B5A64 */ _t33 = cpu->r[26] + 0x00000020u;
|
|
/* 028B5A64 */ cpu->r[5] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B5A68 */ cpu->r[4] = 0x0000000Bu;
|
|
/* 028B5A6C */ cpu->r[6] = cpu->r[6] + 0xFFFF89B4u;
|
|
/* 028B5A70 */ _t34 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B5A70 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028B5A70 */ if (_t35) goto L_028B5A74; // else: addr-0 trap, fall-through
|
|
L_028B5A74: ; // 0x28b5a74
|
|
/* 028B5A74 */ Gambit_fn_028AA73C(cpu);
|
|
/* 028B5A78 */ _t36 = cpu->r[26] + 0x00000030u;
|
|
/* 028B5A78 */ cpu->r[5] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028B5A7C */ _t37 = cpu->r[24] + 0x00000004u;
|
|
/* 028B5A7C */ rbrew_write32(cpu->mem, _t37, cpu->r[5]);
|
|
/* 028B5A80 */ _t38 = cpu->r[26] + 0x00000028u;
|
|
/* 028B5A80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B5A84 */ _t39 = cpu->r[24] + 0x00000000u;
|
|
/* 028B5A84 */ rbrew_write32(cpu->mem, _t39, cpu->r[0]);
|
|
L_028B5A88: ; // 0x28b5a88
|
|
/* 028B5A88 */ _t40 = cpu->r[26] + 0x0000006Cu;
|
|
/* 028B5A88 */ cpu->r[11] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028B5A8C */ _t41 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028B5A8C */ cpu->r[12] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B5A90 */ _t42 = cpu->r[11] + 0x00000004u;
|
|
/* 028B5A90 */ cpu->r[7] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028B5A94 */ cpu->r[0] = cpu->r[11] - cpu->r[12];
|
|
/* 028B5A98 */ cpu->r[4] = cpu->r[7] - cpu->r[12];
|
|
/* 028B5A9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 028B5AA0 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5AA0 */ _t44 = _t43 & 0x00000001u;
|
|
/* 028B5AA0 */ if (_t44) goto L_028B5AF0; else goto L_028B5AA4;
|
|
L_028B5AA4: ; // 0x28b5aa4
|
|
/* 028B5AA4 */ _t45 = cpu->r[4] + 0x00000000u;
|
|
/* 028B5AA4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028B5AA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[23]);
|
|
/* 028B5AAC */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5AAC */ _t47 = _t46 & 0x00000001u;
|
|
/* 028B5AAC */ if (_t47) goto L_028B5AB0; else goto L_028B5ADC;
|
|
L_028B5AB0: ; // 0x28b5ab0
|
|
/* 028B5AB0 */ _t48 = cpu->r[4] + 0x00000004u;
|
|
/* 028B5AB0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028B5AB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B5AB8 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5AB8 */ _t50 = _t49 & 0x00000001u;
|
|
/* 028B5AB8 */ if (_t50) goto L_028B5BA0; else goto L_028B5ABC;
|
|
L_028B5ABC: ; // 0x28b5abc
|
|
/* 028B5ABC */ _t51 = cpu->r[4] + 0x00000004u;
|
|
/* 028B5ABC */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028B5AC0 */ _t52 = cpu->r[24] + 0x0000000Cu;
|
|
/* 028B5AC0 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
/* 028B5AC4 */ _t53 = cpu->r[25] + 0x00000008u;
|
|
/* 028B5AC4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028B5AC8 */ _t54 = cpu->r[9] + 0x00000004u;
|
|
/* 028B5AC8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028B5ACC */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028B5AD0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[10]);
|
|
/* 028B5AD4 */ _t55 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5AD4 */ _t56 = _t55 & 0x00000001u;
|
|
/* 028B5AD4 */ if (_t56) goto L_028B59C0; else goto L_028B5AD8;
|
|
L_028B5AD8: ; // 0x28b5ad8
|
|
/* 028B5AD8 */ goto L_028B5BB4;
|
|
L_028B5ADC: ; // 0x28b5adc
|
|
/* 028B5ADC */ cpu->r[4] = cpu->r[4] + cpu->r[12];
|
|
/* 028B5AE0 */ _t57 = cpu->r[4] + 0x00000004u;
|
|
/* 028B5AE0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t57);
|
|
/* 028B5AE4 */ cpu->r[4] = cpu->r[11] - cpu->r[12];
|
|
/* 028B5AE8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 028B5AEC */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5AEC */ _t59 = _t58 & 0x00000001u;
|
|
/* 028B5AEC */ if (_t59) goto L_028B5AF0; else goto L_028B5AA4;
|
|
L_028B5AF0: ; // 0x28b5af0
|
|
/* 028B5AF0 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B5AF4 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B5AF8 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B5AFC */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B5B00 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5B00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5B04 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5B04 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028B5B04 */ if (_t61) goto L_028B5B28; else goto L_028B5B08;
|
|
L_028B5B08: ; // 0x28b5b08
|
|
/* 028B5B08 */ _t62 = cpu->r[31] + 0x00000008u;
|
|
/* 028B5B08 */ rbrew_write32(cpu->mem, _t62, cpu->r[30]);
|
|
/* 028B5B0C */ _t63 = cpu->r[31] + 0x00000000u;
|
|
/* 028B5B0C */ rbrew_write32(cpu->mem, _t63, cpu->r[23]);
|
|
/* 028B5B10 */ _t64 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B5B10 */ rbrew_write32(cpu->mem, _t64, cpu->r[30]);
|
|
/* 028B5B14 */ _t65 = cpu->r[31] + 0x00000004u;
|
|
/* 028B5B14 */ rbrew_write32(cpu->mem, _t65, cpu->r[30]);
|
|
/* 028B5B18 */ _t66 = cpu->r[26] + 0x00000060u;
|
|
/* 028B5B18 */ cpu->r[12] = rbrew_read8(cpu->mem, _t66);
|
|
/* 028B5B1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B5B20 */ _t67 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5B20 */ _t68 = _t67 & 0x00000001u;
|
|
/* 028B5B20 */ if (_t68) goto L_028B5B3C; else goto L_028B5B24;
|
|
L_028B5B24: ; // 0x28b5b24
|
|
/* 028B5B24 */ goto L_028B5B50;
|
|
L_028B5B28: ; // 0x28b5b28
|
|
/* 028B5B28 */ cpu->r[31] = 0x00000000u;
|
|
/* 028B5B2C */ _t69 = cpu->r[31] + 0x00000000u;
|
|
/* 028B5B2C */ rbrew_write32(cpu->mem, _t69, cpu->r[23]);
|
|
/* 028B5B30 */ _t70 = cpu->r[26] + 0x00000060u;
|
|
/* 028B5B30 */ cpu->r[12] = rbrew_read8(cpu->mem, _t70);
|
|
/* 028B5B34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B5B38 */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5B38 */ _t72 = _t71 & 0x00000001u;
|
|
/* 028B5B38 */ if (_t72) goto L_028B5B3C; else goto L_028B5B50;
|
|
L_028B5B3C: ; // 0x28b5b3c
|
|
/* 028B5B3C */ _t73 = cpu->r[26] + 0x00000064u;
|
|
/* 028B5B3C */ cpu->r[4] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028B5B40 */ cpu->r[3] = cpu->r[26];
|
|
/* 028B5B44 */ Gambit_fn_028B4C48(cpu);
|
|
/* 028B5B48 */ _t74 = cpu->r[31] + 0x00000004u;
|
|
/* 028B5B48 */ rbrew_write32(cpu->mem, _t74, cpu->r[3]);
|
|
/* 028B5B4C */ _t75 = cpu->r[24] + 0x0000000Cu;
|
|
/* 028B5B4C */ rbrew_write32(cpu->mem, _t75, cpu->r[3]);
|
|
L_028B5B50: ; // 0x28b5b50
|
|
/* 028B5B50 */ _t76 = cpu->r[26] + 0x0000006Cu;
|
|
/* 028B5B50 */ cpu->r[24] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028B5B54 */ _t77 = cpu->r[24] + 0x0000000Cu;
|
|
/* 028B5B54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028B5B58 */ cpu->r[3] = cpu->r[24];
|
|
/* 028B5B5C */ cpu->r[4] = cpu->r[31] + cpu->r[0];
|
|
/* 028B5B60 */ Gambit_fn_02801EBC(cpu);
|
|
/* 028B5B64 */ _t78 = cpu->r[24] + 0x00000008u;
|
|
/* 028B5B64 */ cpu->r[5] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028B5B68 */ cpu->r[5] = cpu->r[5] + 0x00000001u;
|
|
/* 028B5B6C */ _t79 = cpu->r[24] + 0x00000008u;
|
|
/* 028B5B6C */ rbrew_write32(cpu->mem, _t79, cpu->r[5]);
|
|
/* 028B5B70 */ _t80 = cpu->r[25] + 0x00000008u;
|
|
/* 028B5B70 */ cpu->r[9] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028B5B74 */ _t81 = cpu->r[9] + 0x00000004u;
|
|
/* 028B5B74 */ cpu->r[10] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028B5B78 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028B5B7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[10]);
|
|
/* 028B5B80 */ _t82 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5B80 */ _t83 = _t82 & 0x00000001u;
|
|
/* 028B5B80 */ if (_t83) goto L_028B59C0; else goto L_028B5B84;
|
|
L_028B5B84: ; // 0x28b5b84
|
|
/* 028B5B84 */ goto L_028B5BB4;
|
|
L_028B5B88: ; // 0x28b5b88
|
|
/* 028B5B88 */ _t84 = cpu->r[26] + 0x00000030u;
|
|
/* 028B5B88 */ cpu->r[6] = rbrew_read32(cpu->mem, _t84);
|
|
/* 028B5B8C */ _t85 = cpu->r[24] + 0x00000004u;
|
|
/* 028B5B8C */ rbrew_write32(cpu->mem, _t85, cpu->r[6]);
|
|
/* 028B5B90 */ _t86 = cpu->r[26] + 0x00000028u;
|
|
/* 028B5B90 */ cpu->r[7] = rbrew_read32(cpu->mem, _t86);
|
|
/* 028B5B94 */ _t87 = cpu->r[24] + 0x00000000u;
|
|
/* 028B5B94 */ rbrew_write32(cpu->mem, _t87, cpu->r[7]);
|
|
/* 028B5B98 */ _t88 = cpu->r[26] + 0x00000068u;
|
|
/* 028B5B98 */ cpu->r[8] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028B5B9C */ _t89 = cpu->r[24] + 0x0000000Cu;
|
|
/* 028B5B9C */ rbrew_write32(cpu->mem, _t89, cpu->r[8]);
|
|
L_028B5BA0: ; // 0x28b5ba0
|
|
/* 028B5BA0 */ _t90 = cpu->r[25] + 0x00000008u;
|
|
/* 028B5BA0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t90);
|
|
/* 028B5BA4 */ _t91 = cpu->r[9] + 0x00000004u;
|
|
/* 028B5BA4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t91);
|
|
/* 028B5BA8 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028B5BAC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[10]);
|
|
/* 028B5BB0 */ _t92 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B5BB0 */ _t93 = _t92 & 0x00000001u;
|
|
/* 028B5BB0 */ if (_t93) goto L_028B59C0; else goto L_028B5BB4;
|
|
L_028B5BB4: ; // 0x28b5bb4
|
|
/* 028B5BB4 */ /* nop */
|
|
/* 028B5BB8 */ _t94 = cpu->r[1] + 0x00000034u;
|
|
/* 028B5BB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028B5BBC */ cpu->lr = cpu->r[0];
|
|
/* 028B5BC0 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028B5BC4 */ return;
|
|
}
|
|
|
|
// fn_028B5BC8 @ 0x28b5bc8
|
|
void Gambit_fn_028B5BC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028B5BC8: ; // 0x28b5bc8
|
|
/* 028B5BC8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B5BCC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B5BCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5BCC */ cpu->r[1] = _t0;
|
|
/* 028B5BD0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5BD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B5BD4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5BD8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5BD8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B5BDC */ _t3 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028B5BDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B5BE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5BE4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5BE4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B5BE4 */ if (_t5) goto L_028B5C10; else goto L_028B5BE8;
|
|
L_028B5BE8: ; // 0x28b5be8
|
|
/* 028B5BE8 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B5BEC */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028B5BF0 */ cpu->r[5] = 0x00000010u;
|
|
/* 028B5BF4 */ cpu->r[6] = cpu->r[6] + 0x00005E88u;
|
|
/* 028B5BF8 */ cpu->r[7] = 0x00000001u;
|
|
/* 028B5BFC */ cpu->r[8] = 0x00000000u;
|
|
/* 028B5C00 */ Gambit_fn_02C82F38(cpu);
|
|
/* 028B5C04 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B5C08 */ _t6 = cpu->r[31] + 0x00000040u;
|
|
/* 028B5C08 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028B5C0C */ _t7 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028B5C0C */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
L_028B5C10: ; // 0x28b5c10
|
|
/* 028B5C10 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5C10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B5C14 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5C14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B5C18 */ cpu->lr = cpu->r[0];
|
|
/* 028B5C1C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B5C20 */ return;
|
|
}
|
|
|
|
// fn_028B5BCC @ 0x28b5bcc
|
|
void Gambit_fn_028B5BCC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_028B5BCC: ; // 0x28b5bcc
|
|
/* 028B5BCC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B5BCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5BCC */ cpu->r[1] = _t0;
|
|
/* 028B5BD0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5BD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B5BD4 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5BD8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5BD8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B5BDC */ _t3 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028B5BDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B5BE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5BE4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5BE4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B5BE4 */ if (_t5) goto L_028B5C10; else goto L_028B5BE8;
|
|
L_028B5BE8: ; // 0x28b5be8
|
|
/* 028B5BE8 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B5BEC */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028B5BF0 */ cpu->r[5] = 0x00000010u;
|
|
/* 028B5BF4 */ cpu->r[6] = cpu->r[6] + 0x00005E88u;
|
|
/* 028B5BF8 */ cpu->r[7] = 0x00000001u;
|
|
/* 028B5BFC */ cpu->r[8] = 0x00000000u;
|
|
/* 028B5C00 */ Gambit_fn_02C82F38(cpu);
|
|
/* 028B5C04 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B5C08 */ _t6 = cpu->r[31] + 0x00000040u;
|
|
/* 028B5C08 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 028B5C0C */ _t7 = cpu->r[31] + 0x0000003Cu;
|
|
/* 028B5C0C */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
L_028B5C10: ; // 0x28b5c10
|
|
/* 028B5C10 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5C10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B5C14 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5C14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B5C18 */ cpu->lr = cpu->r[0];
|
|
/* 028B5C1C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B5C20 */ return;
|
|
}
|
|
|
|
// fn_028B5C24 @ 0x28b5c24
|
|
void Gambit_fn_028B5C24(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_028B5C24: ; // 0x28b5c24
|
|
/* 028B5C24 */ cpu->r[0] = cpu->lr;
|
|
/* 028B5C28 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028B5C28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5C28 */ cpu->r[1] = _t0;
|
|
/* 028B5C2C */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028B5C2C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B5C30 */ _t2 = cpu->r[1] + 0x00000030u;
|
|
/* 028B5C30 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B5C34 */ _t3 = cpu->r[1] + 0x00000038u;
|
|
/* 028B5C34 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B5C38 */ _t4 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B5C38 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B5C3C */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B5C40 */ _t5 = cpu->r[1] + 0x00000044u;
|
|
/* 028B5C40 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B5C44 */ _t6 = cpu->r[12] + 0xFFFF9A68u;
|
|
/* 028B5C44 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B5C48 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B5C4C */ _t7 = cpu->r[12] + 0x00000070u;
|
|
/* 028B5C4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B5C50 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B5C54 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B5C58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5C5C */ cpu->r[31] = cpu->r[29];
|
|
/* 028B5C60 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5C60 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B5C60 */ if (_t9) goto L_028B5C98; else goto L_028B5C64;
|
|
L_028B5C64: ; // 0x28b5c64
|
|
/* 028B5C64 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5C64 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028B5C68 */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 028B5C68 */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 028B5C6C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5C6C */ rbrew_write32(cpu->mem, _t12, cpu->r[29]);
|
|
/* 028B5C70 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5C70 */ rbrew_write32(cpu->mem, _t13, cpu->r[28]);
|
|
/* 028B5C74 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5C74 */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
/* 028B5C78 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5C78 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B5C7C */ _t16 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028B5C7C */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B5C80 */ cpu->ctr = cpu->r[9];
|
|
/* 028B5C84 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B5C88 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B5C8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5C90 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5C90 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B5C90 */ if (_t18) goto L_028B5C98; else goto L_028B5C94;
|
|
L_028B5C94: ; // 0x28b5c94
|
|
/* 028B5C94 */ cpu->r[31] = 0x00000001u;
|
|
L_028B5C98: ; // 0x28b5c98
|
|
/* 028B5C98 */ _t19 = cpu->r[30] + 0x00000088u;
|
|
/* 028B5C98 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B5C9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5CA0 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5CA0 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B5CA0 */ if (_t21) goto L_028B5CD8; else goto L_028B5CA4;
|
|
L_028B5CA4: ; // 0x28b5ca4
|
|
/* 028B5CA4 */ _t22 = cpu->r[1] + 0x00000020u;
|
|
/* 028B5CA4 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028B5CA8 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B5CA8 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028B5CAC */ _t24 = cpu->r[1] + 0x00000028u;
|
|
/* 028B5CAC */ rbrew_write32(cpu->mem, _t24, cpu->r[29]);
|
|
/* 028B5CB0 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5CB0 */ rbrew_write32(cpu->mem, _t25, cpu->r[28]);
|
|
/* 028B5CB4 */ _t26 = cpu->r[1] + 0x00000024u;
|
|
/* 028B5CB4 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
/* 028B5CB8 */ _t27 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5CB8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B5CBC */ _t28 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028B5CBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B5CC0 */ cpu->ctr = cpu->r[0];
|
|
/* 028B5CC4 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5CC8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B5CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5CD0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5CD0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028B5CD0 */ if (_t30) goto L_028B5CD8; else goto L_028B5CD4;
|
|
L_028B5CD4: ; // 0x28b5cd4
|
|
/* 028B5CD4 */ cpu->r[31] = 0x00000001u;
|
|
L_028B5CD8: ; // 0x28b5cd8
|
|
/* 028B5CD8 */ _t31 = cpu->r[1] + 0x00000030u;
|
|
/* 028B5CD8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B5CDC */ _t32 = cpu->r[1] + 0x00000034u;
|
|
/* 028B5CDC */ cpu->r[29] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B5CE0 */ _t33 = cpu->r[1] + 0x00000044u;
|
|
/* 028B5CE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B5CE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5CE8 */ _t34 = cpu->r[1] + 0x00000038u;
|
|
/* 028B5CE8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B5CEC */ cpu->lr = cpu->r[0];
|
|
/* 028B5CF0 */ _t35 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B5CF0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028B5CF4 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028B5CF8 */ return;
|
|
}
|
|
|
|
// fn_028B5C28 @ 0x28b5c28
|
|
void Gambit_fn_028B5C28(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_028B5C28: ; // 0x28b5c28
|
|
/* 028B5C28 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 028B5C28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5C28 */ cpu->r[1] = _t0;
|
|
/* 028B5C2C */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028B5C2C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B5C30 */ _t2 = cpu->r[1] + 0x00000030u;
|
|
/* 028B5C30 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B5C34 */ _t3 = cpu->r[1] + 0x00000038u;
|
|
/* 028B5C34 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B5C38 */ _t4 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B5C38 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B5C3C */ cpu->r[12] = 0x101D0000u;
|
|
/* 028B5C40 */ _t5 = cpu->r[1] + 0x00000044u;
|
|
/* 028B5C40 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B5C44 */ _t6 = cpu->r[12] + 0xFFFF9A68u;
|
|
/* 028B5C44 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B5C48 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B5C4C */ _t7 = cpu->r[12] + 0x00000070u;
|
|
/* 028B5C4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B5C50 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B5C54 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B5C58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5C5C */ cpu->r[31] = cpu->r[29];
|
|
/* 028B5C60 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5C60 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B5C60 */ if (_t9) goto L_028B5C98; else goto L_028B5C64;
|
|
L_028B5C64: ; // 0x28b5c64
|
|
/* 028B5C64 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5C64 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028B5C68 */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 028B5C68 */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 028B5C6C */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5C6C */ rbrew_write32(cpu->mem, _t12, cpu->r[29]);
|
|
/* 028B5C70 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5C70 */ rbrew_write32(cpu->mem, _t13, cpu->r[28]);
|
|
/* 028B5C74 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5C74 */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
/* 028B5C78 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5C78 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B5C7C */ _t16 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028B5C7C */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B5C80 */ cpu->ctr = cpu->r[9];
|
|
/* 028B5C84 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 028B5C88 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B5C8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5C90 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5C90 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B5C90 */ if (_t18) goto L_028B5C98; else goto L_028B5C94;
|
|
L_028B5C94: ; // 0x28b5c94
|
|
/* 028B5C94 */ cpu->r[31] = 0x00000001u;
|
|
L_028B5C98: ; // 0x28b5c98
|
|
/* 028B5C98 */ _t19 = cpu->r[30] + 0x00000088u;
|
|
/* 028B5C98 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B5C9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5CA0 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5CA0 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B5CA0 */ if (_t21) goto L_028B5CD8; else goto L_028B5CA4;
|
|
L_028B5CA4: ; // 0x28b5ca4
|
|
/* 028B5CA4 */ _t22 = cpu->r[1] + 0x00000020u;
|
|
/* 028B5CA4 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
/* 028B5CA8 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 028B5CA8 */ rbrew_write32(cpu->mem, _t23, cpu->r[29]);
|
|
/* 028B5CAC */ _t24 = cpu->r[1] + 0x00000028u;
|
|
/* 028B5CAC */ rbrew_write32(cpu->mem, _t24, cpu->r[29]);
|
|
/* 028B5CB0 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5CB0 */ rbrew_write32(cpu->mem, _t25, cpu->r[28]);
|
|
/* 028B5CB4 */ _t26 = cpu->r[1] + 0x00000024u;
|
|
/* 028B5CB4 */ rbrew_write32(cpu->mem, _t26, cpu->r[29]);
|
|
/* 028B5CB8 */ _t27 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5CB8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B5CBC */ _t28 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028B5CBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B5CC0 */ cpu->ctr = cpu->r[0];
|
|
/* 028B5CC4 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5CC8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B5CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5CD0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5CD0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028B5CD0 */ if (_t30) goto L_028B5CD8; else goto L_028B5CD4;
|
|
L_028B5CD4: ; // 0x28b5cd4
|
|
/* 028B5CD4 */ cpu->r[31] = 0x00000001u;
|
|
L_028B5CD8: ; // 0x28b5cd8
|
|
/* 028B5CD8 */ _t31 = cpu->r[1] + 0x00000030u;
|
|
/* 028B5CD8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B5CDC */ _t32 = cpu->r[1] + 0x00000034u;
|
|
/* 028B5CDC */ cpu->r[29] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B5CE0 */ _t33 = cpu->r[1] + 0x00000044u;
|
|
/* 028B5CE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B5CE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5CE8 */ _t34 = cpu->r[1] + 0x00000038u;
|
|
/* 028B5CE8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B5CEC */ cpu->lr = cpu->r[0];
|
|
/* 028B5CF0 */ _t35 = cpu->r[1] + 0x0000003Cu;
|
|
/* 028B5CF0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028B5CF4 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 028B5CF8 */ return;
|
|
}
|
|
|
|
// fn_028B5CFC @ 0x28b5cfc
|
|
void Gambit_fn_028B5CFC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B5CFC: ; // 0x28b5cfc
|
|
/* 028B5CFC */ cpu->r[0] = cpu->lr;
|
|
/* 028B5D00 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B5D00 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5D00 */ cpu->r[1] = _t0;
|
|
/* 028B5D04 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5D04 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B5D08 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5D08 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B5D0C */ cpu->r[30] = cpu->r[5];
|
|
/* 028B5D10 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5D10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5D14 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5D14 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B5D18 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5D18 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B5D1C */ cpu->r[29] = cpu->r[4];
|
|
/* 028B5D20 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5D20 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B5D20 */ if (_t6) goto L_028B5D24; else goto L_028B5D34;
|
|
L_028B5D24: ; // 0x28b5d24
|
|
/* 028B5D24 */ cpu->r[3] = 0x00000028u;
|
|
/* 028B5D28 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5D2C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5D2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5D30 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5D30 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B5D30 */ if (_t8) goto L_028B5D50; else goto L_028B5D34;
|
|
L_028B5D34: ; // 0x28b5d34
|
|
/* 028B5D34 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B5D38 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B5D3C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5D40 */ Gambit_fn_028AD050(cpu);
|
|
/* 028B5D44 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B5D48 */ _t9 = cpu->r[31] + 0x00000024u;
|
|
/* 028B5D48 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028B5D4C */ _t10 = cpu->r[31] + 0x00000020u;
|
|
/* 028B5D4C */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[12]);
|
|
L_028B5D50: ; // 0x28b5d50
|
|
/* 028B5D50 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5D50 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B5D54 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5D54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B5D58 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5D5C */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5D5C */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B5D60 */ cpu->lr = cpu->r[0];
|
|
/* 028B5D64 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5D64 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B5D68 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B5D6C */ return;
|
|
}
|
|
|
|
// fn_028B5D00 @ 0x28b5d00
|
|
void Gambit_fn_028B5D00(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B5D00: ; // 0x28b5d00
|
|
/* 028B5D00 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B5D00 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5D00 */ cpu->r[1] = _t0;
|
|
/* 028B5D04 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5D04 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B5D08 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5D08 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B5D0C */ cpu->r[30] = cpu->r[5];
|
|
/* 028B5D10 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5D10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5D14 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5D14 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B5D18 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5D18 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B5D1C */ cpu->r[29] = cpu->r[4];
|
|
/* 028B5D20 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5D20 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B5D20 */ if (_t6) goto L_028B5D24; else goto L_028B5D34;
|
|
L_028B5D24: ; // 0x28b5d24
|
|
/* 028B5D24 */ cpu->r[3] = 0x00000028u;
|
|
/* 028B5D28 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5D2C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5D2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5D30 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5D30 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B5D30 */ if (_t8) goto L_028B5D50; else goto L_028B5D34;
|
|
L_028B5D34: ; // 0x28b5d34
|
|
/* 028B5D34 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B5D38 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B5D3C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5D40 */ Gambit_fn_028AD050(cpu);
|
|
/* 028B5D44 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B5D48 */ _t9 = cpu->r[31] + 0x00000024u;
|
|
/* 028B5D48 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028B5D4C */ _t10 = cpu->r[31] + 0x00000020u;
|
|
/* 028B5D4C */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[12]);
|
|
L_028B5D50: ; // 0x28b5d50
|
|
/* 028B5D50 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5D50 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B5D54 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5D54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B5D58 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5D5C */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5D5C */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B5D60 */ cpu->lr = cpu->r[0];
|
|
/* 028B5D64 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5D64 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B5D68 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B5D6C */ return;
|
|
}
|
|
|
|
// fn_028B5D70 @ 0x28b5d70
|
|
void Gambit_fn_028B5D70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B5D70: ; // 0x28b5d70
|
|
/* 028B5D70 */ cpu->r[0] = cpu->lr;
|
|
/* 028B5D74 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B5D74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5D74 */ cpu->r[1] = _t0;
|
|
/* 028B5D78 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5D78 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B5D7C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5D7C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B5D80 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5D80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5D84 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B5D88 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5D88 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B5D8C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5D8C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B5D8C */ if (_t5) goto L_028B5D90; else goto L_028B5DA0;
|
|
L_028B5D90: ; // 0x28b5d90
|
|
/* 028B5D90 */ cpu->r[3] = 0x00000028u;
|
|
/* 028B5D94 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5D98 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5D98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5D9C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5D9C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B5D9C */ if (_t7) goto L_028B5DB8; else goto L_028B5DA0;
|
|
L_028B5DA0: ; // 0x28b5da0
|
|
/* 028B5DA0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5DA4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B5DA8 */ Gambit_fn_028AD0C0(cpu);
|
|
/* 028B5DAC */ cpu->r[0] = 0x00000000u;
|
|
/* 028B5DB0 */ _t8 = cpu->r[31] + 0x00000024u;
|
|
/* 028B5DB0 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028B5DB4 */ _t9 = cpu->r[31] + 0x00000020u;
|
|
/* 028B5DB4 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[0]);
|
|
L_028B5DB8: ; // 0x28b5db8
|
|
/* 028B5DB8 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5DB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B5DBC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5DC0 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5DC0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B5DC4 */ cpu->lr = cpu->r[0];
|
|
/* 028B5DC8 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5DC8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B5DCC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B5DD0 */ return;
|
|
}
|
|
|
|
// fn_028B5D74 @ 0x28b5d74
|
|
void Gambit_fn_028B5D74(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_028B5D74: ; // 0x28b5d74
|
|
/* 028B5D74 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B5D74 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5D74 */ cpu->r[1] = _t0;
|
|
/* 028B5D78 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5D78 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B5D7C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5D7C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B5D80 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5D80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5D84 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B5D88 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5D88 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B5D8C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5D8C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B5D8C */ if (_t5) goto L_028B5D90; else goto L_028B5DA0;
|
|
L_028B5D90: ; // 0x28b5d90
|
|
/* 028B5D90 */ cpu->r[3] = 0x00000028u;
|
|
/* 028B5D94 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5D98 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5D98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5D9C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5D9C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B5D9C */ if (_t7) goto L_028B5DB8; else goto L_028B5DA0;
|
|
L_028B5DA0: ; // 0x28b5da0
|
|
/* 028B5DA0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5DA4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B5DA8 */ Gambit_fn_028AD0C0(cpu);
|
|
/* 028B5DAC */ cpu->r[0] = 0x00000000u;
|
|
/* 028B5DB0 */ _t8 = cpu->r[31] + 0x00000024u;
|
|
/* 028B5DB0 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028B5DB4 */ _t9 = cpu->r[31] + 0x00000020u;
|
|
/* 028B5DB4 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[0]);
|
|
L_028B5DB8: ; // 0x28b5db8
|
|
/* 028B5DB8 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5DB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B5DBC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5DC0 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5DC0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B5DC4 */ cpu->lr = cpu->r[0];
|
|
/* 028B5DC8 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5DC8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B5DCC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B5DD0 */ return;
|
|
}
|
|
|
|
// fn_028B5DD4 @ 0x28b5dd4
|
|
void Gambit_fn_028B5DD4(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_028B5DD4: ; // 0x28b5dd4
|
|
/* 028B5DD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5DD8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5DD8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B5DD8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5DD8 */ goto L_028B5DDC;
|
|
L_028B5DDC: ; // 0x28b5ddc
|
|
/* 028B5DDC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B5DDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B5DE0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5DE0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B5DE0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5DE0 */ goto L_028B5DE4;
|
|
L_028B5DE4: ; // 0x28b5de4
|
|
/* 028B5DE4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B5DE8 @ 0x28b5de8
|
|
void Gambit_fn_028B5DE8(CPUState* cpu) {
|
|
L_028B5DE8: ; // 0x28b5de8
|
|
/* 028B5DE8 */ return;
|
|
}
|
|
|
|
// fn_028B5DEC @ 0x28b5dec
|
|
void Gambit_fn_028B5DEC(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_028B5DEC: ; // 0x28b5dec
|
|
/* 028B5DEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5DF0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5DF0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B5DF0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5DF0 */ goto L_028B5DF4;
|
|
L_028B5DF4: ; // 0x28b5df4
|
|
/* 028B5DF4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B5DF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B5DF8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5DF8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B5DF8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5DF8 */ goto L_028B5DFC;
|
|
L_028B5DFC: ; // 0x28b5dfc
|
|
/* 028B5DFC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B5E04 @ 0x28b5e04
|
|
void Gambit_fn_028B5E04(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_028B5E04: ; // 0x28b5e04
|
|
/* 028B5E04 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B5E04 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5E04 */ cpu->r[1] = _t0;
|
|
/* 028B5E08 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5E08 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B5E0C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5E0C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B5E10 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5E10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5E14 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5E14 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B5E18 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5E18 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B5E18 */ if (_t5) goto L_028B5E1C; else goto L_028B5E2C;
|
|
L_028B5E1C: ; // 0x28b5e1c
|
|
/* 028B5E1C */ cpu->r[3] = 0x00000010u;
|
|
/* 028B5E20 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5E24 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5E24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5E28 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5E28 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B5E28 */ if (_t7) goto L_028B5E6C; else goto L_028B5E2C;
|
|
L_028B5E2C: ; // 0x28b5e2c
|
|
/* 028B5E2C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5E2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5E30 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B5E34 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5E34 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B5E34 */ if (_t9) goto L_028B5E38; else goto L_028B5E48;
|
|
L_028B5E38: ; // 0x28b5e38
|
|
/* 028B5E38 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B5E3C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5E40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5E44 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5E44 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B5E44 */ if (_t11) goto L_028B5E5C; else goto L_028B5E48;
|
|
L_028B5E48: ; // 0x28b5e48
|
|
/* 028B5E48 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B5E4C */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028B5E4C */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
/* 028B5E50 */ cpu->r[0] = cpu->r[0] + 0xFFFF895Cu;
|
|
/* 028B5E54 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5E54 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 028B5E58 */ _t14 = cpu->r[3] + 0x00000008u;
|
|
/* 028B5E58 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
L_028B5E5C: ; // 0x28b5e5c
|
|
/* 028B5E5C */ cpu->r[0] = 0x10140000u;
|
|
/* 028B5E60 */ _t15 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B5E60 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 028B5E64 */ cpu->r[0] = cpu->r[0] + 0xFFFF896Cu;
|
|
/* 028B5E68 */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 028B5E68 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
L_028B5E6C: ; // 0x28b5e6c
|
|
/* 028B5E6C */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5E6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B5E70 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5E74 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5E74 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B5E78 */ cpu->lr = cpu->r[0];
|
|
/* 028B5E7C */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5E7C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B5E80 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B5E84 */ return;
|
|
}
|
|
|
|
// fn_028B5E88 @ 0x28b5e88
|
|
void Gambit_fn_028B5E88(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_028B5E88: ; // 0x28b5e88
|
|
/* 028B5E88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5E8C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5E8C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B5E8C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5E8C */ goto L_028B5E90;
|
|
L_028B5E90: ; // 0x28b5e90
|
|
/* 028B5E90 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B5E90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B5E94 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5E94 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B5E94 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5E94 */ goto L_028B5E98;
|
|
L_028B5E98: ; // 0x28b5e98
|
|
/* 028B5E98 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B5E9C @ 0x28b5e9c
|
|
void Gambit_fn_028B5E9C(CPUState* cpu) {
|
|
L_028B5E9C: ; // 0x28b5e9c
|
|
/* 028B5E9C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B5EA0 */ return;
|
|
}
|
|
|
|
// fn_028B5EA4 @ 0x28b5ea4
|
|
void Gambit_fn_028B5EA4(CPUState* cpu) {
|
|
L_028B5EA4: ; // 0x28b5ea4
|
|
/* 028B5EA4 */ return;
|
|
}
|
|
|
|
// fn_028B5EA8 @ 0x28b5ea8
|
|
void Gambit_fn_028B5EA8(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_028B5EA8: ; // 0x28b5ea8
|
|
/* 028B5EA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5EAC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5EAC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B5EAC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5EAC */ goto L_028B5EB0;
|
|
L_028B5EB0: ; // 0x28b5eb0
|
|
/* 028B5EB0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B5EB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B5EB4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5EB4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B5EB4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5EB4 */ goto L_028B5EB8;
|
|
L_028B5EB8: ; // 0x28b5eb8
|
|
/* 028B5EB8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B5EBC @ 0x28b5ebc
|
|
void Gambit_fn_028B5EBC(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_028B5EBC: ; // 0x28b5ebc
|
|
/* 028B5EBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5EC0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5EC0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B5EC0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5EC0 */ goto L_028B5EC4;
|
|
L_028B5EC4: ; // 0x28b5ec4
|
|
/* 028B5EC4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B5EC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B5EC8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5EC8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B5EC8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B5EC8 */ goto L_028B5ECC;
|
|
L_028B5ECC: ; // 0x28b5ecc
|
|
/* 028B5ECC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B5ED0 @ 0x28b5ed0
|
|
void Gambit_fn_028B5ED0(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_028B5ED0: ; // 0x28b5ed0
|
|
/* 028B5ED0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B5ED4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B5ED4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5ED4 */ cpu->r[1] = _t0;
|
|
/* 028B5ED8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5ED8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B5EDC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5EDC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B5EE0 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5EE0 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B5EE4 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B5EE8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B5EEC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5EEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5EF0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5EF0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B5EF4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5EF4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B5EF8 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B5EFC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5EFC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B5EFC */ if (_t7) goto L_028B5F00; else goto L_028B5F10;
|
|
L_028B5F00: ; // 0x28b5f00
|
|
/* 028B5F00 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 028B5F04 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5F08 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5F08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5F0C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5F0C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B5F0C */ if (_t9) goto L_028B5FE8; else goto L_028B5F10;
|
|
L_028B5F10: ; // 0x28b5f10
|
|
/* 028B5F10 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B5F14 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B5F18 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5F1C */ Gambit_fn_028AD314(cpu);
|
|
/* 028B5F20 */ cpu->r[8] = 0x10140000u;
|
|
/* 028B5F24 */ cpu->r[3] = cpu->r[31] + 0x00000064u;
|
|
/* 028B5F24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5F28 */ cpu->r[8] = cpu->r[8] + 0xFFFF8B54u;
|
|
/* 028B5F2C */ cpu->r[28] = 0x00000000u;
|
|
/* 028B5F30 */ _t10 = cpu->r[31] + 0x00000060u;
|
|
/* 028B5F30 */ rbrew_write32(cpu->mem, _t10, cpu->r[8]);
|
|
/* 028B5F34 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5F34 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B5F34 */ if (_t12) goto L_028B5F38; else goto L_028B5F48;
|
|
L_028B5F38: ; // 0x28b5f38
|
|
/* 028B5F38 */ cpu->r[3] = 0x00000024u;
|
|
/* 028B5F3C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5F40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5F44 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5F44 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B5F44 */ if (_t14) goto L_028B5F80; else goto L_028B5F48;
|
|
L_028B5F48: ; // 0x28b5f48
|
|
/* 028B5F48 */ _t15 = cpu->r[3] + 0x00000004u;
|
|
/* 028B5F48 */ rbrew_write32(cpu->mem, _t15, cpu->r[28]);
|
|
/* 028B5F4C */ cpu->r[9] = 0x10140000u;
|
|
/* 028B5F50 */ _t16 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B5F50 */ rbrew_write32(cpu->mem, _t16, cpu->r[28]);
|
|
/* 028B5F54 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028B5F58 */ _t17 = cpu->r[9] + 0xFFFF8AC0u;
|
|
/* 028B5F58 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B5F5C */ _t18 = cpu->r[3] + 0x00000008u;
|
|
/* 028B5F5C */ rbrew_write32(cpu->mem, _t18, cpu->r[28]);
|
|
/* 028B5F60 */ _t19 = cpu->r[3] + 0x00000010u;
|
|
/* 028B5F60 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 028B5F64 */ cpu->r[7] = 0x10140000u;
|
|
/* 028B5F68 */ _t20 = cpu->r[3] + 0x00000020u;
|
|
/* 028B5F68 */ rbrew_write32(cpu->mem, _t20, cpu->r[28]);
|
|
/* 028B5F6C */ _t21 = cpu->r[7] + 0xFFFF8AC4u;
|
|
/* 028B5F6C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028B5F70 */ _t22 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B5F70 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028B5F74 */ _t23 = cpu->r[3] + 0x00000018u;
|
|
/* 028B5F74 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[0]);
|
|
/* 028B5F78 */ _t24 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5F78 */ rbrew_write32(cpu->mem, _t24, cpu->r[28]);
|
|
/* 028B5F7C */ _t25 = cpu->r[3] + 0x00000014u;
|
|
/* 028B5F7C */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[28]);
|
|
L_028B5F80: ; // 0x28b5f80
|
|
/* 028B5F80 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B5F84 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B5F88 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B5F8C */ _t26 = cpu->r[31] + 0x00000088u;
|
|
/* 028B5F8C */ rbrew_write32(cpu->mem, _t26, cpu->r[28]);
|
|
/* 028B5F90 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B5F94 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B5F94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B5F98 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5F98 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B5F98 */ if (_t28) goto L_028B5FD8; else goto L_028B5F9C;
|
|
L_028B5F9C: ; // 0x28b5f9c
|
|
/* 028B5F9C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B5F9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5FA0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5FA0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028B5FA0 */ if (_t30) goto L_028B5FA4; else goto L_028B5FB4;
|
|
L_028B5FA4: ; // 0x28b5fa4
|
|
/* 028B5FA4 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B5FA8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5FAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5FB0 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5FB0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028B5FB0 */ if (_t32) goto L_028B5FCC; else goto L_028B5FB4;
|
|
L_028B5FB4: ; // 0x28b5fb4
|
|
/* 028B5FB4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B5FB8 */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5FB8 */ rbrew_write32(cpu->mem, _t33, cpu->r[28]);
|
|
/* 028B5FBC */ cpu->r[12] = cpu->r[12] + 0xFFFF8A50u;
|
|
/* 028B5FC0 */ _t34 = cpu->r[3] + 0x00000008u;
|
|
/* 028B5FC0 */ rbrew_write32(cpu->mem, _t34, cpu->r[28]);
|
|
/* 028B5FC4 */ _t35 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B5FC4 */ rbrew_write32(cpu->mem, _t35, cpu->r[12]);
|
|
/* 028B5FC8 */ _t36 = cpu->r[3] + 0x00000004u;
|
|
/* 028B5FC8 */ rbrew_write32(cpu->mem, _t36, cpu->r[28]);
|
|
L_028B5FCC: ; // 0x28b5fcc
|
|
/* 028B5FCC */ cpu->r[0] = 0x10140000u;
|
|
/* 028B5FD0 */ cpu->r[0] = cpu->r[0] + 0xFFFF8740u;
|
|
/* 028B5FD4 */ _t37 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B5FD4 */ rbrew_write32(cpu->mem, _t37, cpu->r[0]);
|
|
L_028B5FD8: ; // 0x28b5fd8
|
|
/* 028B5FD8 */ _t38 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B5FD8 */ rbrew_write32(cpu->mem, _t38, cpu->r[30]);
|
|
/* 028B5FDC */ _t39 = cpu->r[30] + 0x00000008u;
|
|
/* 028B5FDC */ rbrew_write32(cpu->mem, _t39, cpu->r[29]);
|
|
/* 028B5FE0 */ _t40 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B5FE0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028B5FE4 */ _t41 = cpu->r[11] + 0x00000004u;
|
|
/* 028B5FE4 */ rbrew_write32(cpu->mem, _t41, cpu->r[31]);
|
|
L_028B5FE8: ; // 0x28b5fe8
|
|
/* 028B5FE8 */ _t42 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5FE8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028B5FEC */ _t43 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5FEC */ cpu->r[29] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028B5FF0 */ _t44 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5FF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028B5FF4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5FF8 */ _t45 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5FF8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028B5FFC */ cpu->lr = cpu->r[0];
|
|
/* 028B6000 */ _t46 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6000 */ cpu->r[31] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028B6004 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6008 */ return;
|
|
}
|
|
|
|
// fn_028B5ED4 @ 0x28b5ed4
|
|
void Gambit_fn_028B5ED4(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_028B5ED4: ; // 0x28b5ed4
|
|
/* 028B5ED4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B5ED4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B5ED4 */ cpu->r[1] = _t0;
|
|
/* 028B5ED8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5ED8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B5EDC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B5EDC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B5EE0 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5EE0 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B5EE4 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B5EE8 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B5EEC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5EEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5EF0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5EF0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B5EF4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5EF4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B5EF8 */ cpu->r[29] = cpu->r[5];
|
|
/* 028B5EFC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5EFC */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B5EFC */ if (_t7) goto L_028B5F00; else goto L_028B5F10;
|
|
L_028B5F00: ; // 0x28b5f00
|
|
/* 028B5F00 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 028B5F04 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5F08 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B5F08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B5F0C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5F0C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B5F0C */ if (_t9) goto L_028B5FE8; else goto L_028B5F10;
|
|
L_028B5F10: ; // 0x28b5f10
|
|
/* 028B5F10 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B5F14 */ cpu->r[4] = cpu->r[28];
|
|
/* 028B5F18 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5F1C */ Gambit_fn_028AD314(cpu);
|
|
/* 028B5F20 */ cpu->r[8] = 0x10140000u;
|
|
/* 028B5F24 */ cpu->r[3] = cpu->r[31] + 0x00000064u;
|
|
/* 028B5F24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5F28 */ cpu->r[8] = cpu->r[8] + 0xFFFF8B54u;
|
|
/* 028B5F2C */ cpu->r[28] = 0x00000000u;
|
|
/* 028B5F30 */ _t10 = cpu->r[31] + 0x00000060u;
|
|
/* 028B5F30 */ rbrew_write32(cpu->mem, _t10, cpu->r[8]);
|
|
/* 028B5F34 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5F34 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B5F34 */ if (_t12) goto L_028B5F38; else goto L_028B5F48;
|
|
L_028B5F38: ; // 0x28b5f38
|
|
/* 028B5F38 */ cpu->r[3] = 0x00000024u;
|
|
/* 028B5F3C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5F40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5F44 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5F44 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B5F44 */ if (_t14) goto L_028B5F80; else goto L_028B5F48;
|
|
L_028B5F48: ; // 0x28b5f48
|
|
/* 028B5F48 */ _t15 = cpu->r[3] + 0x00000004u;
|
|
/* 028B5F48 */ rbrew_write32(cpu->mem, _t15, cpu->r[28]);
|
|
/* 028B5F4C */ cpu->r[9] = 0x10140000u;
|
|
/* 028B5F50 */ _t16 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B5F50 */ rbrew_write32(cpu->mem, _t16, cpu->r[28]);
|
|
/* 028B5F54 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028B5F58 */ _t17 = cpu->r[9] + 0xFFFF8AC0u;
|
|
/* 028B5F58 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 028B5F5C */ _t18 = cpu->r[3] + 0x00000008u;
|
|
/* 028B5F5C */ rbrew_write32(cpu->mem, _t18, cpu->r[28]);
|
|
/* 028B5F60 */ _t19 = cpu->r[3] + 0x00000010u;
|
|
/* 028B5F60 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 028B5F64 */ cpu->r[7] = 0x10140000u;
|
|
/* 028B5F68 */ _t20 = cpu->r[3] + 0x00000020u;
|
|
/* 028B5F68 */ rbrew_write32(cpu->mem, _t20, cpu->r[28]);
|
|
/* 028B5F6C */ _t21 = cpu->r[7] + 0xFFFF8AC4u;
|
|
/* 028B5F6C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 028B5F70 */ _t22 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B5F70 */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028B5F74 */ _t23 = cpu->r[3] + 0x00000018u;
|
|
/* 028B5F74 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[0]);
|
|
/* 028B5F78 */ _t24 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5F78 */ rbrew_write32(cpu->mem, _t24, cpu->r[28]);
|
|
/* 028B5F7C */ _t25 = cpu->r[3] + 0x00000014u;
|
|
/* 028B5F7C */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[28]);
|
|
L_028B5F80: ; // 0x28b5f80
|
|
/* 028B5F80 */ cpu->r[5] = 0x00000004u;
|
|
/* 028B5F84 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B5F88 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B5F8C */ _t26 = cpu->r[31] + 0x00000088u;
|
|
/* 028B5F8C */ rbrew_write32(cpu->mem, _t26, cpu->r[28]);
|
|
/* 028B5F90 */ Gambit_fn_02801AC8(cpu);
|
|
/* 028B5F94 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B5F94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B5F98 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5F98 */ _t28 = _t27 & 0x00000001u;
|
|
/* 028B5F98 */ if (_t28) goto L_028B5FD8; else goto L_028B5F9C;
|
|
L_028B5F9C: ; // 0x28b5f9c
|
|
/* 028B5F9C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B5F9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5FA0 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5FA0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 028B5FA0 */ if (_t30) goto L_028B5FA4; else goto L_028B5FB4;
|
|
L_028B5FA4: ; // 0x28b5fa4
|
|
/* 028B5FA4 */ cpu->r[3] = 0x00000010u;
|
|
/* 028B5FA8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B5FAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B5FB0 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B5FB0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028B5FB0 */ if (_t32) goto L_028B5FCC; else goto L_028B5FB4;
|
|
L_028B5FB4: ; // 0x28b5fb4
|
|
/* 028B5FB4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B5FB8 */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 028B5FB8 */ rbrew_write32(cpu->mem, _t33, cpu->r[28]);
|
|
/* 028B5FBC */ cpu->r[12] = cpu->r[12] + 0xFFFF8A50u;
|
|
/* 028B5FC0 */ _t34 = cpu->r[3] + 0x00000008u;
|
|
/* 028B5FC0 */ rbrew_write32(cpu->mem, _t34, cpu->r[28]);
|
|
/* 028B5FC4 */ _t35 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B5FC4 */ rbrew_write32(cpu->mem, _t35, cpu->r[12]);
|
|
/* 028B5FC8 */ _t36 = cpu->r[3] + 0x00000004u;
|
|
/* 028B5FC8 */ rbrew_write32(cpu->mem, _t36, cpu->r[28]);
|
|
L_028B5FCC: ; // 0x28b5fcc
|
|
/* 028B5FCC */ cpu->r[0] = 0x10140000u;
|
|
/* 028B5FD0 */ cpu->r[0] = cpu->r[0] + 0xFFFF8740u;
|
|
/* 028B5FD4 */ _t37 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B5FD4 */ rbrew_write32(cpu->mem, _t37, cpu->r[0]);
|
|
L_028B5FD8: ; // 0x28b5fd8
|
|
/* 028B5FD8 */ _t38 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B5FD8 */ rbrew_write32(cpu->mem, _t38, cpu->r[30]);
|
|
/* 028B5FDC */ _t39 = cpu->r[30] + 0x00000008u;
|
|
/* 028B5FDC */ rbrew_write32(cpu->mem, _t39, cpu->r[29]);
|
|
/* 028B5FE0 */ _t40 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B5FE0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028B5FE4 */ _t41 = cpu->r[11] + 0x00000004u;
|
|
/* 028B5FE4 */ rbrew_write32(cpu->mem, _t41, cpu->r[31]);
|
|
L_028B5FE8: ; // 0x28b5fe8
|
|
/* 028B5FE8 */ _t42 = cpu->r[1] + 0x00000008u;
|
|
/* 028B5FE8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028B5FEC */ _t43 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B5FEC */ cpu->r[29] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028B5FF0 */ _t44 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B5FF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028B5FF4 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B5FF8 */ _t45 = cpu->r[1] + 0x00000010u;
|
|
/* 028B5FF8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028B5FFC */ cpu->lr = cpu->r[0];
|
|
/* 028B6000 */ _t46 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6000 */ cpu->r[31] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028B6004 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6008 */ return;
|
|
}
|
|
|
|
// fn_028B600C @ 0x28b600c
|
|
void Gambit_fn_028B600C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028B600C: ; // 0x28b600c
|
|
/* 028B600C */ cpu->r[0] = cpu->lr;
|
|
/* 028B6010 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B6010 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6010 */ cpu->r[1] = _t0;
|
|
/* 028B6014 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6014 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B6018 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6018 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B601C */ cpu->r[30] = cpu->r[3];
|
|
/* 028B601C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B6020 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B6024 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6024 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B6028 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6028 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B6028 */ if (_t5) goto L_028B6060; else goto L_028B602C;
|
|
L_028B602C: ; // 0x28b602c
|
|
/* 028B602C */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B602C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6030 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B6034 */ cpu->r[11] = cpu->r[11] + 0xFFFF8B54u;
|
|
/* 028B6038 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B603C */ _t7 = cpu->r[30] + 0x00000060u;
|
|
/* 028B603C */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028B6040 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6040 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B6040 */ if (_t9) goto L_028B6050; else goto L_028B6044;
|
|
L_028B6044: ; // 0x28b6044
|
|
/* 028B6044 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028B6048 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B604C */ _t10 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B604C */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
L_028B6050: ; // 0x28b6050
|
|
/* 028B6050 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6050 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6054 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6054 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B6054 */ if (_t12) goto L_028B6060; else goto L_028B6058;
|
|
L_028B6058: ; // 0x28b6058
|
|
/* 028B6058 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B605C */ Gambit_fn_02801BB0(cpu);
|
|
L_028B6060: ; // 0x28b6060
|
|
/* 028B6060 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6060 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B6064 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6064 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B6068 */ cpu->lr = cpu->r[0];
|
|
/* 028B606C */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B606C */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B6070 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B6074 */ return;
|
|
}
|
|
|
|
// fn_028B6010 @ 0x28b6010
|
|
void Gambit_fn_028B6010(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028B6010: ; // 0x28b6010
|
|
/* 028B6010 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B6010 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6010 */ cpu->r[1] = _t0;
|
|
/* 028B6014 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6014 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B6018 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6018 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B601C */ cpu->r[30] = cpu->r[3];
|
|
/* 028B601C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B6020 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B6024 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6024 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B6028 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6028 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B6028 */ if (_t5) goto L_028B6060; else goto L_028B602C;
|
|
L_028B602C: ; // 0x28b602c
|
|
/* 028B602C */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B602C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6030 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B6034 */ cpu->r[11] = cpu->r[11] + 0xFFFF8B54u;
|
|
/* 028B6038 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B603C */ _t7 = cpu->r[30] + 0x00000060u;
|
|
/* 028B603C */ rbrew_write32(cpu->mem, _t7, cpu->r[11]);
|
|
/* 028B6040 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6040 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B6040 */ if (_t9) goto L_028B6050; else goto L_028B6044;
|
|
L_028B6044: ; // 0x28b6044
|
|
/* 028B6044 */ Gambit_fn_02801BB0(cpu);
|
|
/* 028B6048 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B604C */ _t10 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B604C */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
L_028B6050: ; // 0x28b6050
|
|
/* 028B6050 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6050 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6054 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6054 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B6054 */ if (_t12) goto L_028B6060; else goto L_028B6058;
|
|
L_028B6058: ; // 0x28b6058
|
|
/* 028B6058 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B605C */ Gambit_fn_02801BB0(cpu);
|
|
L_028B6060: ; // 0x28b6060
|
|
/* 028B6060 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6060 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B6064 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6064 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B6068 */ cpu->lr = cpu->r[0];
|
|
/* 028B606C */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B606C */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B6070 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B6074 */ return;
|
|
}
|
|
|
|
// fn_028B6078 @ 0x28b6078
|
|
void Gambit_fn_028B6078(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B6078: ; // 0x28b6078
|
|
/* 028B6078 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B6078 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B607C */ return;
|
|
}
|
|
|
|
// fn_028B6080 @ 0x28b6080
|
|
void Gambit_fn_028B6080(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B6080: ; // 0x28b6080
|
|
/* 028B6080 */ _t0 = cpu->r[3] + 0x00000088u;
|
|
/* 028B6080 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B6084 */ cpu->r[0] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028B6088 */ cpu->r[3] = cpu->r[12] - cpu->r[0];
|
|
/* 028B608C */ return;
|
|
}
|
|
|
|
// fn_028B6090 @ 0x28b6090
|
|
void Gambit_fn_028B6090(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_028B6090: ; // 0x28b6090
|
|
/* 028B6090 */ _t0 = cpu->r[1] + 0xFFFFFDE8u;
|
|
/* 028B6090 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6090 */ cpu->r[1] = _t0;
|
|
/* 028B6094 */ /* nop */
|
|
/* 028B6098 */ cpu->r[0] = cpu->lr;
|
|
/* 028B609C */ _t1 = cpu->r[1] + 0x0000021Cu;
|
|
/* 028B609C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B60A0 */ cpu->r[26] = cpu->r[3];
|
|
/* 028B60A4 */ _t2 = cpu->r[26] + 0x00000008u;
|
|
/* 028B60A4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B60A8 */ _t3 = cpu->r[4] + 0x00000004u;
|
|
/* 028B60A8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B60AC */ cpu->r[24] = 0x00000000u;
|
|
/* 028B60B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[5]);
|
|
/* 028B60B4 */ _t4 = cpu->r[26] + 0x0000000Cu;
|
|
/* 028B60B4 */ cpu->r[23] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B60B8 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B60B8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B60B8 */ if (_t6) goto L_028B60BC; else goto L_028B62DC;
|
|
L_028B60BC: ; // 0x28b60bc
|
|
/* 028B60BC */ cpu->r[31] = 0x10110000u;
|
|
/* 028B60C0 */ cpu->r[30] = cpu->r[1] + 0x00000028u;
|
|
/* 028B60C4 */ cpu->r[27] = 0x00000000u;
|
|
/* 028B60C8 */ _t7 = cpu->r[31] + 0x00007399u;
|
|
/* 028B60C8 */ cpu->r[31] = rbrew_read8(cpu->mem, _t7);
|
|
/* 028B60CC */ cpu->r[21] = 0x101D0000u;
|
|
/* 028B60D0 */ cpu->r[22] = 0x00000080u;
|
|
L_028B60D4: ; // 0x28b60d4
|
|
/* 028B60D4 */ _t8 = cpu->r[26] + 0x00000018u;
|
|
/* 028B60D4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B60D8 */ cpu->r[25] = cpu->r[6] + cpu->r[27];
|
|
/* 028B60DC */ _t9 = cpu->r[25] + 0x00000014u;
|
|
/* 028B60DC */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B60E0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[8], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B60E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B60E4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B60E4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B60E4 */ if (_t11) goto L_028B60E8; else goto L_028B62C4;
|
|
L_028B60E8: ; // 0x28b60e8
|
|
/* 028B60E8 */ cpu->r[3] = cpu->r[23];
|
|
/* 028B60EC */ cpu->r[4] = cpu->r[25];
|
|
/* 028B60F0 */ Gambit_fn_028B31C0(cpu);
|
|
/* 028B60F4 */ _t12 = cpu->r[30] + 0x0000007Fu;
|
|
/* 028B60F4 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[31]);
|
|
/* 028B60F8 */ cpu->r[10] = cpu->r[30];
|
|
/* 028B60FC */ _t13 = cpu->r[30] + 0x00000000u;
|
|
/* 028B60FC */ rbrew_write8(cpu->mem, _t13, (uint8_t)cpu->r[31]);
|
|
/* 028B6100 */ cpu->r[9] = 0x10140000u;
|
|
/* 028B6104 */ cpu->r[11] = cpu->r[3];
|
|
/* 028B6104 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028B6108 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6108 */ rbrew_write32(cpu->mem, _t14, cpu->r[10]);
|
|
/* 028B610C */ cpu->r[9] = cpu->r[9] + 0xFFFF8AA8u;
|
|
/* 028B6110 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B6114 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 028B6114 */ rbrew_write32(cpu->mem, _t15, cpu->r[22]);
|
|
/* 028B6118 */ cpu->r[12] = cpu->r[12] + 0xFFFF8A20u;
|
|
/* 028B611C */ _t16 = cpu->r[1] + 0x00000020u;
|
|
/* 028B611C */ rbrew_write32(cpu->mem, _t16, cpu->r[9]);
|
|
/* 028B6120 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6120 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B6120 */ if (_t18) goto L_028B6228; else goto L_028B6124;
|
|
L_028B6124: ; // 0x28b6124
|
|
/* 028B6124 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6124 */ rbrew_write32(cpu->mem, _t19, cpu->r[12]);
|
|
/* 028B6128 */ cpu->r[3] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B612C */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 028B612C */ rbrew_write32(cpu->mem, _t20, cpu->r[11]);
|
|
/* 028B6130 */ Gambit_fn_028B67AC(cpu);
|
|
/* 028B6134 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6134 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B6138 */ _t22 = cpu->r[12] + 0x00000000u;
|
|
/* 028B6138 */ cpu->r[0] = rbrew_read8(cpu->mem, _t22);
|
|
/* 028B613C */ cpu->r[29] = 0x00000000u;
|
|
/* 028B6140 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 028B6144 */ cpu->r[0] = 0x00080000u;
|
|
/* 028B6148 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6148 */ _t24 = _t23 & 0x00000001u;
|
|
/* 028B6148 */ if (_t24) goto L_028B6170; else goto L_028B614C;
|
|
L_028B614C: ; // 0x28b614c
|
|
/* 028B614C */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028B6150 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B6154 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 028B6158 */ _t25 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6158 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028B6158 */ if (_t26) goto L_028B616C; else goto L_028B615C;
|
|
L_028B615C: ; // 0x28b615c
|
|
/* 028B615C */ _t27 = cpu->r[12] + 0x00000000u;
|
|
/* 028B615C */ cpu->r[11] = rbrew_read8(cpu->mem, _t27);
|
|
/* 028B6160 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[31]);
|
|
/* 028B6164 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6164 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028B6164 */ if (_t29) goto L_028B6168; else goto L_028B614C;
|
|
L_028B6168: ; // 0x28b6168
|
|
/* 028B6168 */ goto L_028B6170;
|
|
L_028B616C: ; // 0x28b616c
|
|
/* 028B616C */ cpu->r[29] = 0x00000000u;
|
|
L_028B6170: ; // 0x28b6170
|
|
/* 028B6170 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6170 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B6174 */ cpu->r[20] = cpu->r[29];
|
|
/* 028B6174 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 028B6178 */ _t31 = cpu->r[12] + 0x00000014u;
|
|
/* 028B6178 */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B617C */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B617C */ _t33 = _t32 & 0x00000001u;
|
|
/* 028B617C */ if (_t33) goto L_028B6180; else goto L_028B6184;
|
|
L_028B6180: ; // 0x28b6180
|
|
/* 028B6180 */ cpu->r[20] = 0x00000000u;
|
|
L_028B6184: ; // 0x28b6184
|
|
/* 028B6184 */ cpu->ctr = cpu->r[0];
|
|
/* 028B6188 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028B618C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B6190 */ _t34 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6190 */ cpu->r[10] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B6194 */ _t35 = cpu->r[10] + 0x00000000u;
|
|
/* 028B6194 */ cpu->r[4] = rbrew_read8(cpu->mem, _t35);
|
|
/* 028B6198 */ cpu->r[28] = 0x00000000u;
|
|
/* 028B619C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[31]);
|
|
/* 028B61A0 */ cpu->r[0] = 0x00080000u;
|
|
/* 028B61A4 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B61A4 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028B61A4 */ if (_t37) goto L_028B61CC; else goto L_028B61A8;
|
|
L_028B61A8: ; // 0x28b61a8
|
|
/* 028B61A8 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 028B61AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 028B61B0 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 028B61B4 */ _t38 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B61B4 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028B61B4 */ if (_t39) goto L_028B61C8; else goto L_028B61B8;
|
|
L_028B61B8: ; // 0x28b61b8
|
|
/* 028B61B8 */ _t40 = cpu->r[10] + 0x00000000u;
|
|
/* 028B61B8 */ cpu->r[5] = rbrew_read8(cpu->mem, _t40);
|
|
/* 028B61BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[31]);
|
|
/* 028B61C0 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B61C0 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028B61C0 */ if (_t42) goto L_028B61C4; else goto L_028B61A8;
|
|
L_028B61C4: ; // 0x28b61c4
|
|
/* 028B61C4 */ goto L_028B61CC;
|
|
L_028B61C8: ; // 0x28b61c8
|
|
/* 028B61C8 */ cpu->r[28] = 0x00000000u;
|
|
L_028B61CC: ; // 0x28b61cc
|
|
/* 028B61CC */ _t43 = cpu->r[1] + 0x00000024u;
|
|
/* 028B61CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028B61D0 */ cpu->r[9] = cpu->r[0] - cpu->r[20];
|
|
/* 028B61D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[9]);
|
|
/* 028B61D8 */ _t44 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B61D8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028B61D8 */ if (_t45) goto L_028B61E0; else goto L_028B61DC;
|
|
L_028B61DC: ; // 0x28b61dc
|
|
/* 028B61DC */ cpu->r[28] = cpu->r[9] + 0xFFFFFFFFu;
|
|
L_028B61E0: ; // 0x28b61e0
|
|
/* 028B61E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B61E4 */ _t46 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B61E4 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028B61E4 */ if (_t47) goto L_028B61E8; else goto L_028B6224;
|
|
L_028B61E8: ; // 0x28b61e8
|
|
/* 028B61E8 */ _t48 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B61E8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028B61EC */ _t49 = cpu->r[7] + 0x00000014u;
|
|
/* 028B61EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B61F0 */ cpu->ctr = cpu->r[8];
|
|
/* 028B61F4 */ cpu->r[19] = cpu->r[30] + cpu->r[20];
|
|
/* 028B61F8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 028B61FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B6200 */ _t50 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6200 */ cpu->r[4] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028B6204 */ cpu->r[6] = 0x00000000u;
|
|
/* 028B6208 */ cpu->r[5] = cpu->r[28];
|
|
/* 028B620C */ cpu->r[3] = cpu->r[19];
|
|
/* 028B6210 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 028B6214 */ cpu->r[0] = cpu->r[20] + cpu->r[28];
|
|
/* 028B6218 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[29]);
|
|
/* 028B621C */ _t51 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B621C */ _t52 = _t51 & 0x00000001u;
|
|
/* 028B621C */ if (_t52) goto L_028B6220; else goto L_028B6224;
|
|
L_028B6220: ; // 0x28b6220
|
|
/* 028B6220 */ _t53 = cpu->r[30] + cpu->r[0];
|
|
/* 028B6220 */ rbrew_write8(cpu->mem, _t53, (uint8_t)cpu->r[31]);
|
|
L_028B6224: ; // 0x28b6224
|
|
/* 028B6224 */ _t54 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6224 */ cpu->r[10] = rbrew_read32(cpu->mem, _t54);
|
|
L_028B6228: ; // 0x28b6228
|
|
/* 028B6228 */ _t55 = cpu->r[10] + 0x00000000u;
|
|
/* 028B6228 */ cpu->r[9] = rbrew_read8(cpu->mem, _t55);
|
|
/* 028B622C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[31]);
|
|
/* 028B6230 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6230 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028B6230 */ if (_t57) goto L_028B62C4; else goto L_028B6234;
|
|
L_028B6234: ; // 0x28b6234
|
|
/* 028B6234 */ cpu->r[3] = cpu->r[1] + 0x000000A8u;
|
|
/* 028B6238 */ Gambit_fn_028E5F50(cpu);
|
|
/* 028B623C */ _t58 = cpu->r[26] + 0x00000088u;
|
|
/* 028B623C */ cpu->r[4] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028B6240 */ cpu->r[3] = cpu->r[1] + 0x000000A8u;
|
|
/* 028B6244 */ cpu->r[5] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6248 */ Gambit_fn_028BB50C(cpu);
|
|
/* 028B624C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6250 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6250 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028B6250 */ if (_t60) goto L_028B6290; else goto L_028B6254;
|
|
L_028B6254: ; // 0x28b6254
|
|
/* 028B6254 */ cpu->r[3] = cpu->r[1] + 0x000000A8u;
|
|
/* 028B6258 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 028B625C */ Gambit_fn_028E6224(cpu);
|
|
/* 028B6260 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6264 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6264 */ _t62 = _t61 & 0x00000001u;
|
|
/* 028B6264 */ if (_t62) goto L_028B62C4; else goto L_028B6268;
|
|
L_028B6268: ; // 0x28b6268
|
|
/* 028B6268 */ _t63 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6268 */ cpu->r[0] = rbrew_read8(cpu->mem, _t63);
|
|
/* 028B626C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6270 */ _t64 = cpu->r[25] + 0x00000014u;
|
|
/* 028B6270 */ cpu->r[4] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028B6274 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6274 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028B6274 */ if (_t66) goto L_028B6284; else goto L_028B6278;
|
|
L_028B6278: ; // 0x28b6278
|
|
/* 028B6278 */ cpu->r[4] = cpu->r[4] | 0x00000008u;
|
|
/* 028B627C */ _t67 = cpu->r[25] + 0x00000014u;
|
|
/* 028B627C */ rbrew_write32(cpu->mem, _t67, cpu->r[4]);
|
|
/* 028B6280 */ goto L_028B62C4;
|
|
L_028B6284: ; // 0x28b6284
|
|
/* 028B6284 */ cpu->r[5] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 028B6288 */ _t68 = cpu->r[25] + 0x00000014u;
|
|
/* 028B6288 */ rbrew_write32(cpu->mem, _t68, cpu->r[5]);
|
|
/* 028B628C */ goto L_028B62C4;
|
|
L_028B6290: ; // 0x28b6290
|
|
/* 028B6290 */ _t69 = cpu->r[1] + 0x00000020u;
|
|
/* 028B6290 */ cpu->r[6] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028B6294 */ _t70 = cpu->r[6] + 0x00000014u;
|
|
/* 028B6294 */ cpu->r[7] = rbrew_read32(cpu->mem, _t70);
|
|
/* 028B6298 */ cpu->ctr = cpu->r[7];
|
|
/* 028B629C */ cpu->r[3] = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B62A0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B62A4 */ _t71 = cpu->r[21] + 0xFFFF9A68u;
|
|
/* 028B62A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t71);
|
|
/* 028B62A8 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B62AC */ _t72 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B62AC */ cpu->r[7] = rbrew_read32(cpu->mem, _t72);
|
|
/* 028B62B0 */ cpu->r[6] = cpu->r[6] + 0xFFFF8AC8u;
|
|
/* 028B62B4 */ _t73 = cpu->r[26] + 0x00000000u;
|
|
/* 028B62B4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t73);
|
|
/* 028B62B8 */ cpu->r[4] = 0x0000000Au;
|
|
/* 028B62BC */ _t74 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B62BC */ _t75 = _t74 & 0x00000001u;
|
|
/* 028B62BC */ if (_t75) goto L_028B62C0; // else: addr-0 trap, fall-through
|
|
L_028B62C0: ; // 0x28b62c0
|
|
/* 028B62C0 */ Gambit_fn_028AA73C(cpu);
|
|
L_028B62C4: ; // 0x28b62c4
|
|
/* 028B62C4 */ _t76 = cpu->r[26] + 0x00000008u;
|
|
/* 028B62C4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028B62C8 */ _t77 = cpu->r[8] + 0x00000004u;
|
|
/* 028B62C8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028B62CC */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 028B62D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[9]);
|
|
/* 028B62D4 */ cpu->r[27] = cpu->r[27] + 0x00000020u;
|
|
/* 028B62D8 */ _t78 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B62D8 */ _t79 = _t78 & 0x00000001u;
|
|
/* 028B62D8 */ if (_t79) goto L_028B60D4; else goto L_028B62DC;
|
|
L_028B62DC: ; // 0x28b62dc
|
|
/* 028B62DC */ /* nop */
|
|
/* 028B62E0 */ _t80 = cpu->r[1] + 0x0000021Cu;
|
|
/* 028B62E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t80);
|
|
/* 028B62E4 */ cpu->lr = cpu->r[0];
|
|
/* 028B62E8 */ cpu->r[1] = cpu->r[1] + 0x00000218u;
|
|
/* 028B62EC */ return;
|
|
}
|
|
|
|
// fn_028B62F4 @ 0x28b62f4
|
|
void Gambit_fn_028B62F4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_028B62F4: ; // 0x28b62f4
|
|
/* 028B62F4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B62F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B62F4 */ cpu->r[1] = _t0;
|
|
/* 028B62F8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B62F8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B62FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6300 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6300 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B6304 */ _t3 = cpu->r[31] + 0x00000088u;
|
|
/* 028B6304 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B6308 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[4]);
|
|
/* 028B630C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B630C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B630C */ if (_t5) goto L_028B6340; else goto L_028B6310;
|
|
L_028B6310: ; // 0x28b6310
|
|
/* 028B6310 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6314 */ _t6 = cpu->r[31] + 0x00000088u;
|
|
/* 028B6314 */ rbrew_write32(cpu->mem, _t6, cpu->r[4]);
|
|
/* 028B6318 */ Gambit_fn_028B6080(cpu);
|
|
/* 028B631C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6320 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6320 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B6320 */ if (_t8) goto L_028B6340; else goto L_028B6324;
|
|
L_028B6324: ; // 0x28b6324
|
|
/* 028B6324 */ _t9 = cpu->r[31] + 0x0000005Cu;
|
|
/* 028B6324 */ cpu->r[0] = rbrew_read8(cpu->mem, _t9);
|
|
/* 028B6328 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B632C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B632C */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B632C */ if (_t11) goto L_028B6340; else goto L_028B6330;
|
|
L_028B6330: ; // 0x28b6330
|
|
/* 028B6330 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6334 */ Gambit_fn_028B6090(cpu);
|
|
/* 028B6338 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B633C */ Gambit_fn_028AE510(cpu);
|
|
L_028B6340: ; // 0x28b6340
|
|
/* 028B6340 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6340 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B6344 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6344 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B6348 */ cpu->lr = cpu->r[0];
|
|
/* 028B634C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B6350 */ return;
|
|
}
|
|
|
|
// fn_028B6354 @ 0x28b6354
|
|
void Gambit_fn_028B6354(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;
|
|
|
|
L_028B6354: ; // 0x28b6354
|
|
/* 028B6354 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028B6354 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6354 */ cpu->r[1] = _t0;
|
|
/* 028B6358 */ /* nop */
|
|
/* 028B635C */ cpu->r[0] = cpu->lr;
|
|
/* 028B6360 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028B6360 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B6364 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6368 */ _t2 = cpu->r[31] + 0x00000010u;
|
|
/* 028B6368 */ cpu->r[6] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B636C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028B6370 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6370 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B6370 */ if (_t4) goto L_028B6720; else goto L_028B6374;
|
|
L_028B6374: ; // 0x28b6374
|
|
/* 028B6374 */ _t5 = cpu->r[31] + 0x00000004u;
|
|
/* 028B6374 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6378 */ Gambit_fn_028AA0E8(cpu);
|
|
/* 028B637C */ cpu->r[25] = cpu->r[3];
|
|
/* 028B6380 */ _t6 = cpu->r[25] + 0x00000000u;
|
|
/* 028B6380 */ cpu->r[5] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6384 */ cpu->r[26] = 0x00000000u;
|
|
/* 028B6388 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[5]);
|
|
/* 028B638C */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B638C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B638C */ if (_t8) goto L_028B6390; else goto L_028B6720;
|
|
L_028B6390: ; // 0x28b6390
|
|
/* 028B6390 */ cpu->r[30] = 0x10140000u;
|
|
/* 028B6394 */ cpu->r[29] = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6398 */ cpu->r[30] = cpu->r[30] + 0xFFFF8ADCu;
|
|
/* 028B639C */ cpu->r[28] = cpu->r[1] + 0x00000008u;
|
|
/* 028B63A0 */ cpu->r[27] = 0x00000000u;
|
|
L_028B63A4: ; // 0x28b63a4
|
|
/* 028B63A4 */ cpu->r[3] = cpu->r[25];
|
|
/* 028B63A8 */ cpu->r[4] = cpu->r[26];
|
|
/* 028B63AC */ Gambit_fn_028B7B74(cpu);
|
|
/* 028B63B0 */ cpu->r[7] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028B63B4 */ cpu->r[6] = cpu->r[30] + 0xFFFFFFFFu;
|
|
L_028B63B8: ; // 0x28b63b8
|
|
/* 028B63B8 */ _t9 = cpu->r[6] + 0x00000001u;
|
|
/* 028B63B8 */ cpu->r[8] = rbrew_read8(cpu->mem, _t9);
|
|
/* 028B63B8 */ cpu->r[6] = _t9;
|
|
/* 028B63BC */ _t10 = cpu->r[7] + 0x00000001u;
|
|
/* 028B63BC */ cpu->r[9] = rbrew_read8(cpu->mem, _t10);
|
|
/* 028B63BC */ cpu->r[7] = _t10;
|
|
/* 028B63C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028B63C4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B63C4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B63C4 */ if (_t12) goto L_028B63C8; else goto L_028B63D0;
|
|
L_028B63C8: ; // 0x28b63c8
|
|
/* 028B63C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], 0x00000000u);
|
|
/* 028B63CC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B63CC */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B63CC */ if (_t14) goto L_028B63D0; else goto L_028B63B8;
|
|
L_028B63D0: ; // 0x28b63d0
|
|
/* 028B63D0 */ cpu->r[0] = cpu->r[8] - cpu->r[9];
|
|
/* 028B63D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B63D4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B63D4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B63D4 */ if (_t16) goto L_028B63D8; else goto L_028B6418;
|
|
L_028B63D8: ; // 0x28b63d8
|
|
/* 028B63D8 */ _t17 = cpu->r[31] + 0x00000010u;
|
|
/* 028B63D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B63DC */ _t18 = cpu->r[31] + 0x00000044u;
|
|
/* 028B63DC */ cpu->r[5] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B63E0 */ cpu->r[11] = cpu->r[12] + cpu->r[27];
|
|
/* 028B63E4 */ _t19 = cpu->r[11] + 0x00000004u;
|
|
/* 028B63E4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B63E8 */ _t20 = cpu->r[4] + cpu->r[5];
|
|
/* 028B63E8 */ cpu->r[8] = rbrew_read8(cpu->mem, _t20);
|
|
/* 028B63EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B63F0 */ cpu->r[12] = cpu->r[4] + cpu->r[5];
|
|
/* 028B63F4 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B63F4 */ _t22 = _t21 & 0x00000001u;
|
|
/* 028B63F4 */ if (_t22) goto L_028B63F8; else goto L_028B66EC;
|
|
L_028B63F8: ; // 0x28b63f8
|
|
/* 028B63F8 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B63FC */ _t23 = cpu->r[31] + 0x00000064u;
|
|
/* 028B63FC */ rbrew_write32(cpu->mem, _t23, cpu->r[12]);
|
|
/* 028B6400 */ _t24 = cpu->r[25] + 0x00000000u;
|
|
/* 028B6400 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B6404 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B6408 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[4]);
|
|
/* 028B640C */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028B6410 */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6410 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028B6410 */ if (_t26) goto L_028B63A4; else goto L_028B6414;
|
|
L_028B6414: ; // 0x28b6414
|
|
/* 028B6414 */ goto L_028B6720;
|
|
L_028B6418: ; // 0x28b6418
|
|
/* 028B6418 */ cpu->r[4] = cpu->r[26];
|
|
/* 028B641C */ cpu->r[3] = cpu->r[25];
|
|
/* 028B6420 */ Gambit_fn_028B7B74(cpu);
|
|
/* 028B6424 */ cpu->r[6] = 0x10140000u;
|
|
/* 028B6428 */ cpu->r[7] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028B642C */ cpu->r[6] = cpu->r[6] + 0xFFFF8B03u;
|
|
L_028B6430: ; // 0x28b6430
|
|
/* 028B6430 */ _t27 = cpu->r[6] + 0x00000001u;
|
|
/* 028B6430 */ cpu->r[8] = rbrew_read8(cpu->mem, _t27);
|
|
/* 028B6430 */ cpu->r[6] = _t27;
|
|
/* 028B6434 */ _t28 = cpu->r[7] + 0x00000001u;
|
|
/* 028B6434 */ cpu->r[9] = rbrew_read8(cpu->mem, _t28);
|
|
/* 028B6434 */ cpu->r[7] = _t28;
|
|
/* 028B6438 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[9]);
|
|
/* 028B643C */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B643C */ _t30 = _t29 & 0x00000001u;
|
|
/* 028B643C */ if (_t30) goto L_028B6440; else goto L_028B6448;
|
|
L_028B6440: ; // 0x28b6440
|
|
/* 028B6440 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], 0x00000000u);
|
|
/* 028B6444 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6444 */ _t32 = _t31 & 0x00000001u;
|
|
/* 028B6444 */ if (_t32) goto L_028B6448; else goto L_028B6430;
|
|
L_028B6448: ; // 0x28b6448
|
|
/* 028B6448 */ cpu->r[0] = cpu->r[8] - cpu->r[9];
|
|
/* 028B6448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B644C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B644C */ _t34 = _t33 & 0x00000001u;
|
|
/* 028B644C */ if (_t34) goto L_028B6450; else goto L_028B647C;
|
|
L_028B6450: ; // 0x28b6450
|
|
/* 028B6450 */ _t35 = cpu->r[31] + 0x00000010u;
|
|
/* 028B6450 */ cpu->r[12] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028B6454 */ _t36 = cpu->r[31] + 0x00000044u;
|
|
/* 028B6454 */ cpu->r[9] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028B6458 */ cpu->r[11] = cpu->r[12] + cpu->r[27];
|
|
/* 028B645C */ _t37 = cpu->r[11] + 0x00000004u;
|
|
/* 028B645C */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028B6460 */ _t38 = cpu->r[8] + cpu->r[9];
|
|
/* 028B6460 */ cpu->r[0] = rbrew_read8(cpu->mem, _t38);
|
|
/* 028B6464 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6468 */ cpu->r[4] = cpu->r[8] + cpu->r[9];
|
|
/* 028B646C */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B646C */ _t40 = _t39 & 0x00000001u;
|
|
/* 028B646C */ if (_t40) goto L_028B6470; else goto L_028B6708;
|
|
L_028B6470: ; // 0x28b6470
|
|
/* 028B6470 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B6474 */ _t41 = cpu->r[31] + 0x00000068u;
|
|
/* 028B6474 */ rbrew_write32(cpu->mem, _t41, cpu->r[4]);
|
|
/* 028B6478 */ goto L_028B670C;
|
|
L_028B647C: ; // 0x28b647c
|
|
/* 028B647C */ cpu->r[4] = cpu->r[26];
|
|
/* 028B6480 */ cpu->r[3] = cpu->r[25];
|
|
/* 028B6484 */ Gambit_fn_028B7B74(cpu);
|
|
/* 028B6488 */ cpu->r[10] = 0x10140000u;
|
|
/* 028B648C */ cpu->r[11] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028B6490 */ cpu->r[10] = cpu->r[10] + 0xFFFF8AE7u;
|
|
L_028B6494: ; // 0x28b6494
|
|
/* 028B6494 */ _t42 = cpu->r[10] + 0x00000001u;
|
|
/* 028B6494 */ cpu->r[12] = rbrew_read8(cpu->mem, _t42);
|
|
/* 028B6494 */ cpu->r[10] = _t42;
|
|
/* 028B6498 */ _t43 = cpu->r[11] + 0x00000001u;
|
|
/* 028B6498 */ cpu->r[0] = rbrew_read8(cpu->mem, _t43);
|
|
/* 028B6498 */ cpu->r[11] = _t43;
|
|
/* 028B649C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 028B64A0 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B64A0 */ _t45 = _t44 & 0x00000001u;
|
|
/* 028B64A0 */ if (_t45) goto L_028B64A4; else goto L_028B64AC;
|
|
L_028B64A4: ; // 0x28b64a4
|
|
/* 028B64A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000000u);
|
|
/* 028B64A8 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B64A8 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028B64A8 */ if (_t47) goto L_028B64AC; else goto L_028B6494;
|
|
L_028B64AC: ; // 0x28b64ac
|
|
/* 028B64AC */ cpu->r[4] = cpu->r[12] - cpu->r[0];
|
|
/* 028B64AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B64B0 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B64B0 */ _t49 = _t48 & 0x00000001u;
|
|
/* 028B64B0 */ if (_t49) goto L_028B64B4; else goto L_028B64DC;
|
|
L_028B64B4: ; // 0x28b64b4
|
|
/* 028B64B4 */ _t50 = cpu->r[31] + 0x00000010u;
|
|
/* 028B64B4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t50);
|
|
/* 028B64B8 */ cpu->r[5] = cpu->r[6] + cpu->r[27];
|
|
/* 028B64BC */ _t51 = cpu->r[5] + 0x00000004u;
|
|
/* 028B64BC */ cpu->r[7] = rbrew_read32(cpu->mem, _t51);
|
|
/* 028B64C0 */ _t52 = cpu->r[31] + 0x0000006Cu;
|
|
/* 028B64C0 */ rbrew_write32(cpu->mem, _t52, cpu->r[7]);
|
|
/* 028B64C4 */ _t53 = cpu->r[25] + 0x00000000u;
|
|
/* 028B64C4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028B64C8 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B64CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[4]);
|
|
/* 028B64D0 */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028B64D4 */ _t54 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B64D4 */ _t55 = _t54 & 0x00000001u;
|
|
/* 028B64D4 */ if (_t55) goto L_028B63A4; else goto L_028B64D8;
|
|
L_028B64D8: ; // 0x28b64d8
|
|
/* 028B64D8 */ goto L_028B6720;
|
|
L_028B64DC: ; // 0x28b64dc
|
|
/* 028B64DC */ cpu->r[4] = cpu->r[26];
|
|
/* 028B64E0 */ cpu->r[3] = cpu->r[25];
|
|
/* 028B64E4 */ Gambit_fn_028B7B74(cpu);
|
|
/* 028B64E8 */ cpu->r[8] = 0x10140000u;
|
|
/* 028B64EC */ cpu->r[9] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028B64F0 */ cpu->r[8] = cpu->r[8] + 0xFFFF8B1Bu;
|
|
L_028B64F4: ; // 0x28b64f4
|
|
/* 028B64F4 */ _t56 = cpu->r[8] + 0x00000001u;
|
|
/* 028B64F4 */ cpu->r[10] = rbrew_read8(cpu->mem, _t56);
|
|
/* 028B64F4 */ cpu->r[8] = _t56;
|
|
/* 028B64F8 */ _t57 = cpu->r[9] + 0x00000001u;
|
|
/* 028B64F8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t57);
|
|
/* 028B64F8 */ cpu->r[9] = _t57;
|
|
/* 028B64FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028B6500 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6500 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028B6500 */ if (_t59) goto L_028B6504; else goto L_028B650C;
|
|
L_028B6504: ; // 0x28b6504
|
|
/* 028B6504 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000000u);
|
|
/* 028B6508 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6508 */ _t61 = _t60 & 0x00000001u;
|
|
/* 028B6508 */ if (_t61) goto L_028B650C; else goto L_028B64F4;
|
|
L_028B650C: ; // 0x28b650c
|
|
/* 028B650C */ cpu->r[4] = cpu->r[10] - cpu->r[0];
|
|
/* 028B650C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B6510 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6510 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028B6510 */ if (_t63) goto L_028B6514; else goto L_028B653C;
|
|
L_028B6514: ; // 0x28b6514
|
|
/* 028B6514 */ _t64 = cpu->r[31] + 0x00000010u;
|
|
/* 028B6514 */ cpu->r[6] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028B6518 */ cpu->r[5] = cpu->r[6] + cpu->r[27];
|
|
/* 028B651C */ _t65 = cpu->r[5] + 0x00000004u;
|
|
/* 028B651C */ cpu->r[7] = rbrew_read32(cpu->mem, _t65);
|
|
/* 028B6520 */ _t66 = cpu->r[31] + 0x00000070u;
|
|
/* 028B6520 */ rbrew_write32(cpu->mem, _t66, cpu->r[7]);
|
|
/* 028B6524 */ _t67 = cpu->r[25] + 0x00000000u;
|
|
/* 028B6524 */ cpu->r[4] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028B6528 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B652C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[4]);
|
|
/* 028B6530 */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028B6534 */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6534 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028B6534 */ if (_t69) goto L_028B63A4; else goto L_028B6538;
|
|
L_028B6538: ; // 0x28b6538
|
|
/* 028B6538 */ goto L_028B6720;
|
|
L_028B653C: ; // 0x28b653c
|
|
/* 028B653C */ cpu->r[4] = cpu->r[26];
|
|
/* 028B6540 */ cpu->r[3] = cpu->r[25];
|
|
/* 028B6544 */ Gambit_fn_028B7B74(cpu);
|
|
/* 028B6548 */ cpu->r[8] = 0x10140000u;
|
|
/* 028B654C */ cpu->r[9] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028B6550 */ cpu->r[8] = cpu->r[8] + 0xFFFF8B2Fu;
|
|
L_028B6554: ; // 0x28b6554
|
|
/* 028B6554 */ _t70 = cpu->r[8] + 0x00000001u;
|
|
/* 028B6554 */ cpu->r[10] = rbrew_read8(cpu->mem, _t70);
|
|
/* 028B6554 */ cpu->r[8] = _t70;
|
|
/* 028B6558 */ _t71 = cpu->r[9] + 0x00000001u;
|
|
/* 028B6558 */ cpu->r[0] = rbrew_read8(cpu->mem, _t71);
|
|
/* 028B6558 */ cpu->r[9] = _t71;
|
|
/* 028B655C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 028B6560 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6560 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028B6560 */ if (_t73) goto L_028B6564; else goto L_028B656C;
|
|
L_028B6564: ; // 0x28b6564
|
|
/* 028B6564 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000000u);
|
|
/* 028B6568 */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6568 */ _t75 = _t74 & 0x00000001u;
|
|
/* 028B6568 */ if (_t75) goto L_028B656C; else goto L_028B6554;
|
|
L_028B656C: ; // 0x28b656c
|
|
/* 028B656C */ cpu->r[5] = cpu->r[10] - cpu->r[0];
|
|
/* 028B656C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 028B6570 */ _t76 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6570 */ _t77 = _t76 & 0x00000001u;
|
|
/* 028B6570 */ if (_t77) goto L_028B6574; else goto L_028B65A4;
|
|
L_028B6574: ; // 0x28b6574
|
|
/* 028B6574 */ _t78 = cpu->r[31] + 0x00000010u;
|
|
/* 028B6574 */ cpu->r[7] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028B6578 */ cpu->r[6] = cpu->r[7] + cpu->r[27];
|
|
/* 028B657C */ _t79 = cpu->r[6] + 0x00000004u;
|
|
/* 028B657C */ cpu->r[9] = rbrew_read32(cpu->mem, _t79);
|
|
/* 028B6580 */ _t80 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6580 */ rbrew_write32(cpu->mem, _t80, cpu->r[9]);
|
|
/* 028B6584 */ _t81 = cpu->r[28] + 0x00000000u;
|
|
/* 028B6584 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 028B6588 */ _t82 = cpu->r[31] + 0x00000074u;
|
|
/* 028B6588 */ rbrew_write_f32(cpu->mem, _t82, cpu->f[13]);
|
|
/* 028B658C */ _t83 = cpu->r[25] + 0x00000000u;
|
|
/* 028B658C */ cpu->r[4] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028B6590 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B6594 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[4]);
|
|
/* 028B6598 */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028B659C */ _t84 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B659C */ _t85 = _t84 & 0x00000001u;
|
|
/* 028B659C */ if (_t85) goto L_028B63A4; else goto L_028B65A0;
|
|
L_028B65A0: ; // 0x28b65a0
|
|
/* 028B65A0 */ goto L_028B6720;
|
|
L_028B65A4: ; // 0x28b65a4
|
|
/* 028B65A4 */ cpu->r[4] = cpu->r[26];
|
|
/* 028B65A8 */ cpu->r[3] = cpu->r[25];
|
|
/* 028B65AC */ Gambit_fn_028B7B74(cpu);
|
|
/* 028B65B0 */ cpu->r[11] = 0x10140000u;
|
|
/* 028B65B4 */ cpu->r[12] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028B65B8 */ cpu->r[11] = cpu->r[11] + 0xFFFF8AD3u;
|
|
L_028B65BC: ; // 0x28b65bc
|
|
/* 028B65BC */ _t86 = cpu->r[11] + 0x00000001u;
|
|
/* 028B65BC */ cpu->r[4] = rbrew_read8(cpu->mem, _t86);
|
|
/* 028B65BC */ cpu->r[11] = _t86;
|
|
/* 028B65C0 */ _t87 = cpu->r[12] + 0x00000001u;
|
|
/* 028B65C0 */ cpu->r[5] = rbrew_read8(cpu->mem, _t87);
|
|
/* 028B65C0 */ cpu->r[12] = _t87;
|
|
/* 028B65C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[5]);
|
|
/* 028B65C8 */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B65C8 */ _t89 = _t88 & 0x00000001u;
|
|
/* 028B65C8 */ if (_t89) goto L_028B65CC; else goto L_028B65D4;
|
|
L_028B65CC: ; // 0x28b65cc
|
|
/* 028B65CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000000u);
|
|
/* 028B65D0 */ _t90 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B65D0 */ _t91 = _t90 & 0x00000001u;
|
|
/* 028B65D0 */ if (_t91) goto L_028B65D4; else goto L_028B65BC;
|
|
L_028B65D4: ; // 0x28b65d4
|
|
/* 028B65D4 */ cpu->r[7] = cpu->r[4] - cpu->r[5];
|
|
/* 028B65D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B65D8 */ _t92 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B65D8 */ _t93 = _t92 & 0x00000001u;
|
|
/* 028B65D8 */ if (_t93) goto L_028B65DC; else goto L_028B6610;
|
|
L_028B65DC: ; // 0x28b65dc
|
|
/* 028B65DC */ _t94 = cpu->r[31] + 0x00000010u;
|
|
/* 028B65DC */ cpu->r[10] = rbrew_read32(cpu->mem, _t94);
|
|
/* 028B65E0 */ cpu->r[9] = cpu->r[10] + cpu->r[27];
|
|
/* 028B65E4 */ _t95 = cpu->r[9] + 0x00000004u;
|
|
/* 028B65E4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t95);
|
|
/* 028B65E8 */ cpu->r[12] = (uint32_t)(-(int32_t)cpu->r[11]);
|
|
/* 028B65EC */ _t96 = ~cpu->r[11];
|
|
/* 028B65EC */ cpu->r[0] = cpu->r[12] & _t96;
|
|
/* 028B65F0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B65F4 */ _t97 = cpu->r[31] + 0x00000078u;
|
|
/* 028B65F4 */ rbrew_write8(cpu->mem, _t97, (uint8_t)cpu->r[8]);
|
|
/* 028B65F8 */ _t98 = cpu->r[25] + 0x00000000u;
|
|
/* 028B65F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t98);
|
|
/* 028B65FC */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B6600 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[4]);
|
|
/* 028B6604 */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028B6608 */ _t99 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6608 */ _t100 = _t99 & 0x00000001u;
|
|
/* 028B6608 */ if (_t100) goto L_028B63A4; else goto L_028B660C;
|
|
L_028B660C: ; // 0x28b660c
|
|
/* 028B660C */ goto L_028B6720;
|
|
L_028B6610: ; // 0x28b6610
|
|
/* 028B6610 */ cpu->r[4] = cpu->r[26];
|
|
/* 028B6614 */ cpu->r[3] = cpu->r[25];
|
|
/* 028B6618 */ Gambit_fn_028B7B74(cpu);
|
|
/* 028B661C */ cpu->r[4] = 0x10140000u;
|
|
/* 028B6620 */ cpu->r[5] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028B6624 */ cpu->r[4] = cpu->r[4] + 0xFFFF8AF3u;
|
|
L_028B6628: ; // 0x28b6628
|
|
/* 028B6628 */ _t101 = cpu->r[4] + 0x00000001u;
|
|
/* 028B6628 */ cpu->r[6] = rbrew_read8(cpu->mem, _t101);
|
|
/* 028B6628 */ cpu->r[4] = _t101;
|
|
/* 028B662C */ _t102 = cpu->r[5] + 0x00000001u;
|
|
/* 028B662C */ cpu->r[7] = rbrew_read8(cpu->mem, _t102);
|
|
/* 028B662C */ cpu->r[5] = _t102;
|
|
/* 028B6630 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[7]);
|
|
/* 028B6634 */ _t103 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6634 */ _t104 = _t103 & 0x00000001u;
|
|
/* 028B6634 */ if (_t104) goto L_028B6638; else goto L_028B6640;
|
|
L_028B6638: ; // 0x28b6638
|
|
/* 028B6638 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], 0x00000000u);
|
|
/* 028B663C */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B663C */ _t106 = _t105 & 0x00000001u;
|
|
/* 028B663C */ if (_t106) goto L_028B6640; else goto L_028B6628;
|
|
L_028B6640: ; // 0x28b6640
|
|
/* 028B6640 */ cpu->r[8] = cpu->r[6] - cpu->r[7];
|
|
/* 028B6640 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B6644 */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6644 */ _t108 = _t107 & 0x00000001u;
|
|
/* 028B6644 */ if (_t108) goto L_028B6648; else goto L_028B6678;
|
|
L_028B6648: ; // 0x28b6648
|
|
/* 028B6648 */ _t109 = cpu->r[31] + 0x00000010u;
|
|
/* 028B6648 */ cpu->r[10] = rbrew_read32(cpu->mem, _t109);
|
|
/* 028B664C */ cpu->r[9] = cpu->r[10] + cpu->r[27];
|
|
/* 028B6650 */ _t110 = cpu->r[9] + 0x00000004u;
|
|
/* 028B6650 */ cpu->r[0] = rbrew_read32(cpu->mem, _t110);
|
|
/* 028B6654 */ _t111 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6654 */ rbrew_write32(cpu->mem, _t111, cpu->r[0]);
|
|
/* 028B6658 */ _t112 = cpu->r[29] + 0x00000000u;
|
|
/* 028B6658 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t112);
|
|
/* 028B665C */ _t113 = cpu->r[31] + 0x0000007Cu;
|
|
/* 028B665C */ rbrew_write_f32(cpu->mem, _t113, cpu->f[0]);
|
|
/* 028B6660 */ _t114 = cpu->r[25] + 0x00000000u;
|
|
/* 028B6660 */ cpu->r[4] = rbrew_read32(cpu->mem, _t114);
|
|
/* 028B6664 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B6668 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[4]);
|
|
/* 028B666C */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028B6670 */ _t115 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6670 */ _t116 = _t115 & 0x00000001u;
|
|
/* 028B6670 */ if (_t116) goto L_028B63A4; else goto L_028B6674;
|
|
L_028B6674: ; // 0x28b6674
|
|
/* 028B6674 */ goto L_028B6720;
|
|
L_028B6678: ; // 0x28b6678
|
|
/* 028B6678 */ cpu->r[4] = cpu->r[26];
|
|
/* 028B667C */ cpu->r[3] = cpu->r[25];
|
|
/* 028B6680 */ Gambit_fn_028B7B74(cpu);
|
|
/* 028B6684 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B6688 */ cpu->r[4] = cpu->r[3] + 0xFFFFFFFFu;
|
|
/* 028B668C */ cpu->r[12] = cpu->r[12] + 0xFFFF8B3Bu;
|
|
L_028B6690: ; // 0x28b6690
|
|
/* 028B6690 */ _t117 = cpu->r[12] + 0x00000001u;
|
|
/* 028B6690 */ cpu->r[5] = rbrew_read8(cpu->mem, _t117);
|
|
/* 028B6690 */ cpu->r[12] = _t117;
|
|
/* 028B6694 */ _t118 = cpu->r[4] + 0x00000001u;
|
|
/* 028B6694 */ cpu->r[6] = rbrew_read8(cpu->mem, _t118);
|
|
/* 028B6694 */ cpu->r[4] = _t118;
|
|
/* 028B6698 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[6]);
|
|
/* 028B669C */ _t119 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B669C */ _t120 = _t119 & 0x00000001u;
|
|
/* 028B669C */ if (_t120) goto L_028B66A0; else goto L_028B66A8;
|
|
L_028B66A0: ; // 0x28b66a0
|
|
/* 028B66A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000000u);
|
|
/* 028B66A4 */ _t121 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B66A4 */ _t122 = _t121 & 0x00000001u;
|
|
/* 028B66A4 */ if (_t122) goto L_028B66A8; else goto L_028B6690;
|
|
L_028B66A8: ; // 0x28b66a8
|
|
/* 028B66A8 */ cpu->r[7] = cpu->r[5] - cpu->r[6];
|
|
/* 028B66A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B66AC */ _t123 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B66AC */ _t124 = _t123 & 0x00000001u;
|
|
/* 028B66AC */ if (_t124) goto L_028B66B0; else goto L_028B670C;
|
|
L_028B66B0: ; // 0x28b66b0
|
|
/* 028B66B0 */ _t125 = cpu->r[31] + 0x00000010u;
|
|
/* 028B66B0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t125);
|
|
/* 028B66B4 */ _t126 = cpu->r[31] + 0x00000054u;
|
|
/* 028B66B4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t126);
|
|
/* 028B66B8 */ cpu->r[8] = cpu->r[9] + cpu->r[27];
|
|
/* 028B66BC */ _t127 = cpu->r[8] + 0x00000004u;
|
|
/* 028B66BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t127);
|
|
/* 028B66C0 */ cpu->r[12] = cpu->r[10] + cpu->r[11];
|
|
/* 028B66C4 */ cpu->r[0] = cpu->r[12] + 0x00000004u;
|
|
/* 028B66C8 */ _t128 = cpu->r[12] + 0x00000000u;
|
|
/* 028B66C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t128);
|
|
/* 028B66CC */ _t129 = cpu->r[31] + 0x00000084u;
|
|
/* 028B66CC */ rbrew_write32(cpu->mem, _t129, cpu->r[0]);
|
|
/* 028B66D0 */ _t130 = cpu->r[31] + 0x00000080u;
|
|
/* 028B66D0 */ rbrew_write32(cpu->mem, _t130, cpu->r[12]);
|
|
/* 028B66D4 */ _t131 = cpu->r[25] + 0x00000000u;
|
|
/* 028B66D4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t131);
|
|
/* 028B66D8 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B66DC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[4]);
|
|
/* 028B66E0 */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028B66E4 */ _t132 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B66E4 */ _t133 = _t132 & 0x00000001u;
|
|
/* 028B66E4 */ if (_t133) goto L_028B63A4; else goto L_028B66E8;
|
|
L_028B66E8: ; // 0x28b66e8
|
|
/* 028B66E8 */ goto L_028B6720;
|
|
L_028B66EC: ; // 0x28b66ec
|
|
/* 028B66EC */ _t134 = cpu->r[31] + 0x00000064u;
|
|
/* 028B66EC */ rbrew_write32(cpu->mem, _t134, cpu->r[12]);
|
|
/* 028B66F0 */ _t135 = cpu->r[25] + 0x00000000u;
|
|
/* 028B66F0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t135);
|
|
/* 028B66F4 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B66F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[4]);
|
|
/* 028B66FC */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028B6700 */ _t136 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6700 */ _t137 = _t136 & 0x00000001u;
|
|
/* 028B6700 */ if (_t137) goto L_028B63A4; else goto L_028B6704;
|
|
L_028B6704: ; // 0x28b6704
|
|
/* 028B6704 */ goto L_028B6720;
|
|
L_028B6708: ; // 0x28b6708
|
|
/* 028B6708 */ _t138 = cpu->r[31] + 0x00000068u;
|
|
/* 028B6708 */ rbrew_write32(cpu->mem, _t138, cpu->r[4]);
|
|
L_028B670C: ; // 0x28b670c
|
|
/* 028B670C */ _t139 = cpu->r[25] + 0x00000000u;
|
|
/* 028B670C */ cpu->r[4] = rbrew_read32(cpu->mem, _t139);
|
|
/* 028B6710 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B6714 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[4]);
|
|
/* 028B6718 */ cpu->r[27] = cpu->r[27] + 0x00000008u;
|
|
/* 028B671C */ _t140 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B671C */ _t141 = _t140 & 0x00000001u;
|
|
/* 028B671C */ if (_t141) goto L_028B63A4; else goto L_028B6720;
|
|
L_028B6720: ; // 0x28b6720
|
|
/* 028B6720 */ /* nop */
|
|
/* 028B6724 */ _t142 = cpu->r[1] + 0x00000034u;
|
|
/* 028B6724 */ cpu->r[0] = rbrew_read32(cpu->mem, _t142);
|
|
/* 028B6728 */ cpu->lr = cpu->r[0];
|
|
/* 028B672C */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028B6730 */ return;
|
|
}
|
|
|
|
// fn_028B6734 @ 0x28b6734
|
|
void Gambit_fn_028B6734(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B6734: ; // 0x28b6734
|
|
/* 028B6734 */ cpu->r[0] = cpu->lr;
|
|
/* 028B6738 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B6738 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6738 */ cpu->r[1] = _t0;
|
|
/* 028B673C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B673C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B6740 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6744 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6744 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B6748 */ Gambit_fn_028B6354(cpu);
|
|
/* 028B674C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6750 */ Gambit_fn_028B6080(cpu);
|
|
/* 028B6754 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6758 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6758 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B6758 */ if (_t4) goto L_028B676C; else goto L_028B675C;
|
|
L_028B675C: ; // 0x28b675c
|
|
/* 028B675C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6760 */ Gambit_fn_028B6090(cpu);
|
|
/* 028B6764 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6768 */ Gambit_fn_028AE510(cpu);
|
|
L_028B676C: ; // 0x28b676c
|
|
/* 028B676C */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B676C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6770 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6770 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6774 */ cpu->lr = cpu->r[0];
|
|
/* 028B6778 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B677C */ return;
|
|
}
|
|
|
|
// fn_028B6738 @ 0x28b6738
|
|
void Gambit_fn_028B6738(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_028B6738: ; // 0x28b6738
|
|
/* 028B6738 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B6738 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6738 */ cpu->r[1] = _t0;
|
|
/* 028B673C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B673C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B6740 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6744 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6744 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B6748 */ Gambit_fn_028B6354(cpu);
|
|
/* 028B674C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6750 */ Gambit_fn_028B6080(cpu);
|
|
/* 028B6754 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6758 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6758 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B6758 */ if (_t4) goto L_028B676C; else goto L_028B675C;
|
|
L_028B675C: ; // 0x28b675c
|
|
/* 028B675C */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6760 */ Gambit_fn_028B6090(cpu);
|
|
/* 028B6764 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6768 */ Gambit_fn_028AE510(cpu);
|
|
L_028B676C: ; // 0x28b676c
|
|
/* 028B676C */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 028B676C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6770 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6770 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6774 */ cpu->lr = cpu->r[0];
|
|
/* 028B6778 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B677C */ return;
|
|
}
|
|
|
|
// fn_028B6780 @ 0x28b6780
|
|
void Gambit_fn_028B6780(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_028B6780: ; // 0x28b6780
|
|
/* 028B6780 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6784 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6784 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B6784 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B6784 */ goto L_028B6788;
|
|
L_028B6788: ; // 0x28b6788
|
|
/* 028B6788 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6788 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B678C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B678C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B678C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B678C */ goto L_028B6790;
|
|
L_028B6790: ; // 0x28b6790
|
|
/* 028B6790 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B6794 @ 0x28b6794
|
|
void Gambit_fn_028B6794(CPUState* cpu) {
|
|
L_028B6794: ; // 0x28b6794
|
|
/* 028B6794 */ return;
|
|
}
|
|
|
|
// fn_028B6798 @ 0x28b6798
|
|
void Gambit_fn_028B6798(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_028B6798: ; // 0x28b6798
|
|
/* 028B6798 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B679C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B679C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B679C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B679C */ goto L_028B67A0;
|
|
L_028B67A0: ; // 0x28b67a0
|
|
/* 028B67A0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B67A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B67A4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B67A4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B67A4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B67A4 */ goto L_028B67A8;
|
|
L_028B67A8: ; // 0x28b67a8
|
|
/* 028B67A8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B67AC @ 0x28b67ac
|
|
void Gambit_fn_028B67AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B67AC: ; // 0x28b67ac
|
|
/* 028B67AC */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028B67AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B67B0 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028B67B0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B67B4 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028B67B8 */ cpu->r[11] = 0x10110000u;
|
|
/* 028B67BC */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028B67BC */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028B67C0 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028B67C0 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028B67C4 */ return;
|
|
}
|
|
|
|
// fn_028B67C8 @ 0x28b67c8
|
|
void Gambit_fn_028B67C8(CPUState* cpu) {
|
|
L_028B67C8: ; // 0x28b67c8
|
|
/* 028B67C8 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B67CC */ return;
|
|
}
|
|
|
|
// fn_028B67D0 @ 0x28b67d0
|
|
void Gambit_fn_028B67D0(CPUState* cpu) {
|
|
L_028B67D0: ; // 0x28b67d0
|
|
/* 028B67D0 */ cpu->r[3] = 0x10140000u;
|
|
/* 028B67D4 */ cpu->r[3] = cpu->r[3] + 0xFFFF8A1Du;
|
|
/* 028B67D8 */ return;
|
|
}
|
|
|
|
// fn_028B67DC @ 0x28b67dc
|
|
void Gambit_fn_028B67DC(CPUState* cpu) {
|
|
L_028B67DC: ; // 0x28b67dc
|
|
/* 028B67DC */ cpu->r[3] = 0x00000000u;
|
|
/* 028B67E0 */ return;
|
|
}
|
|
|
|
// fn_028B67E4 @ 0x28b67e4
|
|
void Gambit_fn_028B67E4(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B67E4: ; // 0x28b67e4
|
|
/* 028B67E4 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B67E8 */ _t0 = cpu->r[12] + 0xFFFF8B50u;
|
|
/* 028B67E8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028B67EC */ return;
|
|
}
|
|
|
|
// fn_028B67F0 @ 0x28b67f0
|
|
void Gambit_fn_028B67F0(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B67F0: ; // 0x28b67f0
|
|
/* 028B67F0 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B67F4 */ _t0 = cpu->r[12] + 0xFFFF8B50u;
|
|
/* 028B67F4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t0);
|
|
/* 028B67F8 */ return;
|
|
}
|
|
|
|
// fn_028B67FC @ 0x28b67fc
|
|
void Gambit_fn_028B67FC(CPUState* cpu) {
|
|
L_028B67FC: ; // 0x28b67fc
|
|
/* 028B67FC */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028B6800 */ return;
|
|
}
|
|
|
|
// fn_028B6804 @ 0x28b6804
|
|
void Gambit_fn_028B6804(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_028B6804: ; // 0x28b6804
|
|
/* 028B6804 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B6804 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B6808 */ return;
|
|
}
|
|
|
|
// fn_028B680C @ 0x28b680c
|
|
void Gambit_fn_028B680C(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_028B680C: ; // 0x28b680c
|
|
/* 028B680C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6810 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6810 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B6810 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B6810 */ goto L_028B6814;
|
|
L_028B6814: ; // 0x28b6814
|
|
/* 028B6814 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6818 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6818 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B6818 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B6818 */ goto L_028B681C;
|
|
L_028B681C: ; // 0x28b681c
|
|
/* 028B681C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B6820 @ 0x28b6820
|
|
void Gambit_fn_028B6820(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_028B6820: ; // 0x28b6820
|
|
/* 028B6820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6824 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6824 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B6824 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B6824 */ goto L_028B6828;
|
|
L_028B6828: ; // 0x28b6828
|
|
/* 028B6828 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6828 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B682C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B682C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B682C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B682C */ goto L_028B6830;
|
|
L_028B6830: ; // 0x28b6830
|
|
/* 028B6830 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B6834 @ 0x28b6834
|
|
void Gambit_fn_028B6834(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_028B6834: ; // 0x28b6834
|
|
/* 028B6834 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B6838 */ _t0 = cpu->r[3] + 0x00000014u;
|
|
/* 028B6838 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B683C */ _t1 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B683C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B6840 */ _t2 = cpu->r[3] + 0x00000010u;
|
|
/* 028B6840 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B6844 */ return;
|
|
}
|
|
|
|
// fn_028B6848 @ 0x28b6848
|
|
void Gambit_fn_028B6848(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_028B6848: ; // 0x28b6848
|
|
/* 028B6848 */ cpu->r[0] = cpu->lr;
|
|
/* 028B684C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B684C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B684C */ cpu->r[1] = _t0;
|
|
/* 028B6850 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6850 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B6854 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6854 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B6858 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6858 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B685C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6860 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6860 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B6864 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028B6864 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6868 */ _t6 = cpu->r[9] + 0x00000020u;
|
|
/* 028B6868 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B686C */ _t7 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028B686C */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B6870 */ cpu->r[29] = cpu->r[4];
|
|
/* 028B6874 */ Gambit_fn_028AE364(cpu);
|
|
/* 028B6878 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B687C */ _t8 = cpu->r[30] + 0x00000014u;
|
|
/* 028B687C */ cpu->r[12] = rbrew_read16(cpu->mem, _t8);
|
|
/* 028B6880 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6880 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6884 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6884 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B6884 */ if (_t10) goto L_028B68A0; else goto L_028B6888;
|
|
L_028B6888: ; // 0x28b6888
|
|
/* 028B6888 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B688C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B6890 */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6894 */ _t11 = cpu->r[3] + 0x00000008u;
|
|
/* 028B6894 */ cpu->r[0] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028B6898 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B689C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B689C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B689C */ if (_t13) goto L_028B68A0; else goto L_028B68CC;
|
|
L_028B68A0: ; // 0x28b68a0
|
|
/* 028B68A0 */ _t14 = cpu->r[30] + 0x00000018u;
|
|
/* 028B68A0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B68A4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B68A8 */ _t15 = cpu->r[30] + 0x00000008u;
|
|
/* 028B68A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B68AC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B68B0 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B68B4 */ Gambit_fn_028B872C(cpu);
|
|
/* 028B68B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B68BC */ cpu->r[4] = cpu->r[29];
|
|
/* 028B68C0 */ Gambit_fn_028B8878(cpu);
|
|
/* 028B68C4 */ cpu->r[0] = 0x00000001u;
|
|
/* 028B68C8 */ _t16 = cpu->r[3] + 0x00000008u;
|
|
/* 028B68C8 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[0]);
|
|
L_028B68CC: ; // 0x28b68cc
|
|
/* 028B68CC */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B68CC */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B68D0 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B68D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B68D4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B68D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B68D8 */ cpu->lr = cpu->r[0];
|
|
/* 028B68DC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B68DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B68E0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B68E4 */ return;
|
|
}
|
|
|
|
// fn_028B684C @ 0x28b684c
|
|
void Gambit_fn_028B684C(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_028B684C: ; // 0x28b684c
|
|
/* 028B684C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B684C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B684C */ cpu->r[1] = _t0;
|
|
/* 028B6850 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6850 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B6854 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6854 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B6858 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6858 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B685C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6860 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6860 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B6864 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028B6864 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6868 */ _t6 = cpu->r[9] + 0x00000020u;
|
|
/* 028B6868 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B686C */ _t7 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028B686C */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B6870 */ cpu->r[29] = cpu->r[4];
|
|
/* 028B6874 */ Gambit_fn_028AE364(cpu);
|
|
/* 028B6878 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B687C */ _t8 = cpu->r[30] + 0x00000014u;
|
|
/* 028B687C */ cpu->r[12] = rbrew_read16(cpu->mem, _t8);
|
|
/* 028B6880 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6880 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6884 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6884 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B6884 */ if (_t10) goto L_028B68A0; else goto L_028B6888;
|
|
L_028B6888: ; // 0x28b6888
|
|
/* 028B6888 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B688C */ cpu->r[4] = cpu->r[29];
|
|
/* 028B6890 */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6894 */ _t11 = cpu->r[3] + 0x00000008u;
|
|
/* 028B6894 */ cpu->r[0] = rbrew_read8(cpu->mem, _t11);
|
|
/* 028B6898 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B689C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B689C */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B689C */ if (_t13) goto L_028B68A0; else goto L_028B68CC;
|
|
L_028B68A0: ; // 0x28b68a0
|
|
/* 028B68A0 */ _t14 = cpu->r[30] + 0x00000018u;
|
|
/* 028B68A0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B68A4 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B68A8 */ _t15 = cpu->r[30] + 0x00000008u;
|
|
/* 028B68A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B68AC */ cpu->r[3] = cpu->r[31];
|
|
/* 028B68B0 */ cpu->r[5] = cpu->r[29];
|
|
/* 028B68B4 */ Gambit_fn_028B872C(cpu);
|
|
/* 028B68B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B68BC */ cpu->r[4] = cpu->r[29];
|
|
/* 028B68C0 */ Gambit_fn_028B8878(cpu);
|
|
/* 028B68C4 */ cpu->r[0] = 0x00000001u;
|
|
/* 028B68C8 */ _t16 = cpu->r[3] + 0x00000008u;
|
|
/* 028B68C8 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[0]);
|
|
L_028B68CC: ; // 0x28b68cc
|
|
/* 028B68CC */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B68CC */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B68D0 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B68D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B68D4 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 028B68D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B68D8 */ cpu->lr = cpu->r[0];
|
|
/* 028B68DC */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 028B68DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B68E0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B68E4 */ return;
|
|
}
|
|
|
|
// fn_028B68E8 @ 0x28b68e8
|
|
void Gambit_fn_028B68E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_028B68E8: ; // 0x28b68e8
|
|
/* 028B68E8 */ _t0 = cpu->r[4] + 0x00000014u;
|
|
/* 028B68E8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t0);
|
|
/* 028B68EC */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B68EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B68F0 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B68F0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B68F0 */ if (_t2) goto L_028B68FC; else goto L_028B68F4;
|
|
L_028B68F4: ; // 0x28b68f4
|
|
/* 028B68F4 */ cpu->r[3] = 0x00000001u;
|
|
/* 028B68F8 */ return;
|
|
L_028B68FC: ; // 0x28b68fc
|
|
/* 028B68FC */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B68FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B6900 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B6904 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6904 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B6904 */ if (_t4) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B6904 */ goto L_028B6908;
|
|
L_028B6908: ; // 0x28b6908
|
|
/* 028B6908 */ cpu->r[3] = 0x00000002u;
|
|
/* 028B690C */ return;
|
|
}
|
|
|
|
// fn_028B6910 @ 0x28b6910
|
|
void Gambit_fn_028B6910(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_028B6910: ; // 0x28b6910
|
|
/* 028B6910 */ cpu->r[0] = cpu->lr;
|
|
/* 028B6914 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B6914 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6914 */ cpu->r[1] = _t0;
|
|
/* 028B6918 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6918 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B691C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B691C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B6920 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6920 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B6924 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6924 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B6928 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6928 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B692C */ cpu->r[29] = cpu->r[3];
|
|
/* 028B6930 */ _t6 = cpu->r[29] + 0x00000008u;
|
|
/* 028B6930 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6934 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6938 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6938 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B6938 */ if (_t8) goto L_028B6A8C; else goto L_028B693C;
|
|
L_028B693C: ; // 0x28b693c
|
|
/* 028B693C */ _t9 = cpu->r[29] + 0x00000014u;
|
|
/* 028B693C */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B6940 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B6944 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6944 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B6944 */ if (_t11) goto L_028B6948; else goto L_028B6954;
|
|
L_028B6948: ; // 0x28b6948
|
|
/* 028B6948 */ _t12 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6948 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B694C */ _t13 = cpu->r[29] + 0x00000010u;
|
|
/* 028B694C */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028B6950 */ goto L_028B6A8C;
|
|
L_028B6954: ; // 0x28b6954
|
|
/* 028B6954 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 028B6954 */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B6958 */ _t15 = cpu->r[6] + 0x00000020u;
|
|
/* 028B6958 */ cpu->r[8] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B695C */ _t16 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028B695C */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B6960 */ _t17 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028B6960 */ cpu->r[7] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028B6964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B6968 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6968 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B6968 */ if (_t19) goto L_028B6A8C; else goto L_028B696C;
|
|
L_028B696C: ; // 0x28b696c
|
|
/* 028B696C */ _t20 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B696C */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B6970 */ _t21 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6970 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B6974 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[8]);
|
|
/* 028B6978 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6978 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B6978 */ if (_t23) goto L_028B697C; else goto L_028B698C;
|
|
L_028B697C: ; // 0x28b697c
|
|
/* 028B697C */ _t24 = cpu->r[29] + 0x00000014u;
|
|
/* 028B697C */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B6980 */ cpu->r[9] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028B6984 */ _t25 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6984 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B6988 */ _t26 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6988 */ rbrew_write32(cpu->mem, _t26, cpu->r[9]);
|
|
L_028B698C: ; // 0x28b698c
|
|
/* 028B698C */ _t27 = cpu->r[12] + 0x00000008u;
|
|
/* 028B698C */ cpu->r[28] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B6990 */ _t28 = cpu->r[12] + 0x00000004u;
|
|
/* 028B6990 */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B6994 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[28]);
|
|
/* 028B6998 */ _t29 = cpu->r[10] + 0x00000028u;
|
|
/* 028B6998 */ cpu->r[5] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B699C */ _t30 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B699C */ _t31 = _t30 & 0x00000001u;
|
|
/* 028B699C */ if (_t31) goto L_028B6A88; else goto L_028B69A0;
|
|
L_028B69A0: ; // 0x28b69a0
|
|
/* 028B69A0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[30] * (int32_t)0x0000001Cu);
|
|
/* 028B69A4 */ cpu->r[31] = cpu->r[5] + cpu->r[0];
|
|
L_028B69A8: ; // 0x28b69a8
|
|
/* 028B69A8 */ _t32 = cpu->r[31] + 0x00000008u;
|
|
/* 028B69A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B69AC */ _t33 = cpu->r[12] + 0x00000014u;
|
|
/* 028B69AC */ cpu->r[6] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B69B0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[6], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B69B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B69B4 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B69B4 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028B69B4 */ if (_t35) goto L_028B6A08; else goto L_028B69B8;
|
|
L_028B69B8: ; // 0x28b69b8
|
|
/* 028B69B8 */ _t36 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B69B8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028B69BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], cpu->r[11]);
|
|
/* 028B69C0 */ _t37 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B69C0 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028B69C0 */ if (_t38) goto L_028B6A50; else goto L_028B69C4;
|
|
L_028B69C4: ; // 0x28b69c4
|
|
/* 028B69C4 */ _t39 = cpu->r[31] + 0x00000010u;
|
|
/* 028B69C4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028B69C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[7]);
|
|
/* 028B69CC */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B69CC */ _t41 = _t40 & 0x00000001u;
|
|
/* 028B69CC */ if (_t41) goto L_028B69D0; else goto L_028B6A5C;
|
|
L_028B69D0: ; // 0x28b69d0
|
|
/* 028B69D0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B69D4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B69D8 */ Gambit_fn_028B8878(cpu);
|
|
/* 028B69DC */ cpu->r[11] = cpu->r[3];
|
|
/* 028B69DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028B69E0 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B69E0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028B69E0 */ if (_t43) goto L_028B6A4C; else goto L_028B69E4;
|
|
L_028B69E4: ; // 0x28b69e4
|
|
/* 028B69E4 */ _t44 = cpu->r[11] + 0x00000004u;
|
|
/* 028B69E4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028B69E8 */ _t45 = cpu->r[5] + 0x00000000u;
|
|
/* 028B69E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028B69EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B69F0 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B69F0 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028B69F0 */ if (_t47) goto L_028B6A40; else goto L_028B69F4;
|
|
L_028B69F4: ; // 0x28b69f4
|
|
/* 028B69F4 */ _t48 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B69F4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028B69F8 */ _t49 = cpu->r[5] + 0x00000004u;
|
|
/* 028B69F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B69FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[0]);
|
|
/* 028B6A00 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6A00 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028B6A00 */ if (_t51) goto L_028B6A4C; else goto L_028B6A04;
|
|
L_028B6A04: ; // 0x28b6a04
|
|
/* 028B6A04 */ goto L_028B6A40;
|
|
L_028B6A08: ; // 0x28b6a08
|
|
/* 028B6A08 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6A0C */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6A10 */ Gambit_fn_028B68E8(cpu);
|
|
/* 028B6A14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6A18 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6A18 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028B6A18 */ if (_t53) goto L_028B6A1C; else goto L_028B6A50;
|
|
L_028B6A1C: ; // 0x28b6a1c
|
|
/* 028B6A1C */ _t54 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6A1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028B6A20 */ _t55 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B6A20 */ cpu->r[5] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028B6A24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[5]);
|
|
/* 028B6A28 */ _t56 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A28 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028B6A28 */ if (_t57) goto L_028B6A2C; else goto L_028B6A50;
|
|
L_028B6A2C: ; // 0x28b6a2c
|
|
/* 028B6A2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[5]);
|
|
/* 028B6A30 */ _t58 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A30 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028B6A30 */ if (_t59) goto L_028B6A50; else goto L_028B6A34;
|
|
L_028B6A34: ; // 0x28b6a34
|
|
/* 028B6A34 */ _t60 = cpu->r[31] + 0x00000010u;
|
|
/* 028B6A34 */ cpu->r[7] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028B6A38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[7]);
|
|
/* 028B6A3C */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A3C */ _t62 = _t61 & 0x00000001u;
|
|
/* 028B6A3C */ if (_t62) goto L_028B6A40; else goto L_028B6A60;
|
|
L_028B6A40: ; // 0x28b6a40
|
|
/* 028B6A40 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6A44 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6A48 */ Gambit_fn_028B6848(cpu);
|
|
L_028B6A4C: ; // 0x28b6a4c
|
|
/* 028B6A4C */ _t63 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6A4C */ cpu->r[11] = rbrew_read32(cpu->mem, _t63);
|
|
L_028B6A50: ; // 0x28b6a50
|
|
/* 028B6A50 */ _t64 = cpu->r[31] + 0x00000010u;
|
|
/* 028B6A50 */ cpu->r[7] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028B6A54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[7]);
|
|
/* 028B6A58 */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A58 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028B6A58 */ if (_t66) goto L_028B6A78; else goto L_028B6A5C;
|
|
L_028B6A5C: ; // 0x28b6a5c
|
|
/* 028B6A5C */ _t67 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6A5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
L_028B6A60: ; // 0x28b6a60
|
|
/* 028B6A60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[7]);
|
|
/* 028B6A64 */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A64 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028B6A64 */ if (_t69) goto L_028B6A68; else goto L_028B6A78;
|
|
L_028B6A68: ; // 0x28b6a68
|
|
/* 028B6A68 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6A6C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6A70 */ Gambit_fn_028B87D0(cpu);
|
|
/* 028B6A74 */ _t70 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6A74 */ cpu->r[11] = rbrew_read32(cpu->mem, _t70);
|
|
L_028B6A78: ; // 0x28b6a78
|
|
/* 028B6A78 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028B6A7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[28]);
|
|
/* 028B6A80 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028B6A84 */ _t71 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6A84 */ _t72 = _t71 & 0x00000001u;
|
|
/* 028B6A84 */ if (_t72) goto L_028B6A88; else goto L_028B69A8;
|
|
L_028B6A88: ; // 0x28b6a88
|
|
/* 028B6A88 */ _t73 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6A88 */ rbrew_write32(cpu->mem, _t73, cpu->r[11]);
|
|
L_028B6A8C: ; // 0x28b6a8c
|
|
/* 028B6A8C */ _t74 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6A8C */ cpu->r[28] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028B6A90 */ _t75 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6A90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028B6A94 */ _t76 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6A94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028B6A98 */ _t77 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6A98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028B6A9C */ cpu->lr = cpu->r[0];
|
|
/* 028B6AA0 */ _t78 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6AA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028B6AA4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6AA8 */ return;
|
|
}
|
|
|
|
// fn_028B6914 @ 0x28b6914
|
|
void Gambit_fn_028B6914(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_028B6914: ; // 0x28b6914
|
|
/* 028B6914 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B6914 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6914 */ cpu->r[1] = _t0;
|
|
/* 028B6918 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6918 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B691C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B691C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 028B6920 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6920 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 028B6924 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6924 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B6928 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6928 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B692C */ cpu->r[29] = cpu->r[3];
|
|
/* 028B6930 */ _t6 = cpu->r[29] + 0x00000008u;
|
|
/* 028B6930 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6934 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6938 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6938 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B6938 */ if (_t8) goto L_028B6A8C; else goto L_028B693C;
|
|
L_028B693C: ; // 0x28b693c
|
|
/* 028B693C */ _t9 = cpu->r[29] + 0x00000014u;
|
|
/* 028B693C */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B6940 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B6944 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6944 */ _t11 = _t10 & 0x00000001u;
|
|
/* 028B6944 */ if (_t11) goto L_028B6948; else goto L_028B6954;
|
|
L_028B6948: ; // 0x28b6948
|
|
/* 028B6948 */ _t12 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6948 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B694C */ _t13 = cpu->r[29] + 0x00000010u;
|
|
/* 028B694C */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
/* 028B6950 */ goto L_028B6A8C;
|
|
L_028B6954: ; // 0x28b6954
|
|
/* 028B6954 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 028B6954 */ cpu->r[6] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B6958 */ _t15 = cpu->r[6] + 0x00000020u;
|
|
/* 028B6958 */ cpu->r[8] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B695C */ _t16 = cpu->r[8] + 0x0000000Cu;
|
|
/* 028B695C */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B6960 */ _t17 = cpu->r[10] + 0x0000005Cu;
|
|
/* 028B6960 */ cpu->r[7] = rbrew_read8(cpu->mem, _t17);
|
|
/* 028B6964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B6968 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6968 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B6968 */ if (_t19) goto L_028B6A8C; else goto L_028B696C;
|
|
L_028B696C: ; // 0x28b696c
|
|
/* 028B696C */ _t20 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B696C */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B6970 */ _t21 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6970 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B6974 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[8]);
|
|
/* 028B6978 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6978 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B6978 */ if (_t23) goto L_028B697C; else goto L_028B698C;
|
|
L_028B697C: ; // 0x28b697c
|
|
/* 028B697C */ _t24 = cpu->r[29] + 0x00000014u;
|
|
/* 028B697C */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B6980 */ cpu->r[9] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 028B6984 */ _t25 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6984 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B6988 */ _t26 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6988 */ rbrew_write32(cpu->mem, _t26, cpu->r[9]);
|
|
L_028B698C: ; // 0x28b698c
|
|
/* 028B698C */ _t27 = cpu->r[12] + 0x00000008u;
|
|
/* 028B698C */ cpu->r[28] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B6990 */ _t28 = cpu->r[12] + 0x00000004u;
|
|
/* 028B6990 */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B6994 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[28]);
|
|
/* 028B6998 */ _t29 = cpu->r[10] + 0x00000028u;
|
|
/* 028B6998 */ cpu->r[5] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B699C */ _t30 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B699C */ _t31 = _t30 & 0x00000001u;
|
|
/* 028B699C */ if (_t31) goto L_028B6A88; else goto L_028B69A0;
|
|
L_028B69A0: ; // 0x28b69a0
|
|
/* 028B69A0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[30] * (int32_t)0x0000001Cu);
|
|
/* 028B69A4 */ cpu->r[31] = cpu->r[5] + cpu->r[0];
|
|
L_028B69A8: ; // 0x28b69a8
|
|
/* 028B69A8 */ _t32 = cpu->r[31] + 0x00000008u;
|
|
/* 028B69A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B69AC */ _t33 = cpu->r[12] + 0x00000014u;
|
|
/* 028B69AC */ cpu->r[6] = rbrew_read32(cpu->mem, _t33);
|
|
/* 028B69B0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[6], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B69B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B69B4 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B69B4 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028B69B4 */ if (_t35) goto L_028B6A08; else goto L_028B69B8;
|
|
L_028B69B8: ; // 0x28b69b8
|
|
/* 028B69B8 */ _t36 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B69B8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t36);
|
|
/* 028B69BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], cpu->r[11]);
|
|
/* 028B69C0 */ _t37 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B69C0 */ _t38 = _t37 & 0x00000001u;
|
|
/* 028B69C0 */ if (_t38) goto L_028B6A50; else goto L_028B69C4;
|
|
L_028B69C4: ; // 0x28b69c4
|
|
/* 028B69C4 */ _t39 = cpu->r[31] + 0x00000010u;
|
|
/* 028B69C4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028B69C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[7]);
|
|
/* 028B69CC */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B69CC */ _t41 = _t40 & 0x00000001u;
|
|
/* 028B69CC */ if (_t41) goto L_028B69D0; else goto L_028B6A5C;
|
|
L_028B69D0: ; // 0x28b69d0
|
|
/* 028B69D0 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B69D4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B69D8 */ Gambit_fn_028B8878(cpu);
|
|
/* 028B69DC */ cpu->r[11] = cpu->r[3];
|
|
/* 028B69DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028B69E0 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B69E0 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028B69E0 */ if (_t43) goto L_028B6A4C; else goto L_028B69E4;
|
|
L_028B69E4: ; // 0x28b69e4
|
|
/* 028B69E4 */ _t44 = cpu->r[11] + 0x00000004u;
|
|
/* 028B69E4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028B69E8 */ _t45 = cpu->r[5] + 0x00000000u;
|
|
/* 028B69E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028B69EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B69F0 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B69F0 */ _t47 = _t46 & 0x00000001u;
|
|
/* 028B69F0 */ if (_t47) goto L_028B6A40; else goto L_028B69F4;
|
|
L_028B69F4: ; // 0x28b69f4
|
|
/* 028B69F4 */ _t48 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B69F4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028B69F8 */ _t49 = cpu->r[5] + 0x00000004u;
|
|
/* 028B69F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B69FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[0]);
|
|
/* 028B6A00 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6A00 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028B6A00 */ if (_t51) goto L_028B6A4C; else goto L_028B6A04;
|
|
L_028B6A04: ; // 0x28b6a04
|
|
/* 028B6A04 */ goto L_028B6A40;
|
|
L_028B6A08: ; // 0x28b6a08
|
|
/* 028B6A08 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6A0C */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6A10 */ Gambit_fn_028B68E8(cpu);
|
|
/* 028B6A14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6A18 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6A18 */ _t53 = _t52 & 0x00000001u;
|
|
/* 028B6A18 */ if (_t53) goto L_028B6A1C; else goto L_028B6A50;
|
|
L_028B6A1C: ; // 0x28b6a1c
|
|
/* 028B6A1C */ _t54 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6A1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 028B6A20 */ _t55 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B6A20 */ cpu->r[5] = rbrew_read32(cpu->mem, _t55);
|
|
/* 028B6A24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[5]);
|
|
/* 028B6A28 */ _t56 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A28 */ _t57 = _t56 & 0x00000001u;
|
|
/* 028B6A28 */ if (_t57) goto L_028B6A2C; else goto L_028B6A50;
|
|
L_028B6A2C: ; // 0x28b6a2c
|
|
/* 028B6A2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[5]);
|
|
/* 028B6A30 */ _t58 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A30 */ _t59 = _t58 & 0x00000001u;
|
|
/* 028B6A30 */ if (_t59) goto L_028B6A50; else goto L_028B6A34;
|
|
L_028B6A34: ; // 0x28b6a34
|
|
/* 028B6A34 */ _t60 = cpu->r[31] + 0x00000010u;
|
|
/* 028B6A34 */ cpu->r[7] = rbrew_read32(cpu->mem, _t60);
|
|
/* 028B6A38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[7]);
|
|
/* 028B6A3C */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A3C */ _t62 = _t61 & 0x00000001u;
|
|
/* 028B6A3C */ if (_t62) goto L_028B6A40; else goto L_028B6A60;
|
|
L_028B6A40: ; // 0x28b6a40
|
|
/* 028B6A40 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6A44 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6A48 */ Gambit_fn_028B6848(cpu);
|
|
L_028B6A4C: ; // 0x28b6a4c
|
|
/* 028B6A4C */ _t63 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6A4C */ cpu->r[11] = rbrew_read32(cpu->mem, _t63);
|
|
L_028B6A50: ; // 0x28b6a50
|
|
/* 028B6A50 */ _t64 = cpu->r[31] + 0x00000010u;
|
|
/* 028B6A50 */ cpu->r[7] = rbrew_read32(cpu->mem, _t64);
|
|
/* 028B6A54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[7]);
|
|
/* 028B6A58 */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A58 */ _t66 = _t65 & 0x00000001u;
|
|
/* 028B6A58 */ if (_t66) goto L_028B6A78; else goto L_028B6A5C;
|
|
L_028B6A5C: ; // 0x28b6a5c
|
|
/* 028B6A5C */ _t67 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6A5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
L_028B6A60: ; // 0x28b6a60
|
|
/* 028B6A60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[7]);
|
|
/* 028B6A64 */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6A64 */ _t69 = _t68 & 0x00000001u;
|
|
/* 028B6A64 */ if (_t69) goto L_028B6A68; else goto L_028B6A78;
|
|
L_028B6A68: ; // 0x28b6a68
|
|
/* 028B6A68 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6A6C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6A70 */ Gambit_fn_028B87D0(cpu);
|
|
/* 028B6A74 */ _t70 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6A74 */ cpu->r[11] = rbrew_read32(cpu->mem, _t70);
|
|
L_028B6A78: ; // 0x28b6a78
|
|
/* 028B6A78 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028B6A7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[28]);
|
|
/* 028B6A80 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 028B6A84 */ _t71 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6A84 */ _t72 = _t71 & 0x00000001u;
|
|
/* 028B6A84 */ if (_t72) goto L_028B6A88; else goto L_028B69A8;
|
|
L_028B6A88: ; // 0x28b6a88
|
|
/* 028B6A88 */ _t73 = cpu->r[29] + 0x00000010u;
|
|
/* 028B6A88 */ rbrew_write32(cpu->mem, _t73, cpu->r[11]);
|
|
L_028B6A8C: ; // 0x28b6a8c
|
|
/* 028B6A8C */ _t74 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6A8C */ cpu->r[28] = rbrew_read32(cpu->mem, _t74);
|
|
/* 028B6A90 */ _t75 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6A90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t75);
|
|
/* 028B6A94 */ _t76 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6A94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t76);
|
|
/* 028B6A98 */ _t77 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6A98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t77);
|
|
/* 028B6A9C */ cpu->lr = cpu->r[0];
|
|
/* 028B6AA0 */ _t78 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6AA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t78);
|
|
/* 028B6AA4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6AA8 */ return;
|
|
}
|
|
|
|
// fn_028B6AAC @ 0x28b6aac
|
|
void Gambit_fn_028B6AAC(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_028B6AAC: ; // 0x28b6aac
|
|
/* 028B6AAC */ cpu->r[0] = cpu->lr;
|
|
/* 028B6AB0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B6AB0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6AB0 */ cpu->r[1] = _t0;
|
|
/* 028B6AB4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6AB4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B6AB8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6AB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B6ABC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6ABC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B6AC0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B6AC4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6AC4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B6AC8 */ _t5 = cpu->r[30] + 0x00000008u;
|
|
/* 028B6AC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6ACC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6AD0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6AD0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B6AD0 */ if (_t7) goto L_028B6B60; else goto L_028B6AD4;
|
|
L_028B6AD4: ; // 0x28b6ad4
|
|
/* 028B6AD4 */ _t8 = cpu->r[30] + 0x00000014u;
|
|
/* 028B6AD4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B6AD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B6ADC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6ADC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B6ADC */ if (_t10) goto L_028B6B60; else goto L_028B6AE0;
|
|
L_028B6AE0: ; // 0x28b6ae0
|
|
/* 028B6AE0 */ _t11 = cpu->r[30] + 0x00000000u;
|
|
/* 028B6AE0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B6AE4 */ _t12 = cpu->r[12] + 0x00000008u;
|
|
/* 028B6AE4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B6AE8 */ _t13 = cpu->r[8] + 0x00000020u;
|
|
/* 028B6AE8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B6AEC */ _t14 = cpu->r[12] + 0x00000004u;
|
|
/* 028B6AEC */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B6AF0 */ _t15 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028B6AF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B6AF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[9]);
|
|
/* 028B6AF8 */ _t16 = cpu->r[12] + 0x00000028u;
|
|
/* 028B6AF8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B6AFC */ _t17 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6AFC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B6AFC */ if (_t18) goto L_028B6B58; else goto L_028B6B00;
|
|
L_028B6B00: ; // 0x28b6b00
|
|
/* 028B6B00 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000001Cu);
|
|
/* 028B6B04 */ cpu->r[29] = cpu->r[8] + cpu->r[10];
|
|
L_028B6B08: ; // 0x28b6b08
|
|
/* 028B6B08 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B6B0C */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6B10 */ Gambit_fn_028B87D0(cpu);
|
|
/* 028B6B14 */ _t19 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6B14 */ cpu->r[11] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B6B18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0xFFFFFFFFu);
|
|
/* 028B6B1C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6B1C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B6B1C */ if (_t21) goto L_028B6B34; else goto L_028B6B20;
|
|
L_028B6B20: ; // 0x28b6b20
|
|
/* 028B6B20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B6B24 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B6B28 */ Gambit_fn_028B68E8(cpu);
|
|
/* 028B6B2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 028B6B30 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6B30 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B6B30 */ if (_t23) goto L_028B6B34; else goto L_028B6B40;
|
|
L_028B6B34: ; // 0x28b6b34
|
|
/* 028B6B34 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B6B38 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6B3C */ Gambit_fn_028B6848(cpu);
|
|
L_028B6B40: ; // 0x28b6b40
|
|
/* 028B6B40 */ _t24 = cpu->r[30] + 0x00000014u;
|
|
/* 028B6B40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B6B44 */ _t25 = cpu->r[12] + 0x00000008u;
|
|
/* 028B6B44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B6B48 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B6B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 028B6B50 */ cpu->r[29] = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B6B54 */ _t26 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6B54 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B6B54 */ if (_t27) goto L_028B6B58; else goto L_028B6B08;
|
|
L_028B6B58: ; // 0x28b6b58
|
|
/* 028B6B58 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B6B5C */ _t28 = cpu->r[30] + 0x00000014u;
|
|
/* 028B6B5C */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
L_028B6B60: ; // 0x28b6b60
|
|
/* 028B6B60 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6B60 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B6B64 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6B64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B6B68 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6B68 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B6B6C */ cpu->lr = cpu->r[0];
|
|
/* 028B6B70 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6B70 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B6B74 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6B78 */ return;
|
|
}
|
|
|
|
// fn_028B6AB0 @ 0x28b6ab0
|
|
void Gambit_fn_028B6AB0(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_028B6AB0: ; // 0x28b6ab0
|
|
/* 028B6AB0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B6AB0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6AB0 */ cpu->r[1] = _t0;
|
|
/* 028B6AB4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6AB4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B6AB8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6AB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B6ABC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6ABC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B6AC0 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B6AC4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6AC4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B6AC8 */ _t5 = cpu->r[30] + 0x00000008u;
|
|
/* 028B6AC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6ACC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6AD0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6AD0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B6AD0 */ if (_t7) goto L_028B6B60; else goto L_028B6AD4;
|
|
L_028B6AD4: ; // 0x28b6ad4
|
|
/* 028B6AD4 */ _t8 = cpu->r[30] + 0x00000014u;
|
|
/* 028B6AD4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B6AD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B6ADC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6ADC */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B6ADC */ if (_t10) goto L_028B6B60; else goto L_028B6AE0;
|
|
L_028B6AE0: ; // 0x28b6ae0
|
|
/* 028B6AE0 */ _t11 = cpu->r[30] + 0x00000000u;
|
|
/* 028B6AE0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B6AE4 */ _t12 = cpu->r[12] + 0x00000008u;
|
|
/* 028B6AE4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B6AE8 */ _t13 = cpu->r[8] + 0x00000020u;
|
|
/* 028B6AE8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B6AEC */ _t14 = cpu->r[12] + 0x00000004u;
|
|
/* 028B6AEC */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B6AF0 */ _t15 = cpu->r[10] + 0x0000000Cu;
|
|
/* 028B6AF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B6AF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[9]);
|
|
/* 028B6AF8 */ _t16 = cpu->r[12] + 0x00000028u;
|
|
/* 028B6AF8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B6AFC */ _t17 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6AFC */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B6AFC */ if (_t18) goto L_028B6B58; else goto L_028B6B00;
|
|
L_028B6B00: ; // 0x28b6b00
|
|
/* 028B6B00 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000001Cu);
|
|
/* 028B6B04 */ cpu->r[29] = cpu->r[8] + cpu->r[10];
|
|
L_028B6B08: ; // 0x28b6b08
|
|
/* 028B6B08 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B6B0C */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6B10 */ Gambit_fn_028B87D0(cpu);
|
|
/* 028B6B14 */ _t19 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B6B14 */ cpu->r[11] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B6B18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0xFFFFFFFFu);
|
|
/* 028B6B1C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6B1C */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B6B1C */ if (_t21) goto L_028B6B34; else goto L_028B6B20;
|
|
L_028B6B20: ; // 0x28b6b20
|
|
/* 028B6B20 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B6B24 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B6B28 */ Gambit_fn_028B68E8(cpu);
|
|
/* 028B6B2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 028B6B30 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6B30 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B6B30 */ if (_t23) goto L_028B6B34; else goto L_028B6B40;
|
|
L_028B6B34: ; // 0x28b6b34
|
|
/* 028B6B34 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B6B38 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6B3C */ Gambit_fn_028B6848(cpu);
|
|
L_028B6B40: ; // 0x28b6b40
|
|
/* 028B6B40 */ _t24 = cpu->r[30] + 0x00000014u;
|
|
/* 028B6B40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B6B44 */ _t25 = cpu->r[12] + 0x00000008u;
|
|
/* 028B6B44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B6B48 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B6B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 028B6B50 */ cpu->r[29] = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B6B54 */ _t26 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6B54 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B6B54 */ if (_t27) goto L_028B6B58; else goto L_028B6B08;
|
|
L_028B6B58: ; // 0x28b6b58
|
|
/* 028B6B58 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B6B5C */ _t28 = cpu->r[30] + 0x00000014u;
|
|
/* 028B6B5C */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
L_028B6B60: ; // 0x28b6b60
|
|
/* 028B6B60 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6B60 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B6B64 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6B64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B6B68 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6B68 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B6B6C */ cpu->lr = cpu->r[0];
|
|
/* 028B6B70 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6B70 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 028B6B74 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6B78 */ return;
|
|
}
|
|
|
|
// fn_028B6B7C @ 0x28b6b7c
|
|
void Gambit_fn_028B6B7C(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;
|
|
|
|
L_028B6B7C: ; // 0x28b6b7c
|
|
/* 028B6B7C */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028B6B7C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6B7C */ cpu->r[1] = _t0;
|
|
/* 028B6B80 */ /* nop */
|
|
/* 028B6B84 */ cpu->r[0] = cpu->lr;
|
|
/* 028B6B88 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028B6B88 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B6B8C */ cpu->r[29] = cpu->r[5];
|
|
/* 028B6B90 */ cpu->r[28] = cpu->r[4];
|
|
/* 028B6B94 */ _t2 = cpu->r[28] + 0x00000004u;
|
|
/* 028B6B94 */ cpu->r[31] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B6B98 */ _t3 = cpu->r[28] + 0x00000008u;
|
|
/* 028B6B98 */ cpu->r[5] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B6B9C */ cpu->r[27] = cpu->r[3];
|
|
/* 028B6BA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[5]);
|
|
/* 028B6BA4 */ cpu->r[30] = cpu->r[6];
|
|
/* 028B6BA8 */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6BA8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B6BA8 */ if (_t5) goto L_028B6BD4; else goto L_028B6BAC;
|
|
L_028B6BAC: ; // 0x28b6bac
|
|
/* 028B6BAC */ cpu->r[26] = 0x00000000u;
|
|
L_028B6BB0: ; // 0x28b6bb0
|
|
/* 028B6BB0 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6BB4 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6BB8 */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6BBC */ _t6 = cpu->r[3] + 0x00000008u;
|
|
/* 028B6BBC */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[26]);
|
|
/* 028B6BC0 */ _t7 = cpu->r[28] + 0x00000008u;
|
|
/* 028B6BC0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B6BC4 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B6BC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[5]);
|
|
/* 028B6BCC */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6BCC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B6BCC */ if (_t9) goto L_028B6BD0; else goto L_028B6BB0;
|
|
L_028B6BD0: ; // 0x28b6bd0
|
|
/* 028B6BD0 */ _t10 = cpu->r[28] + 0x00000004u;
|
|
/* 028B6BD0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
L_028B6BD4: ; // 0x28b6bd4
|
|
/* 028B6BD4 */ _t11 = cpu->r[27] + 0x00000014u;
|
|
/* 028B6BD4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B6BD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B6BDC */ _t12 = cpu->r[30] + 0x00000028u;
|
|
/* 028B6BDC */ cpu->r[26] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B6BE0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6BE0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B6BE0 */ if (_t14) goto L_028B6D44; else goto L_028B6BE4;
|
|
L_028B6BE4: ; // 0x28b6be4
|
|
/* 028B6BE4 */ _t15 = cpu->r[10] + 0x00000004u;
|
|
/* 028B6BE4 */ cpu->r[25] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B6BE8 */ _t16 = cpu->r[10] + 0x00000008u;
|
|
/* 028B6BE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B6BEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[12]);
|
|
/* 028B6BF0 */ _t17 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6BF0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B6BF0 */ if (_t18) goto L_028B6D44; else goto L_028B6BF4;
|
|
L_028B6BF4: ; // 0x28b6bf4
|
|
/* 028B6BF4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)0x0000001Cu);
|
|
/* 028B6BF8 */ cpu->r[30] = cpu->r[26] + cpu->r[0];
|
|
L_028B6BFC: ; // 0x28b6bfc
|
|
/* 028B6BFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[5]);
|
|
/* 028B6C00 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6C00 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B6C00 */ if (_t20) goto L_028B6CEC; else goto L_028B6C04;
|
|
L_028B6C04: ; // 0x28b6c04
|
|
/* 028B6C04 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000001Cu);
|
|
/* 028B6C08 */ cpu->r[24] = cpu->r[26] + cpu->r[4];
|
|
L_028B6C0C: ; // 0x28b6c0c
|
|
/* 028B6C0C */ _t21 = cpu->r[24] + 0x00000016u;
|
|
/* 028B6C0C */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t21);
|
|
/* 028B6C10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6C14 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6C14 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B6C14 */ if (_t23) goto L_028B6CDC; else goto L_028B6C18;
|
|
L_028B6C18: ; // 0x28b6c18
|
|
/* 028B6C18 */ _t24 = cpu->r[24] + 0x00000008u;
|
|
/* 028B6C18 */ cpu->r[11] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B6C1C */ _t25 = cpu->r[30] + 0x00000008u;
|
|
/* 028B6C1C */ cpu->r[6] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B6C20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[6]);
|
|
/* 028B6C24 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6C24 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B6C24 */ if (_t27) goto L_028B6C28; else goto L_028B6CDC;
|
|
L_028B6C28: ; // 0x28b6c28
|
|
/* 028B6C28 */ _t28 = cpu->r[11] + 0x00000014u;
|
|
/* 028B6C28 */ cpu->r[7] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B6C2C */ cpu->r[0] = 0x00000000u;
|
|
/* 028B6C30 */ _t29 = cpu->r[24] + 0x0000000Cu;
|
|
/* 028B6C30 */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B6C34 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6C34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B6C38 */ _t30 = cpu->r[24] + 0x00000014u;
|
|
/* 028B6C38 */ cpu->r[12] = rbrew_read16(cpu->mem, _t30);
|
|
/* 028B6C3C */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6C3C */ _t32 = _t31 & 0x00000001u;
|
|
/* 028B6C3C */ if (_t32) goto L_028B6C58; else goto L_028B6C40;
|
|
L_028B6C40: ; // 0x28b6c40
|
|
/* 028B6C40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[29]);
|
|
/* 028B6C44 */ _t33 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6C44 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028B6C44 */ if (_t34) goto L_028B6C64; else goto L_028B6C48;
|
|
L_028B6C48: ; // 0x28b6c48
|
|
/* 028B6C48 */ _t35 = cpu->r[24] + 0x00000010u;
|
|
/* 028B6C48 */ cpu->r[9] = rbrew_read32(cpu->mem, _t35);
|
|
/* 028B6C4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[9]);
|
|
/* 028B6C50 */ _t36 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6C50 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028B6C50 */ if (_t37) goto L_028B6C54; else goto L_028B6C64;
|
|
L_028B6C54: ; // 0x28b6c54
|
|
/* 028B6C54 */ goto L_028B6C60;
|
|
L_028B6C58: ; // 0x28b6c58
|
|
/* 028B6C58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[29]);
|
|
/* 028B6C5C */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6C5C */ _t39 = _t38 & 0x00000001u;
|
|
/* 028B6C5C */ if (_t39) goto L_028B6C60; else goto L_028B6C64;
|
|
L_028B6C60: ; // 0x28b6c60
|
|
/* 028B6C60 */ cpu->r[0] = 0x00000001u;
|
|
L_028B6C64: ; // 0x28b6c64
|
|
/* 028B6C64 */ cpu->r[11] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6C64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 028B6C68 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6C68 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028B6C68 */ if (_t41) goto L_028B6CDC; else goto L_028B6C6C;
|
|
L_028B6C6C: ; // 0x28b6c6c
|
|
/* 028B6C6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6C70 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6C70 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028B6C70 */ if (_t43) goto L_028B6CDC; else goto L_028B6C74;
|
|
L_028B6C74: ; // 0x28b6c74
|
|
/* 028B6C74 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6C78 */ cpu->r[4] = cpu->r[25];
|
|
/* 028B6C7C */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6C80 */ cpu->r[23] = cpu->r[3];
|
|
/* 028B6C84 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6C88 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6C8C */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6C90 */ _t44 = cpu->r[23] + 0x00000004u;
|
|
/* 028B6C90 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028B6C94 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6C98 */ _t45 = cpu->r[31] + 0x00000004u;
|
|
/* 028B6C98 */ cpu->r[6] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028B6C9C */ _t46 = cpu->r[31] + 0x00000004u;
|
|
/* 028B6C9C */ rbrew_write32(cpu->mem, _t46, cpu->r[0]);
|
|
/* 028B6CA0 */ _t47 = cpu->r[23] + 0x00000004u;
|
|
/* 028B6CA0 */ rbrew_write32(cpu->mem, _t47, cpu->r[6]);
|
|
/* 028B6CA4 */ _t48 = cpu->r[31] + 0x00000004u;
|
|
/* 028B6CA4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t48);
|
|
/* 028B6CA8 */ _t49 = cpu->r[11] + 0x00000000u;
|
|
/* 028B6CA8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B6CAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6CB0 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6CB0 */ _t51 = _t50 & 0x00000001u;
|
|
/* 028B6CB0 */ if (_t51) goto L_028B6CC4; else goto L_028B6CB4;
|
|
L_028B6CB4: ; // 0x28b6cb4
|
|
/* 028B6CB4 */ _t52 = cpu->r[31] + 0x00000000u;
|
|
/* 028B6CB4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028B6CB8 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B6CBC */ _t53 = cpu->r[24] + 0x00000018u;
|
|
/* 028B6CBC */ cpu->r[5] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028B6CC0 */ Gambit_fn_028A57F8(cpu);
|
|
L_028B6CC4: ; // 0x28b6cc4
|
|
/* 028B6CC4 */ _t54 = cpu->r[23] + 0x00000008u;
|
|
/* 028B6CC4 */ cpu->r[8] = rbrew_read8(cpu->mem, _t54);
|
|
/* 028B6CC8 */ _t55 = cpu->r[31] + 0x00000008u;
|
|
/* 028B6CC8 */ rbrew_write8(cpu->mem, _t55, (uint8_t)cpu->r[8]);
|
|
/* 028B6CCC */ _t56 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B6CCC */ cpu->r[9] = rbrew_read32(cpu->mem, _t56);
|
|
/* 028B6CD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 028B6CD4 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6CD4 */ _t58 = _t57 & 0x00000001u;
|
|
/* 028B6CD4 */ if (_t58) goto L_028B6CD8; else goto L_028B6D04;
|
|
L_028B6CD8: ; // 0x28b6cd8
|
|
/* 028B6CD8 */ goto L_028B6D18;
|
|
L_028B6CDC: ; // 0x28b6cdc
|
|
/* 028B6CDC */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B6CE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[5]);
|
|
/* 028B6CE4 */ cpu->r[24] = cpu->r[24] + 0x0000001Cu;
|
|
/* 028B6CE8 */ _t59 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6CE8 */ _t60 = _t59 & 0x00000001u;
|
|
/* 028B6CE8 */ if (_t60) goto L_028B6CEC; else goto L_028B6C0C;
|
|
L_028B6CEC: ; // 0x28b6cec
|
|
/* 028B6CEC */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6CF0 */ cpu->r[4] = cpu->r[25];
|
|
/* 028B6CF4 */ Gambit_fn_028B87D0(cpu);
|
|
/* 028B6CF8 */ _t61 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B6CF8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t61);
|
|
/* 028B6CFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 028B6D00 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6D00 */ _t63 = _t62 & 0x00000001u;
|
|
/* 028B6D00 */ if (_t63) goto L_028B6D18; else goto L_028B6D04;
|
|
L_028B6D04: ; // 0x28b6d04
|
|
/* 028B6D04 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6D08 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6D0C */ Gambit_fn_028B68E8(cpu);
|
|
/* 028B6D10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 028B6D14 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6D14 */ _t65 = _t64 & 0x00000001u;
|
|
/* 028B6D14 */ if (_t65) goto L_028B6D18; else goto L_028B6D24;
|
|
L_028B6D18: ; // 0x28b6d18
|
|
/* 028B6D18 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6D1C */ cpu->r[4] = cpu->r[25];
|
|
/* 028B6D20 */ Gambit_fn_028B6848(cpu);
|
|
L_028B6D24: ; // 0x28b6d24
|
|
/* 028B6D24 */ _t66 = cpu->r[27] + 0x00000014u;
|
|
/* 028B6D24 */ cpu->r[12] = rbrew_read32(cpu->mem, _t66);
|
|
/* 028B6D28 */ _t67 = cpu->r[12] + 0x00000008u;
|
|
/* 028B6D28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t67);
|
|
/* 028B6D2C */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 028B6D30 */ cpu->r[30] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028B6D34 */ _t68 = cpu->r[28] + 0x00000008u;
|
|
/* 028B6D34 */ cpu->r[5] = rbrew_read32(cpu->mem, _t68);
|
|
/* 028B6D38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[4]);
|
|
/* 028B6D3C */ _t69 = cpu->r[28] + 0x00000004u;
|
|
/* 028B6D3C */ cpu->r[31] = rbrew_read32(cpu->mem, _t69);
|
|
/* 028B6D40 */ _t70 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6D40 */ _t71 = _t70 & 0x00000001u;
|
|
/* 028B6D40 */ if (_t71) goto L_028B6D44; else goto L_028B6BFC;
|
|
L_028B6D44: ; // 0x28b6d44
|
|
/* 028B6D44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[5]);
|
|
/* 028B6D48 */ _t72 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6D48 */ _t73 = _t72 & 0x00000001u;
|
|
/* 028B6D48 */ if (_t73) goto L_028B6DEC; else goto L_028B6D4C;
|
|
L_028B6D4C: ; // 0x28b6d4c
|
|
/* 028B6D4C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000001Cu);
|
|
/* 028B6D50 */ cpu->r[30] = cpu->r[26] + cpu->r[0];
|
|
L_028B6D54: ; // 0x28b6d54
|
|
/* 028B6D54 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6D58 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6D5C */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6D60 */ _t74 = cpu->r[3] + 0x00000008u;
|
|
/* 028B6D60 */ cpu->r[0] = rbrew_read8(cpu->mem, _t74);
|
|
/* 028B6D64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B6D68 */ _t75 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6D68 */ _t76 = _t75 & 0x00000001u;
|
|
/* 028B6D68 */ if (_t76) goto L_028B6D6C; else goto L_028B6DD8;
|
|
L_028B6D6C: ; // 0x28b6d6c
|
|
/* 028B6D6C */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6D70 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6D74 */ Gambit_fn_028B68E8(cpu);
|
|
/* 028B6D78 */ cpu->r[0] = cpu->r[3];
|
|
/* 028B6D7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 028B6D80 */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6D80 */ _t78 = _t77 & 0x00000001u;
|
|
/* 028B6D80 */ if (_t78) goto L_028B6DC0; else goto L_028B6D84;
|
|
L_028B6D84: ; // 0x28b6d84
|
|
/* 028B6D84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000002u);
|
|
/* 028B6D88 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6D88 */ _t80 = _t79 & 0x00000001u;
|
|
/* 028B6D88 */ if (_t80) goto L_028B6DD8; else goto L_028B6D8C;
|
|
L_028B6D8C: ; // 0x28b6d8c
|
|
/* 028B6D8C */ _t81 = cpu->r[30] + 0x00000008u;
|
|
/* 028B6D8C */ cpu->r[7] = rbrew_read32(cpu->mem, _t81);
|
|
/* 028B6D90 */ _t82 = cpu->r[7] + 0x00000014u;
|
|
/* 028B6D90 */ cpu->r[8] = rbrew_read32(cpu->mem, _t82);
|
|
/* 028B6D94 */ cpu->r[9] = rbrew_rlwinm(cpu->r[8], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B6D94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B6D98 */ _t83 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B6D98 */ cpu->r[11] = rbrew_read32(cpu->mem, _t83);
|
|
/* 028B6D9C */ _t84 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6D9C */ _t85 = _t84 & 0x00000001u;
|
|
/* 028B6D9C */ if (_t85) goto L_028B6DB8; else goto L_028B6DA0;
|
|
L_028B6DA0: ; // 0x28b6da0
|
|
/* 028B6DA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[29]);
|
|
/* 028B6DA4 */ _t86 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6DA4 */ _t87 = _t86 & 0x00000001u;
|
|
/* 028B6DA4 */ if (_t87) goto L_028B6DD8; else goto L_028B6DA8;
|
|
L_028B6DA8: ; // 0x28b6da8
|
|
/* 028B6DA8 */ _t88 = cpu->r[30] + 0x00000010u;
|
|
/* 028B6DA8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t88);
|
|
/* 028B6DAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[10]);
|
|
/* 028B6DB0 */ _t89 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6DB0 */ _t90 = _t89 & 0x00000001u;
|
|
/* 028B6DB0 */ if (_t90) goto L_028B6DB4; else goto L_028B6DD8;
|
|
L_028B6DB4: ; // 0x28b6db4
|
|
/* 028B6DB4 */ goto L_028B6DC0;
|
|
L_028B6DB8: ; // 0x28b6db8
|
|
/* 028B6DB8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[29]);
|
|
/* 028B6DBC */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6DBC */ _t92 = _t91 & 0x00000001u;
|
|
/* 028B6DBC */ if (_t92) goto L_028B6DC0; else goto L_028B6DD8;
|
|
L_028B6DC0: ; // 0x28b6dc0
|
|
/* 028B6DC0 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6DC4 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6DC8 */ Gambit_fn_028B87D0(cpu);
|
|
/* 028B6DCC */ cpu->r[3] = cpu->r[27];
|
|
/* 028B6DD0 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B6DD4 */ Gambit_fn_028B6848(cpu);
|
|
L_028B6DD8: ; // 0x28b6dd8
|
|
/* 028B6DD8 */ _t93 = cpu->r[28] + 0x00000008u;
|
|
/* 028B6DD8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t93);
|
|
/* 028B6DDC */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B6DE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[12]);
|
|
/* 028B6DE4 */ cpu->r[30] = cpu->r[30] + 0x0000001Cu;
|
|
/* 028B6DE8 */ _t94 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6DE8 */ _t95 = _t94 & 0x00000001u;
|
|
/* 028B6DE8 */ if (_t95) goto L_028B6DEC; else goto L_028B6D54;
|
|
L_028B6DEC: ; // 0x28b6dec
|
|
/* 028B6DEC */ _t96 = cpu->r[27] + 0x00000010u;
|
|
/* 028B6DEC */ rbrew_write32(cpu->mem, _t96, cpu->r[29]);
|
|
/* 028B6DF0 */ _t97 = cpu->r[27] + 0x00000014u;
|
|
/* 028B6DF0 */ rbrew_write32(cpu->mem, _t97, cpu->r[28]);
|
|
/* 028B6DF4 */ _t98 = cpu->r[27] + 0x0000000Cu;
|
|
/* 028B6DF4 */ rbrew_write32(cpu->mem, _t98, cpu->r[29]);
|
|
/* 028B6DF8 */ /* nop */
|
|
/* 028B6DFC */ _t99 = cpu->r[1] + 0x00000034u;
|
|
/* 028B6DFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t99);
|
|
/* 028B6E00 */ cpu->lr = cpu->r[0];
|
|
/* 028B6E04 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028B6E08 */ return;
|
|
}
|
|
|
|
// fn_028B6E10 @ 0x28b6e10
|
|
void Gambit_fn_028B6E10(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_028B6E10: ; // 0x28b6e10
|
|
/* 028B6E10 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B6E10 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6E10 */ cpu->r[1] = _t0;
|
|
/* 028B6E14 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6E14 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B6E18 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6E18 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B6E1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6E1C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B6E20 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6E20 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B6E24 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B6E28 */ cpu->r[0] = cpu->r[4];
|
|
/* 028B6E2C */ _t5 = cpu->r[29] + 0x00000008u;
|
|
/* 028B6E2C */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6E30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B6E34 */ cpu->r[30] = cpu->r[5];
|
|
/* 028B6E38 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6E38 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B6E38 */ if (_t7) goto L_028B6EA0; else goto L_028B6E3C;
|
|
L_028B6E3C: ; // 0x28b6e3c
|
|
/* 028B6E3C */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 028B6E3C */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B6E40 */ _t9 = cpu->r[11] + 0x00000020u;
|
|
/* 028B6E40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B6E44 */ _t10 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B6E44 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B6E48 */ cpu->r[6] = 0x00000000u;
|
|
/* 028B6E4C */ cpu->r[5] = cpu->r[0];
|
|
/* 028B6E50 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6E54 */ Gambit_fn_028AE2B4(cpu);
|
|
/* 028B6E58 */ cpu->r[4] = cpu->r[3];
|
|
/* 028B6E58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 028B6E5C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6E5C */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B6E5C */ if (_t12) goto L_028B6E60; else goto L_028B6E84;
|
|
L_028B6E60: ; // 0x28b6e60
|
|
/* 028B6E60 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6E64 */ Gambit_fn_028B6AAC(cpu);
|
|
/* 028B6E68 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6E68 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B6E6C */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6E6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B6E70 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6E70 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B6E74 */ cpu->lr = cpu->r[0];
|
|
/* 028B6E78 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6E78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B6E7C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6E80 */ return;
|
|
L_028B6E84: ; // 0x28b6e84
|
|
/* 028B6E84 */ _t17 = cpu->r[29] + 0x00000014u;
|
|
/* 028B6E84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B6E88 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[4]);
|
|
/* 028B6E8C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6E8C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B6E8C */ if (_t19) goto L_028B6EA0; else goto L_028B6E90;
|
|
L_028B6E90: ; // 0x28b6e90
|
|
/* 028B6E90 */ cpu->r[6] = cpu->r[31];
|
|
/* 028B6E94 */ cpu->r[5] = cpu->r[30];
|
|
/* 028B6E98 */ cpu->r[3] = cpu->r[29];
|
|
/* 028B6E9C */ Gambit_fn_028B6B7C(cpu);
|
|
L_028B6EA0: ; // 0x28b6ea0
|
|
/* 028B6EA0 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6EA0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B6EA4 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6EA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B6EA8 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6EA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B6EAC */ cpu->lr = cpu->r[0];
|
|
/* 028B6EB0 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6EB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B6EB4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6EB8 */ return;
|
|
}
|
|
|
|
// fn_028B6EBC @ 0x28b6ebc
|
|
void Gambit_fn_028B6EBC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028B6EBC: ; // 0x28b6ebc
|
|
/* 028B6EBC */ cpu->r[0] = cpu->lr;
|
|
/* 028B6EC0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B6EC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6EC0 */ cpu->r[1] = _t0;
|
|
/* 028B6EC4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6EC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B6EC8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6EC8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B6ECC */ cpu->r[30] = cpu->r[3];
|
|
/* 028B6ED0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6ED0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B6ED4 */ _t4 = cpu->r[30] + 0x00000000u;
|
|
/* 028B6ED4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B6ED8 */ _t5 = cpu->r[12] + 0x00000020u;
|
|
/* 028B6ED8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6EDC */ _t6 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028B6EDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6EE0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B6EE4 */ Gambit_fn_028AE3D4(cpu);
|
|
/* 028B6EE8 */ _t7 = cpu->r[3] + 0x00000010u;
|
|
/* 028B6EE8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B6EEC */ cpu->r[4] = 0x00000002u;
|
|
/* 028B6EF0 */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 028B6EF0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B6EF4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B6EF8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B6EFC */ Gambit_fn_028B872C(cpu);
|
|
/* 028B6F00 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6F00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B6F04 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6F04 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B6F08 */ cpu->lr = cpu->r[0];
|
|
/* 028B6F0C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6F0C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B6F10 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B6F14 */ return;
|
|
}
|
|
|
|
// fn_028B6EC0 @ 0x28b6ec0
|
|
void Gambit_fn_028B6EC0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028B6EC0: ; // 0x28b6ec0
|
|
/* 028B6EC0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B6EC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6EC0 */ cpu->r[1] = _t0;
|
|
/* 028B6EC4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6EC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B6EC8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6EC8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B6ECC */ cpu->r[30] = cpu->r[3];
|
|
/* 028B6ED0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6ED0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B6ED4 */ _t4 = cpu->r[30] + 0x00000000u;
|
|
/* 028B6ED4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B6ED8 */ _t5 = cpu->r[12] + 0x00000020u;
|
|
/* 028B6ED8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6EDC */ _t6 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028B6EDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6EE0 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B6EE4 */ Gambit_fn_028AE3D4(cpu);
|
|
/* 028B6EE8 */ _t7 = cpu->r[3] + 0x00000010u;
|
|
/* 028B6EE8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B6EEC */ cpu->r[4] = 0x00000002u;
|
|
/* 028B6EF0 */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 028B6EF0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B6EF4 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B6EF8 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B6EFC */ Gambit_fn_028B872C(cpu);
|
|
/* 028B6F00 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6F00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B6F04 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028B6F04 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B6F08 */ cpu->lr = cpu->r[0];
|
|
/* 028B6F0C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6F0C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B6F10 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B6F14 */ return;
|
|
}
|
|
|
|
// fn_028B6F18 @ 0x28b6f18
|
|
void Gambit_fn_028B6F18(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_028B6F18: ; // 0x28b6f18
|
|
/* 028B6F18 */ cpu->r[0] = cpu->lr;
|
|
/* 028B6F1C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B6F1C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6F1C */ cpu->r[1] = _t0;
|
|
/* 028B6F20 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6F20 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B6F24 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6F24 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B6F28 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6F28 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B6F2C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6F30 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6F30 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B6F34 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028B6F34 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6F38 */ _t6 = cpu->r[11] + 0x00000020u;
|
|
/* 028B6F38 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6F3C */ _t7 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B6F3C */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B6F40 */ _t8 = cpu->r[8] + 0x0000005Cu;
|
|
/* 028B6F40 */ cpu->r[10] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028B6F44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B6F48 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6F48 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B6F48 */ if (_t10) goto L_028B6FB8; else goto L_028B6F4C;
|
|
L_028B6F4C: ; // 0x28b6f4c
|
|
/* 028B6F4C */ _t11 = cpu->r[8] + 0x00000008u;
|
|
/* 028B6F4C */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B6F50 */ _t12 = cpu->r[12] + 0x00000024u;
|
|
/* 028B6F50 */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B6F54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B6F58 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B6F5C */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6F5C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B6F5C */ if (_t14) goto L_028B6F60; else goto L_028B6FB8;
|
|
L_028B6F60: ; // 0x28b6f60
|
|
/* 028B6F60 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6F64 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6F68 */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6F70 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6F70 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B6F70 */ if (_t16) goto L_028B6FAC; else goto L_028B6F74;
|
|
L_028B6F74: ; // 0x28b6f74
|
|
/* 028B6F74 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6F78 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6F7C */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6F80 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028B6F80 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B6F84 */ _t18 = cpu->r[11] + 0x00000000u;
|
|
/* 028B6F84 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B6F88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B6F8C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6F8C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B6F8C */ if (_t20) goto L_028B6FA0; else goto L_028B6F90;
|
|
L_028B6F90: ; // 0x28b6f90
|
|
/* 028B6F90 */ _t21 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028B6F90 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B6F94 */ _t22 = cpu->r[11] + 0x00000004u;
|
|
/* 028B6F94 */ cpu->r[10] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B6F98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 028B6F9C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6F9C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028B6F9C */ if (_t24) goto L_028B6FAC; else goto L_028B6FA0;
|
|
L_028B6FA0: ; // 0x28b6fa0
|
|
/* 028B6FA0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6FA4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6FA8 */ Gambit_fn_028B6EBC(cpu);
|
|
L_028B6FAC: ; // 0x28b6fac
|
|
/* 028B6FAC */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028B6FAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B6FB0 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028B6FB4 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6FB4 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028B6FB4 */ if (_t26) goto L_028B6FB8; else goto L_028B6F60;
|
|
L_028B6FB8: ; // 0x28b6fb8
|
|
/* 028B6FB8 */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6FB8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B6FBC */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6FBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B6FC0 */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6FC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B6FC4 */ cpu->lr = cpu->r[0];
|
|
/* 028B6FC8 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6FC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B6FCC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6FD0 */ return;
|
|
}
|
|
|
|
// fn_028B6F1C @ 0x28b6f1c
|
|
void Gambit_fn_028B6F1C(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_028B6F1C: ; // 0x28b6f1c
|
|
/* 028B6F1C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B6F1C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6F1C */ cpu->r[1] = _t0;
|
|
/* 028B6F20 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6F20 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B6F24 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6F24 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B6F28 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6F28 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 028B6F2C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B6F30 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6F30 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B6F34 */ _t5 = cpu->r[31] + 0x00000000u;
|
|
/* 028B6F34 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B6F38 */ _t6 = cpu->r[11] + 0x00000020u;
|
|
/* 028B6F38 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B6F3C */ _t7 = cpu->r[12] + 0x0000000Cu;
|
|
/* 028B6F3C */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B6F40 */ _t8 = cpu->r[8] + 0x0000005Cu;
|
|
/* 028B6F40 */ cpu->r[10] = rbrew_read8(cpu->mem, _t8);
|
|
/* 028B6F44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 028B6F48 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6F48 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B6F48 */ if (_t10) goto L_028B6FB8; else goto L_028B6F4C;
|
|
L_028B6F4C: ; // 0x28b6f4c
|
|
/* 028B6F4C */ _t11 = cpu->r[8] + 0x00000008u;
|
|
/* 028B6F4C */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B6F50 */ _t12 = cpu->r[12] + 0x00000024u;
|
|
/* 028B6F50 */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B6F54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B6F58 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B6F5C */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B6F5C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B6F5C */ if (_t14) goto L_028B6F60; else goto L_028B6FB8;
|
|
L_028B6F60: ; // 0x28b6f60
|
|
/* 028B6F60 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6F64 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6F68 */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6F6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B6F70 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6F70 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B6F70 */ if (_t16) goto L_028B6FAC; else goto L_028B6F74;
|
|
L_028B6F74: ; // 0x28b6f74
|
|
/* 028B6F74 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6F78 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6F7C */ Gambit_fn_028B8878(cpu);
|
|
/* 028B6F80 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 028B6F80 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B6F84 */ _t18 = cpu->r[11] + 0x00000000u;
|
|
/* 028B6F84 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B6F88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B6F8C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6F8C */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B6F8C */ if (_t20) goto L_028B6FA0; else goto L_028B6F90;
|
|
L_028B6F90: ; // 0x28b6f90
|
|
/* 028B6F90 */ _t21 = cpu->r[9] + 0x0000000Cu;
|
|
/* 028B6F90 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B6F94 */ _t22 = cpu->r[11] + 0x00000004u;
|
|
/* 028B6F94 */ cpu->r[10] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B6F98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 028B6F9C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6F9C */ _t24 = _t23 & 0x00000001u;
|
|
/* 028B6F9C */ if (_t24) goto L_028B6FAC; else goto L_028B6FA0;
|
|
L_028B6FA0: ; // 0x28b6fa0
|
|
/* 028B6FA0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B6FA4 */ cpu->r[4] = cpu->r[30];
|
|
/* 028B6FA8 */ Gambit_fn_028B6EBC(cpu);
|
|
L_028B6FAC: ; // 0x28b6fac
|
|
/* 028B6FAC */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 028B6FAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B6FB0 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028B6FB4 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B6FB4 */ _t26 = _t25 & 0x00000001u;
|
|
/* 028B6FB4 */ if (_t26) goto L_028B6FB8; else goto L_028B6F60;
|
|
L_028B6FB8: ; // 0x28b6fb8
|
|
/* 028B6FB8 */ _t27 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B6FB8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B6FBC */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B6FBC */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B6FC0 */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 028B6FC0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B6FC4 */ cpu->lr = cpu->r[0];
|
|
/* 028B6FC8 */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 028B6FC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B6FCC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B6FD0 */ return;
|
|
}
|
|
|
|
// fn_028B6FD4 @ 0x28b6fd4
|
|
void Gambit_fn_028B6FD4(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_028B6FD4: ; // 0x28b6fd4
|
|
/* 028B6FD4 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B6FD4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B6FD4 */ cpu->r[1] = _t0;
|
|
/* 028B6FD8 */ /* nop */
|
|
/* 028B6FDC */ cpu->r[0] = cpu->lr;
|
|
/* 028B6FE0 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B6FE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B6FE4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B6FE8 */ _t2 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B6FE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B6FEC */ cpu->r[26] = 0x00000000u;
|
|
/* 028B6FF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[0]);
|
|
/* 028B6FF4 */ cpu->r[31] = 0x00000001u;
|
|
/* 028B6FF8 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B6FF8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B6FF8 */ if (_t4) goto L_028B6FFC; else goto L_028B708C;
|
|
L_028B6FFC: ; // 0x28b6ffc
|
|
/* 028B6FFC */ cpu->r[27] = 0x00000000u;
|
|
/* 028B7000 */ cpu->r[28] = cpu->r[27];
|
|
L_028B7004: ; // 0x28b7004
|
|
/* 028B7004 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[0]);
|
|
/* 028B7008 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B700C */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B700C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B700C */ if (_t6) goto L_028B7010; else goto L_028B7018;
|
|
L_028B7010: ; // 0x28b7010
|
|
/* 028B7010 */ _t7 = cpu->r[29] + 0x00000024u;
|
|
/* 028B7010 */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B7014 */ _t8 = cpu->r[10] + cpu->r[27];
|
|
/* 028B7014 */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
L_028B7018: ; // 0x28b7018
|
|
/* 028B7018 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B701C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B701C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B701C */ if (_t10) goto L_028B7074; else goto L_028B7020;
|
|
L_028B7020: ; // 0x28b7020
|
|
/* 028B7020 */ _t11 = cpu->r[30] + 0x00000050u;
|
|
/* 028B7020 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7024 */ _t12 = cpu->r[11] + 0x0000003Cu;
|
|
/* 028B7024 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B7028 */ cpu->ctr = cpu->r[0];
|
|
/* 028B702C */ cpu->r[3] = cpu->r[30];
|
|
/* 028B7030 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7034 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7038 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7038 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B7038 */ if (_t14) goto L_028B706C; else goto L_028B703C;
|
|
L_028B703C: ; // 0x28b703c
|
|
/* 028B703C */ _t15 = cpu->r[30] + 0x00000050u;
|
|
/* 028B703C */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B7040 */ _t16 = cpu->r[12] + 0x00000034u;
|
|
/* 028B7040 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B7044 */ cpu->ctr = cpu->r[10];
|
|
/* 028B7048 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B704C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7050 */ _t17 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B7050 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B7054 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[0]);
|
|
/* 028B7058 */ _t18 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7058 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B7058 */ if (_t19) goto L_028B705C; else goto L_028B7074;
|
|
L_028B705C: ; // 0x28b705c
|
|
/* 028B705C */ _t20 = cpu->r[29] + 0x00000024u;
|
|
/* 028B705C */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B7060 */ _t21 = cpu->r[12] + cpu->r[27];
|
|
/* 028B7060 */ rbrew_write32(cpu->mem, _t21, cpu->r[28]);
|
|
/* 028B7064 */ _t22 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B7064 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B7068 */ goto L_028B7074;
|
|
L_028B706C: ; // 0x28b706c
|
|
/* 028B706C */ _t23 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B706C */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B7070 */ cpu->r[31] = 0x00000000u;
|
|
L_028B7074: ; // 0x28b7074
|
|
/* 028B7074 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 028B7078 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[0]);
|
|
/* 028B707C */ cpu->r[27] = cpu->r[27] + 0x00000004u;
|
|
/* 028B7080 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7080 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028B7080 */ if (_t25) goto L_028B7004; else goto L_028B7084;
|
|
L_028B7084: ; // 0x28b7084
|
|
/* 028B7084 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B7088 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7088 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B7088 */ if (_t27) goto L_028B70D8; else goto L_028B708C;
|
|
L_028B708C: ; // 0x28b708c
|
|
/* 028B708C */ _t28 = cpu->r[29] + 0x00000014u;
|
|
/* 028B708C */ cpu->r[9] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B7090 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B7094 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B7098 */ _t29 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B7098 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028B709C */ _t30 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B709C */ _t31 = _t30 & 0x00000001u;
|
|
/* 028B709C */ if (_t31) goto L_028B70B0; else goto L_028B70A0;
|
|
L_028B70A0: ; // 0x28b70a0
|
|
/* 028B70A0 */ _t32 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B70A0 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028B70A0 */ if (_t33) goto L_028B70A4; else goto L_028B70D4;
|
|
L_028B70A4: ; // 0x28b70a4
|
|
/* 028B70A4 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028B70A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B70A8 */ _t34 = cpu->r[29] + 0x00000014u;
|
|
/* 028B70A8 */ rbrew_write32(cpu->mem, _t34, cpu->r[9]);
|
|
/* 028B70AC */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B70AC */ _t36 = _t35 & 0x00000001u;
|
|
/* 028B70AC */ if (_t36) goto L_028B70D4; else goto L_028B70B0;
|
|
L_028B70B0: ; // 0x28b70b0
|
|
/* 028B70B0 */ _t37 = cpu->r[29] + 0x00000050u;
|
|
/* 028B70B0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t37);
|
|
/* 028B70B4 */ _t38 = cpu->r[6] + 0x0000002Cu;
|
|
/* 028B70B4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B70B8 */ cpu->ctr = cpu->r[7];
|
|
/* 028B70BC */ cpu->r[3] = cpu->r[29];
|
|
/* 028B70C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B70C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B70C8 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B70C8 */ _t40 = _t39 & 0x00000001u;
|
|
/* 028B70C8 */ if (_t40) goto L_028B70D8; else goto L_028B70CC;
|
|
L_028B70CC: ; // 0x28b70cc
|
|
/* 028B70CC */ cpu->r[31] = 0x00000000u;
|
|
/* 028B70D0 */ goto L_028B70D8;
|
|
L_028B70D4: ; // 0x28b70d4
|
|
/* 028B70D4 */ cpu->r[31] = 0x00000001u;
|
|
L_028B70D8: ; // 0x28b70d8
|
|
/* 028B70D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B70DC */ /* nop */
|
|
/* 028B70E0 */ _t41 = cpu->r[1] + 0x00000024u;
|
|
/* 028B70E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B70E4 */ cpu->lr = cpu->r[0];
|
|
/* 028B70E8 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B70EC */ return;
|
|
}
|
|
|
|
// fn_028B70F0 @ 0x28b70f0
|
|
void Gambit_fn_028B70F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B70F0: ; // 0x28b70f0
|
|
/* 028B70F0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B70F4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B70F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B70F4 */ cpu->r[1] = _t0;
|
|
/* 028B70F8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B70F8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B70FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7100 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7100 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B7104 */ Gambit_fn_028A5920(cpu);
|
|
/* 028B7108 */ _t3 = cpu->r[31] + 0x00000010u;
|
|
/* 028B7108 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B710C */ Gambit_fn_028A8CA4(cpu);
|
|
/* 028B7110 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B7114 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7114 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B7118 */ cpu->lr = cpu->r[0];
|
|
/* 028B711C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7120 */ cpu->r[3] = 0x00000001u;
|
|
/* 028B7124 */ return;
|
|
}
|
|
|
|
// fn_028B70F4 @ 0x28b70f4
|
|
void Gambit_fn_028B70F4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B70F4: ; // 0x28b70f4
|
|
/* 028B70F4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B70F4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B70F4 */ cpu->r[1] = _t0;
|
|
/* 028B70F8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B70F8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B70FC */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7100 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7100 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B7104 */ Gambit_fn_028A5920(cpu);
|
|
/* 028B7108 */ _t3 = cpu->r[31] + 0x00000010u;
|
|
/* 028B7108 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B710C */ Gambit_fn_028A8CA4(cpu);
|
|
/* 028B7110 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B7114 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7114 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B7118 */ cpu->lr = cpu->r[0];
|
|
/* 028B711C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7120 */ cpu->r[3] = 0x00000001u;
|
|
/* 028B7124 */ return;
|
|
}
|
|
|
|
// fn_028B7128 @ 0x28b7128
|
|
void Gambit_fn_028B7128(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_028B7128: ; // 0x28b7128
|
|
/* 028B7128 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028B7128 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7128 */ cpu->r[1] = _t0;
|
|
/* 028B712C */ /* nop */
|
|
/* 028B7130 */ cpu->r[0] = cpu->lr;
|
|
/* 028B7134 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028B7134 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B7138 */ cpu->r[22] = cpu->r[3];
|
|
/* 028B713C */ _t2 = cpu->r[22] + 0x00000010u;
|
|
/* 028B713C */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B7140 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B7144 */ Gambit_fn_028A8CA4(cpu);
|
|
/* 028B7148 */ _t3 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7148 */ cpu->r[23] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B714C */ _t4 = cpu->r[22] + 0x0000000Cu;
|
|
/* 028B714C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B7150 */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 028B7150 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B7154 */ _t6 = cpu->r[12] + 0x00000020u;
|
|
/* 028B7154 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B7158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[23]);
|
|
/* 028B715C */ _t7 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B715C */ cpu->r[24] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B7160 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B7160 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B7160 */ if (_t9) goto L_028B7214; else goto L_028B7164;
|
|
L_028B7164: ; // 0x28b7164
|
|
/* 028B7164 */ cpu->r[29] = 0x10140000u;
|
|
/* 028B7168 */ cpu->r[27] = 0x00000000u;
|
|
L_028B716C: ; // 0x28b716c
|
|
/* 028B716C */ cpu->r[3] = cpu->r[24];
|
|
/* 028B7170 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B7174 */ Gambit_fn_028AD640(cpu);
|
|
/* 028B7178 */ _t10 = cpu->r[22] + 0x00000010u;
|
|
/* 028B7178 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B717C */ cpu->r[25] = cpu->r[3];
|
|
/* 028B7180 */ _t11 = cpu->r[22] + 0x0000000Cu;
|
|
/* 028B7180 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7184 */ Gambit_fn_028ACD90(cpu);
|
|
/* 028B7188 */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028B7188 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B718C */ _t13 = cpu->r[9] + 0x00000014u;
|
|
/* 028B718C */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B7190 */ cpu->ctr = cpu->r[10];
|
|
/* 028B7194 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B7198 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B719C */ _t14 = cpu->r[22] + 0x0000000Cu;
|
|
/* 028B719C */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B71A0 */ cpu->r[4] = cpu->r[25];
|
|
/* 028B71A4 */ _t15 = cpu->r[28] + 0x00000000u;
|
|
/* 028B71A4 */ cpu->r[26] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B71A8 */ Gambit_fn_028ACD90(cpu);
|
|
/* 028B71AC */ _t16 = cpu->r[3] + 0x00000004u;
|
|
/* 028B71AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B71B0 */ _t17 = cpu->r[11] + 0x00000014u;
|
|
/* 028B71B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B71B4 */ cpu->ctr = cpu->r[0];
|
|
/* 028B71B8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B71BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B71C0 */ _t18 = cpu->r[22] + 0x00000010u;
|
|
/* 028B71C0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B71C4 */ _t19 = cpu->r[25] + 0x00000000u;
|
|
/* 028B71C4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B71C8 */ _t20 = cpu->r[8] + 0x00000000u;
|
|
/* 028B71C8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B71CC */ _t21 = cpu->r[28] + 0x00000000u;
|
|
/* 028B71CC */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B71D0 */ _t22 = cpu->r[22] + 0x0000004Cu;
|
|
/* 028B71D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B71D4 */ cpu->r[5] = cpu->r[29] + 0xFFFF8B7Cu;
|
|
/* 028B71D8 */ _t23 = cpu->r[22] + 0x0000000Cu;
|
|
/* 028B71D8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B71DC */ cpu->r[10] = cpu->r[27];
|
|
/* 028B71E0 */ cpu->r[6] = cpu->r[26];
|
|
/* 028B71E4 */ _t24 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B71E4 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028B71E4 */ if (_t25) goto L_028B71E8; // else: addr-0 trap, fall-through
|
|
L_028B71E8: ; // 0x28b71e8
|
|
/* 028B71E8 */ Gambit_fn_028AD24C(cpu);
|
|
/* 028B71EC */ cpu->r[3] = cpu->r[22];
|
|
/* 028B71F0 */ cpu->r[4] = cpu->r[25];
|
|
/* 028B71F4 */ Gambit_fn_028A5A44(cpu);
|
|
/* 028B71F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B71FC */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B71FC */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B71FC */ if (_t27) goto L_028B7204; else goto L_028B7200;
|
|
L_028B7200: ; // 0x28b7200
|
|
/* 028B7200 */ cpu->r[30] = 0x00000001u;
|
|
L_028B7204: ; // 0x28b7204
|
|
/* 028B7204 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B7208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[23]);
|
|
/* 028B720C */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 028B7210 */ _t28 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B7210 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028B7210 */ if (_t29) goto L_028B7214; else goto L_028B716C;
|
|
L_028B7214: ; // 0x28b7214
|
|
/* 028B7214 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B7218 */ /* nop */
|
|
/* 028B721C */ _t30 = cpu->r[1] + 0x00000034u;
|
|
/* 028B721C */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B7220 */ cpu->lr = cpu->r[0];
|
|
/* 028B7224 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028B7228 */ return;
|
|
}
|
|
|
|
// fn_028B722C @ 0x28b722c
|
|
void Gambit_fn_028B722C(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_028B7128: ; // 0x28b7128
|
|
/* 028B7128 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 028B7128 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7128 */ cpu->r[1] = _t0;
|
|
/* 028B712C */ /* nop */
|
|
/* 028B7130 */ cpu->r[0] = cpu->lr;
|
|
/* 028B7134 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 028B7134 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B7138 */ cpu->r[22] = cpu->r[3];
|
|
/* 028B713C */ _t2 = cpu->r[22] + 0x00000010u;
|
|
/* 028B713C */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B7140 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B7144 */ Gambit_fn_028A8CA4(cpu);
|
|
/* 028B7148 */ _t3 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7148 */ cpu->r[23] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B714C */ _t4 = cpu->r[22] + 0x0000000Cu;
|
|
/* 028B714C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B7150 */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 028B7150 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B7154 */ _t6 = cpu->r[12] + 0x00000020u;
|
|
/* 028B7154 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B7158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[23]);
|
|
/* 028B715C */ _t7 = cpu->r[7] + 0x0000000Cu;
|
|
/* 028B715C */ cpu->r[24] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B7160 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B7160 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B7160 */ if (_t9) goto L_028B7214; else goto L_028B7164;
|
|
L_028B7164: ; // 0x28b7164
|
|
/* 028B7164 */ cpu->r[29] = 0x10140000u;
|
|
/* 028B7168 */ cpu->r[27] = 0x00000000u;
|
|
L_028B716C: ; // 0x28b716c
|
|
/* 028B716C */ cpu->r[3] = cpu->r[24];
|
|
/* 028B7170 */ cpu->r[4] = cpu->r[31];
|
|
/* 028B7174 */ Gambit_fn_028AD640(cpu);
|
|
/* 028B7178 */ _t10 = cpu->r[22] + 0x00000010u;
|
|
/* 028B7178 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B717C */ cpu->r[25] = cpu->r[3];
|
|
/* 028B7180 */ _t11 = cpu->r[22] + 0x0000000Cu;
|
|
/* 028B7180 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7184 */ Gambit_fn_028ACD90(cpu);
|
|
/* 028B7188 */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 028B7188 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B718C */ _t13 = cpu->r[9] + 0x00000014u;
|
|
/* 028B718C */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B7190 */ cpu->ctr = cpu->r[10];
|
|
/* 028B7194 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B7198 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B719C */ _t14 = cpu->r[22] + 0x0000000Cu;
|
|
/* 028B719C */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B71A0 */ cpu->r[4] = cpu->r[25];
|
|
/* 028B71A4 */ _t15 = cpu->r[28] + 0x00000000u;
|
|
/* 028B71A4 */ cpu->r[26] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B71A8 */ Gambit_fn_028ACD90(cpu);
|
|
/* 028B71AC */ _t16 = cpu->r[3] + 0x00000004u;
|
|
/* 028B71AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B71B0 */ _t17 = cpu->r[11] + 0x00000014u;
|
|
/* 028B71B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B71B4 */ cpu->ctr = cpu->r[0];
|
|
/* 028B71B8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B71BC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B71C0 */ _t18 = cpu->r[22] + 0x00000010u;
|
|
/* 028B71C0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B71C4 */ _t19 = cpu->r[25] + 0x00000000u;
|
|
/* 028B71C4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B71C8 */ _t20 = cpu->r[8] + 0x00000000u;
|
|
/* 028B71C8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B71CC */ _t21 = cpu->r[28] + 0x00000000u;
|
|
/* 028B71CC */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 028B71D0 */ _t22 = cpu->r[22] + 0x0000004Cu;
|
|
/* 028B71D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B71D4 */ cpu->r[5] = cpu->r[29] + 0xFFFF8B7Cu;
|
|
/* 028B71D8 */ _t23 = cpu->r[22] + 0x0000000Cu;
|
|
/* 028B71D8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B71DC */ cpu->r[10] = cpu->r[27];
|
|
/* 028B71E0 */ cpu->r[6] = cpu->r[26];
|
|
/* 028B71E4 */ _t24 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 028B71E4 */ _t25 = _t24 & 0x00000001u;
|
|
/* 028B71E4 */ if (_t25) goto L_028B71E8; // else: addr-0 trap, fall-through
|
|
L_028B71E8: ; // 0x28b71e8
|
|
/* 028B71E8 */ Gambit_fn_028AD24C(cpu);
|
|
/* 028B71EC */ cpu->r[3] = cpu->r[22];
|
|
/* 028B71F0 */ cpu->r[4] = cpu->r[25];
|
|
/* 028B71F4 */ Gambit_fn_028A5A44(cpu);
|
|
/* 028B71F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B71FC */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B71FC */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B71FC */ if (_t27) goto L_028B7204; else goto L_028B7200;
|
|
L_028B7200: ; // 0x28b7200
|
|
/* 028B7200 */ cpu->r[30] = 0x00000001u;
|
|
L_028B7204: ; // 0x28b7204
|
|
/* 028B7204 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B7208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[23]);
|
|
/* 028B720C */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 028B7210 */ _t28 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 028B7210 */ _t29 = _t28 & 0x00000001u;
|
|
/* 028B7210 */ if (_t29) goto L_028B7214; else goto L_028B716C;
|
|
L_028B7214: ; // 0x28b7214
|
|
/* 028B7214 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B7218 */ /* nop */
|
|
/* 028B721C */ _t30 = cpu->r[1] + 0x00000034u;
|
|
/* 028B721C */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 028B7220 */ cpu->lr = cpu->r[0];
|
|
/* 028B7224 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 028B7228 */ return;
|
|
L_028B722C: ; // 0x28b722c
|
|
/* 028B722C */ goto L_028B7128;
|
|
}
|
|
|
|
// fn_028B7230 @ 0x28b7230
|
|
void Gambit_fn_028B7230(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_028B7230: ; // 0x28b7230
|
|
/* 028B7230 */ cpu->r[0] = cpu->lr;
|
|
/* 028B7234 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B7234 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7234 */ cpu->r[1] = _t0;
|
|
/* 028B7238 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7238 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B723C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B723C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B7240 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7240 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B7244 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7244 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B7248 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B724C */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B724C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B7250 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B7254 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028B7258 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7258 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B7258 */ if (_t7) goto L_028B725C; else goto L_028B72AC;
|
|
L_028B725C: ; // 0x28b725c
|
|
/* 028B725C */ cpu->r[31] = 0x00000000u;
|
|
L_028B7260: ; // 0x28b7260
|
|
/* 028B7260 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028B7264 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7264 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B7264 */ if (_t9) goto L_028B7268; else goto L_028B729C;
|
|
L_028B7268: ; // 0x28b7268
|
|
/* 028B7268 */ _t10 = cpu->r[29] + 0x00000024u;
|
|
/* 028B7268 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B726C */ _t11 = cpu->r[9] + cpu->r[31];
|
|
/* 028B726C */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7270 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B7274 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7274 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B7274 */ if (_t13) goto L_028B729C; else goto L_028B7278;
|
|
L_028B7278: ; // 0x28b7278
|
|
/* 028B7278 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028B727C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B7280 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7280 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B7280 */ if (_t15) goto L_028B7284; else goto L_028B7288;
|
|
L_028B7284: ; // 0x28b7284
|
|
/* 028B7284 */ cpu->r[3] = cpu->r[8];
|
|
L_028B7288: ; // 0x28b7288
|
|
/* 028B7288 */ _t16 = cpu->r[3] + 0x00000050u;
|
|
/* 028B7288 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B728C */ _t17 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B728C */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B7290 */ cpu->ctr = cpu->r[11];
|
|
/* 028B7294 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7298 */ _t18 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B7298 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
L_028B729C: ; // 0x28b729c
|
|
/* 028B729C */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028B72A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028B72A4 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 028B72A8 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B72A8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B72A8 */ if (_t20) goto L_028B7260; else goto L_028B72AC;
|
|
L_028B72AC: ; // 0x28b72ac
|
|
/* 028B72AC */ cpu->r[0] = 0x00000000u;
|
|
/* 028B72B0 */ _t21 = cpu->r[29] + 0x00000014u;
|
|
/* 028B72B0 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028B72B4 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B72B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B72B8 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B72B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B72BC */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 028B72BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B72C0 */ cpu->lr = cpu->r[0];
|
|
/* 028B72C4 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028B72C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B72C8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B72CC */ return;
|
|
}
|
|
|
|
// fn_028B7234 @ 0x28b7234
|
|
void Gambit_fn_028B7234(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_028B7234: ; // 0x28b7234
|
|
/* 028B7234 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B7234 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7234 */ cpu->r[1] = _t0;
|
|
/* 028B7238 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7238 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B723C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B723C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B7240 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7240 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B7244 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7244 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B7248 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B724C */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B724C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B7250 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B7254 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028B7258 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7258 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B7258 */ if (_t7) goto L_028B725C; else goto L_028B72AC;
|
|
L_028B725C: ; // 0x28b725c
|
|
/* 028B725C */ cpu->r[31] = 0x00000000u;
|
|
L_028B7260: ; // 0x28b7260
|
|
/* 028B7260 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028B7264 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7264 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B7264 */ if (_t9) goto L_028B7268; else goto L_028B729C;
|
|
L_028B7268: ; // 0x28b7268
|
|
/* 028B7268 */ _t10 = cpu->r[29] + 0x00000024u;
|
|
/* 028B7268 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B726C */ _t11 = cpu->r[9] + cpu->r[31];
|
|
/* 028B726C */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7270 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B7274 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7274 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B7274 */ if (_t13) goto L_028B729C; else goto L_028B7278;
|
|
L_028B7278: ; // 0x28b7278
|
|
/* 028B7278 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028B727C */ cpu->r[3] = 0x00000000u;
|
|
/* 028B7280 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7280 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B7280 */ if (_t15) goto L_028B7284; else goto L_028B7288;
|
|
L_028B7284: ; // 0x28b7284
|
|
/* 028B7284 */ cpu->r[3] = cpu->r[8];
|
|
L_028B7288: ; // 0x28b7288
|
|
/* 028B7288 */ _t16 = cpu->r[3] + 0x00000050u;
|
|
/* 028B7288 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B728C */ _t17 = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B728C */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B7290 */ cpu->ctr = cpu->r[11];
|
|
/* 028B7294 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7298 */ _t18 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B7298 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
L_028B729C: ; // 0x28b729c
|
|
/* 028B729C */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028B72A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028B72A4 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 028B72A8 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B72A8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B72A8 */ if (_t20) goto L_028B7260; else goto L_028B72AC;
|
|
L_028B72AC: ; // 0x28b72ac
|
|
/* 028B72AC */ cpu->r[0] = 0x00000000u;
|
|
/* 028B72B0 */ _t21 = cpu->r[29] + 0x00000014u;
|
|
/* 028B72B0 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028B72B4 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B72B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B72B8 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B72B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B72BC */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 028B72BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B72C0 */ cpu->lr = cpu->r[0];
|
|
/* 028B72C4 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028B72C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B72C8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B72CC */ return;
|
|
}
|
|
|
|
// fn_028B72D0 @ 0x28b72d0
|
|
void Gambit_fn_028B72D0(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_028B72D0: ; // 0x28b72d0
|
|
/* 028B72D0 */ cpu->r[0] = cpu->lr;
|
|
/* 028B72D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B72D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B72D4 */ cpu->r[1] = _t0;
|
|
/* 028B72D8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B72D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B72DC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B72DC */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B72E0 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B72E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B72E4 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B72E4 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B72E8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B72EC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B72EC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B72F0 */ _t6 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B72F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B72F4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B72F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B72FC */ cpu->r[30] = cpu->r[4];
|
|
/* 028B7300 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7300 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B7300 */ if (_t8) goto L_028B7304; else goto L_028B7358;
|
|
L_028B7304: ; // 0x28b7304
|
|
/* 028B7304 */ cpu->r[31] = 0x00000000u;
|
|
L_028B7308: ; // 0x28b7308
|
|
/* 028B7308 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028B730C */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B730C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B730C */ if (_t10) goto L_028B7310; else goto L_028B7348;
|
|
L_028B7310: ; // 0x28b7310
|
|
/* 028B7310 */ _t11 = cpu->r[28] + 0x00000024u;
|
|
/* 028B7310 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7314 */ _t12 = cpu->r[9] + cpu->r[31];
|
|
/* 028B7314 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B7318 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B731C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B731C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B731C */ if (_t14) goto L_028B7348; else goto L_028B7320;
|
|
L_028B7320: ; // 0x28b7320
|
|
/* 028B7320 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028B7324 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B7328 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7328 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B7328 */ if (_t16) goto L_028B732C; else goto L_028B7330;
|
|
L_028B732C: ; // 0x28b732c
|
|
/* 028B732C */ cpu->r[3] = cpu->r[8];
|
|
L_028B7330: ; // 0x28b7330
|
|
/* 028B7330 */ _t17 = cpu->r[3] + 0x00000050u;
|
|
/* 028B7330 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B7334 */ _t18 = cpu->r[10] + 0x00000024u;
|
|
/* 028B7334 */ cpu->r[11] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B7338 */ cpu->ctr = cpu->r[11];
|
|
/* 028B733C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B7340 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7344 */ _t19 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B7344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
L_028B7348: ; // 0x28b7348
|
|
/* 028B7348 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028B734C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B7350 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 028B7354 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7354 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B7354 */ if (_t21) goto L_028B7308; else goto L_028B7358;
|
|
L_028B7358: ; // 0x28b7358
|
|
/* 028B7358 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B735C */ _t22 = cpu->r[28] + 0x00000014u;
|
|
/* 028B735C */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028B7360 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7360 */ cpu->r[28] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B7364 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7364 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B7368 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7368 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B736C */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028B736C */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B7370 */ cpu->lr = cpu->r[0];
|
|
/* 028B7374 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7374 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B7378 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B737C */ return;
|
|
}
|
|
|
|
// fn_028B72D4 @ 0x28b72d4
|
|
void Gambit_fn_028B72D4(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_028B72D4: ; // 0x28b72d4
|
|
/* 028B72D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B72D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B72D4 */ cpu->r[1] = _t0;
|
|
/* 028B72D8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B72D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B72DC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B72DC */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 028B72E0 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B72E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B72E4 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 028B72E4 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 028B72E8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B72EC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B72EC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B72F0 */ _t6 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B72F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B72F4 */ cpu->r[29] = 0x00000000u;
|
|
/* 028B72F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B72FC */ cpu->r[30] = cpu->r[4];
|
|
/* 028B7300 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7300 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B7300 */ if (_t8) goto L_028B7304; else goto L_028B7358;
|
|
L_028B7304: ; // 0x28b7304
|
|
/* 028B7304 */ cpu->r[31] = 0x00000000u;
|
|
L_028B7308: ; // 0x28b7308
|
|
/* 028B7308 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028B730C */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B730C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B730C */ if (_t10) goto L_028B7310; else goto L_028B7348;
|
|
L_028B7310: ; // 0x28b7310
|
|
/* 028B7310 */ _t11 = cpu->r[28] + 0x00000024u;
|
|
/* 028B7310 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7314 */ _t12 = cpu->r[9] + cpu->r[31];
|
|
/* 028B7314 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B7318 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B731C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B731C */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B731C */ if (_t14) goto L_028B7348; else goto L_028B7320;
|
|
L_028B7320: ; // 0x28b7320
|
|
/* 028B7320 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 028B7324 */ cpu->r[3] = 0x00000000u;
|
|
/* 028B7328 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7328 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B7328 */ if (_t16) goto L_028B732C; else goto L_028B7330;
|
|
L_028B732C: ; // 0x28b732c
|
|
/* 028B732C */ cpu->r[3] = cpu->r[8];
|
|
L_028B7330: ; // 0x28b7330
|
|
/* 028B7330 */ _t17 = cpu->r[3] + 0x00000050u;
|
|
/* 028B7330 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B7334 */ _t18 = cpu->r[10] + 0x00000024u;
|
|
/* 028B7334 */ cpu->r[11] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B7338 */ cpu->ctr = cpu->r[11];
|
|
/* 028B733C */ cpu->r[4] = cpu->r[30];
|
|
/* 028B7340 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7344 */ _t19 = cpu->r[28] + 0x0000001Cu;
|
|
/* 028B7344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
L_028B7348: ; // 0x28b7348
|
|
/* 028B7348 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 028B734C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[0]);
|
|
/* 028B7350 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 028B7354 */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7354 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B7354 */ if (_t21) goto L_028B7308; else goto L_028B7358;
|
|
L_028B7358: ; // 0x28b7358
|
|
/* 028B7358 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B735C */ _t22 = cpu->r[28] + 0x00000014u;
|
|
/* 028B735C */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 028B7360 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7360 */ cpu->r[28] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B7364 */ _t24 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7364 */ cpu->r[29] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B7368 */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7368 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B736C */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 028B736C */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 028B7370 */ cpu->lr = cpu->r[0];
|
|
/* 028B7374 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7374 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B7378 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B737C */ return;
|
|
}
|
|
|
|
// fn_028B7380 @ 0x28b7380
|
|
void Gambit_fn_028B7380(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_028B7380: ; // 0x28b7380
|
|
/* 028B7380 */ cpu->r[0] = cpu->lr;
|
|
/* 028B7384 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B7384 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7384 */ cpu->r[1] = _t0;
|
|
/* 028B7388 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7388 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B738C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B738C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B7390 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7390 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B7394 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7394 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B7398 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B739C */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B739C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B73A0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B73A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028B73A8 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B73A8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B73A8 */ if (_t7) goto L_028B73AC; else goto L_028B73FC;
|
|
L_028B73AC: ; // 0x28b73ac
|
|
/* 028B73AC */ cpu->r[31] = 0x00000000u;
|
|
L_028B73B0: ; // 0x28b73b0
|
|
/* 028B73B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028B73B4 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B73B4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B73B4 */ if (_t9) goto L_028B73B8; else goto L_028B73EC;
|
|
L_028B73B8: ; // 0x28b73b8
|
|
/* 028B73B8 */ _t10 = cpu->r[29] + 0x00000024u;
|
|
/* 028B73B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B73BC */ _t11 = cpu->r[9] + cpu->r[31];
|
|
/* 028B73BC */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B73C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B73C4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B73C4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B73C4 */ if (_t13) goto L_028B73EC; else goto L_028B73C8;
|
|
L_028B73C8: ; // 0x28b73c8
|
|
/* 028B73C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028B73CC */ cpu->r[3] = 0x00000000u;
|
|
/* 028B73D0 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B73D0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B73D0 */ if (_t15) goto L_028B73D4; else goto L_028B73D8;
|
|
L_028B73D4: ; // 0x28b73d4
|
|
/* 028B73D4 */ cpu->r[3] = cpu->r[8];
|
|
L_028B73D8: ; // 0x28b73d8
|
|
/* 028B73D8 */ _t16 = cpu->r[3] + 0x00000050u;
|
|
/* 028B73D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B73DC */ _t17 = cpu->r[10] + 0x00000044u;
|
|
/* 028B73DC */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B73E0 */ cpu->ctr = cpu->r[11];
|
|
/* 028B73E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B73E8 */ _t18 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B73E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
L_028B73EC: ; // 0x28b73ec
|
|
/* 028B73EC */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028B73F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028B73F4 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 028B73F8 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B73F8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B73F8 */ if (_t20) goto L_028B73B0; else goto L_028B73FC;
|
|
L_028B73FC: ; // 0x28b73fc
|
|
/* 028B73FC */ cpu->r[0] = 0x00000000u;
|
|
/* 028B7400 */ _t21 = cpu->r[29] + 0x00000014u;
|
|
/* 028B7400 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028B7404 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7404 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B7408 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7408 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B740C */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 028B740C */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B7410 */ cpu->lr = cpu->r[0];
|
|
/* 028B7414 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7414 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B7418 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B741C */ return;
|
|
}
|
|
|
|
// fn_028B7384 @ 0x28b7384
|
|
void Gambit_fn_028B7384(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_028B7384: ; // 0x28b7384
|
|
/* 028B7384 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B7384 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7384 */ cpu->r[1] = _t0;
|
|
/* 028B7388 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7388 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 028B738C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 028B738C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B7390 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7390 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 028B7394 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7394 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 028B7398 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B739C */ _t5 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B739C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B73A0 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B73A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028B73A8 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B73A8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B73A8 */ if (_t7) goto L_028B73AC; else goto L_028B73FC;
|
|
L_028B73AC: ; // 0x28b73ac
|
|
/* 028B73AC */ cpu->r[31] = 0x00000000u;
|
|
L_028B73B0: ; // 0x28b73b0
|
|
/* 028B73B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028B73B4 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B73B4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B73B4 */ if (_t9) goto L_028B73B8; else goto L_028B73EC;
|
|
L_028B73B8: ; // 0x28b73b8
|
|
/* 028B73B8 */ _t10 = cpu->r[29] + 0x00000024u;
|
|
/* 028B73B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B73BC */ _t11 = cpu->r[9] + cpu->r[31];
|
|
/* 028B73BC */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B73C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 028B73C4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B73C4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B73C4 */ if (_t13) goto L_028B73EC; else goto L_028B73C8;
|
|
L_028B73C8: ; // 0x28b73c8
|
|
/* 028B73C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 028B73CC */ cpu->r[3] = 0x00000000u;
|
|
/* 028B73D0 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B73D0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B73D0 */ if (_t15) goto L_028B73D4; else goto L_028B73D8;
|
|
L_028B73D4: ; // 0x28b73d4
|
|
/* 028B73D4 */ cpu->r[3] = cpu->r[8];
|
|
L_028B73D8: ; // 0x28b73d8
|
|
/* 028B73D8 */ _t16 = cpu->r[3] + 0x00000050u;
|
|
/* 028B73D8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B73DC */ _t17 = cpu->r[10] + 0x00000044u;
|
|
/* 028B73DC */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B73E0 */ cpu->ctr = cpu->r[11];
|
|
/* 028B73E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B73E8 */ _t18 = cpu->r[29] + 0x0000001Cu;
|
|
/* 028B73E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
L_028B73EC: ; // 0x28b73ec
|
|
/* 028B73EC */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 028B73F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], cpu->r[0]);
|
|
/* 028B73F4 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 028B73F8 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B73F8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 028B73F8 */ if (_t20) goto L_028B73B0; else goto L_028B73FC;
|
|
L_028B73FC: ; // 0x28b73fc
|
|
/* 028B73FC */ cpu->r[0] = 0x00000000u;
|
|
/* 028B7400 */ _t21 = cpu->r[29] + 0x00000014u;
|
|
/* 028B7400 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028B7404 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7404 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 028B7408 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7408 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 028B740C */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 028B740C */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B7410 */ cpu->lr = cpu->r[0];
|
|
/* 028B7414 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7414 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 028B7418 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B741C */ return;
|
|
}
|
|
|
|
// fn_028B7420 @ 0x28b7420
|
|
void Gambit_fn_028B7420(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028B7420: ; // 0x28b7420
|
|
/* 028B7420 */ cpu->r[0] = cpu->lr;
|
|
/* 028B7424 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7424 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7424 */ cpu->r[1] = _t0;
|
|
/* 028B7428 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7428 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B742C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B742C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B7430 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B7430 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B7434 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B7438 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7438 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B743C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B743C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B743C */ if (_t5) goto L_028B745C; else goto L_028B7440;
|
|
L_028B7440: ; // 0x28b7440
|
|
/* 028B7440 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B7444 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B7448 */ Gambit_fn_028A5900(cpu);
|
|
/* 028B744C */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B744C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B7450 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7450 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B7450 */ if (_t7) goto L_028B745C; else goto L_028B7454;
|
|
L_028B7454: ; // 0x28b7454
|
|
/* 028B7454 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B7458 */ Gambit_fn_02801BB0(cpu);
|
|
L_028B745C: ; // 0x28b745c
|
|
/* 028B745C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028B745C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B7460 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7460 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B7464 */ cpu->lr = cpu->r[0];
|
|
/* 028B7468 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7468 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B746C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7470 */ return;
|
|
}
|
|
|
|
// fn_028B7424 @ 0x28b7424
|
|
void Gambit_fn_028B7424(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_028B7424: ; // 0x28b7424
|
|
/* 028B7424 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7424 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7424 */ cpu->r[1] = _t0;
|
|
/* 028B7428 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7428 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B742C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B742C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B7430 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B7430 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 028B7434 */ cpu->r[31] = cpu->r[4];
|
|
/* 028B7438 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7438 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B743C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B743C */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B743C */ if (_t5) goto L_028B745C; else goto L_028B7440;
|
|
L_028B7440: ; // 0x28b7440
|
|
/* 028B7440 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B7444 */ cpu->r[4] = 0x00000000u;
|
|
/* 028B7448 */ Gambit_fn_028A5900(cpu);
|
|
/* 028B744C */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B744C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B7450 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7450 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B7450 */ if (_t7) goto L_028B745C; else goto L_028B7454;
|
|
L_028B7454: ; // 0x28b7454
|
|
/* 028B7454 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B7458 */ Gambit_fn_02801BB0(cpu);
|
|
L_028B745C: ; // 0x28b745c
|
|
/* 028B745C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 028B745C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B7460 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7460 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B7464 */ cpu->lr = cpu->r[0];
|
|
/* 028B7468 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7468 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B746C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7470 */ return;
|
|
}
|
|
|
|
// fn_028B7474 @ 0x28b7474
|
|
void Gambit_fn_028B7474(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B7474: ; // 0x28b7474
|
|
/* 028B7474 */ cpu->r[0] = cpu->lr;
|
|
/* 028B7478 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7478 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7478 */ cpu->r[1] = _t0;
|
|
/* 028B747C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B747C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B7480 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7480 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B7484 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7484 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B7488 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B748C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B748C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B7490 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7490 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B7490 */ if (_t5) goto L_028B7494; else goto L_028B74A4;
|
|
L_028B7494: ; // 0x28b7494
|
|
/* 028B7494 */ cpu->r[3] = 0x00000E98u;
|
|
/* 028B7498 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B749C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B749C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B74A0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B74A0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B74A0 */ if (_t7) goto L_028B74EC; else goto L_028B74A4;
|
|
L_028B74A4: ; // 0x28b74a4
|
|
/* 028B74A4 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B74A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B74AC */ cpu->r[4] = 0x00000006u;
|
|
/* 028B74B0 */ cpu->r[6] = cpu->r[6] + 0x00007550u;
|
|
/* 028B74B4 */ cpu->r[5] = 0x00000260u;
|
|
/* 028B74B8 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028B74BC */ cpu->r[12] = 0x00000000u;
|
|
/* 028B74C0 */ _t8 = cpu->r[31] + 0x00000E48u;
|
|
/* 028B74C0 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028B74C4 */ _t9 = cpu->r[31] + 0x00000E40u;
|
|
/* 028B74C4 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028B74C8 */ cpu->r[3] = cpu->r[31] + 0x00000E5Cu;
|
|
/* 028B74CC */ _t10 = cpu->r[31] + 0x00000E44u;
|
|
/* 028B74CC */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028B74D0 */ Gambit_fn_02836EBC(cpu);
|
|
/* 028B74D4 */ cpu->r[11] = 0x00000001u;
|
|
/* 028B74D8 */ cpu->r[12] = 0x00000002u;
|
|
/* 028B74DC */ _t11 = cpu->r[31] + 0x00000E4Cu;
|
|
/* 028B74DC */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
/* 028B74E0 */ _t12 = cpu->r[31] + 0x00000E50u;
|
|
/* 028B74E0 */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 028B74E4 */ _t13 = cpu->r[31] + 0x00000E54u;
|
|
/* 028B74E4 */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
/* 028B74E8 */ _t14 = cpu->r[31] + 0x00000E58u;
|
|
/* 028B74E8 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
L_028B74EC: ; // 0x28b74ec
|
|
/* 028B74EC */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028B74EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B74F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B74F4 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B74F4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B74F8 */ cpu->lr = cpu->r[0];
|
|
/* 028B74FC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028B74FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B7500 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7504 */ return;
|
|
}
|
|
|
|
// fn_028B7478 @ 0x28b7478
|
|
void Gambit_fn_028B7478(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B7478: ; // 0x28b7478
|
|
/* 028B7478 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7478 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7478 */ cpu->r[1] = _t0;
|
|
/* 028B747C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B747C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B7480 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7480 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B7484 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7484 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B7488 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B748C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B748C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B7490 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7490 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B7490 */ if (_t5) goto L_028B7494; else goto L_028B74A4;
|
|
L_028B7494: ; // 0x28b7494
|
|
/* 028B7494 */ cpu->r[3] = 0x00000E98u;
|
|
/* 028B7498 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B749C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B749C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B74A0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B74A0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B74A0 */ if (_t7) goto L_028B74EC; else goto L_028B74A4;
|
|
L_028B74A4: ; // 0x28b74a4
|
|
/* 028B74A4 */ cpu->r[6] = 0x028B0000u;
|
|
/* 028B74A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B74AC */ cpu->r[4] = 0x00000006u;
|
|
/* 028B74B0 */ cpu->r[6] = cpu->r[6] + 0x00007550u;
|
|
/* 028B74B4 */ cpu->r[5] = 0x00000260u;
|
|
/* 028B74B8 */ Gambit_fn_02C82E00(cpu);
|
|
/* 028B74BC */ cpu->r[12] = 0x00000000u;
|
|
/* 028B74C0 */ _t8 = cpu->r[31] + 0x00000E48u;
|
|
/* 028B74C0 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 028B74C4 */ _t9 = cpu->r[31] + 0x00000E40u;
|
|
/* 028B74C4 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 028B74C8 */ cpu->r[3] = cpu->r[31] + 0x00000E5Cu;
|
|
/* 028B74CC */ _t10 = cpu->r[31] + 0x00000E44u;
|
|
/* 028B74CC */ rbrew_write32(cpu->mem, _t10, cpu->r[12]);
|
|
/* 028B74D0 */ Gambit_fn_02836EBC(cpu);
|
|
/* 028B74D4 */ cpu->r[11] = 0x00000001u;
|
|
/* 028B74D8 */ cpu->r[12] = 0x00000002u;
|
|
/* 028B74DC */ _t11 = cpu->r[31] + 0x00000E4Cu;
|
|
/* 028B74DC */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
/* 028B74E0 */ _t12 = cpu->r[31] + 0x00000E50u;
|
|
/* 028B74E0 */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 028B74E4 */ _t13 = cpu->r[31] + 0x00000E54u;
|
|
/* 028B74E4 */ rbrew_write32(cpu->mem, _t13, cpu->r[12]);
|
|
/* 028B74E8 */ _t14 = cpu->r[31] + 0x00000E58u;
|
|
/* 028B74E8 */ rbrew_write32(cpu->mem, _t14, cpu->r[12]);
|
|
L_028B74EC: ; // 0x28b74ec
|
|
/* 028B74EC */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 028B74EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B74F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B74F4 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B74F4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B74F8 */ cpu->lr = cpu->r[0];
|
|
/* 028B74FC */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 028B74FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B7500 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7504 */ return;
|
|
}
|
|
|
|
// fn_028B7508 @ 0x28b7508
|
|
void Gambit_fn_028B7508(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_028B7508: ; // 0x28b7508
|
|
/* 028B7508 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B750C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B750C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B750C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B750C */ goto L_028B7510;
|
|
L_028B7510: ; // 0x28b7510
|
|
/* 028B7510 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B7510 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B7514 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7514 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B7514 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7514 */ goto L_028B7518;
|
|
L_028B7518: ; // 0x28b7518
|
|
/* 028B7518 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B751C @ 0x28b751c
|
|
void Gambit_fn_028B751C(CPUState* cpu) {
|
|
L_028B751C: ; // 0x28b751c
|
|
/* 028B751C */ return;
|
|
}
|
|
|
|
// fn_028B7520 @ 0x28b7520
|
|
void Gambit_fn_028B7520(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_028B7520: ; // 0x28b7520
|
|
/* 028B7520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7524 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7524 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B7524 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7524 */ goto L_028B7528;
|
|
L_028B7528: ; // 0x28b7528
|
|
/* 028B7528 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B7528 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B752C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B752C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B752C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B752C */ goto L_028B7530;
|
|
L_028B7530: ; // 0x28b7530
|
|
/* 028B7530 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B7534 @ 0x28b7534
|
|
void Gambit_fn_028B7534(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B7534: ; // 0x28b7534
|
|
/* 028B7534 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028B7534 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B7538 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7538 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B753C */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028B7540 */ cpu->r[11] = 0x10110000u;
|
|
/* 028B7544 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028B7544 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028B7548 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028B7548 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028B754C */ return;
|
|
}
|
|
|
|
// fn_028B7550 @ 0x28b7550
|
|
void Gambit_fn_028B7550(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;
|
|
|
|
L_028B7550: ; // 0x28b7550
|
|
/* 028B7550 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B7550 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7550 */ cpu->r[1] = _t0;
|
|
/* 028B7554 */ cpu->r[0] = cpu->lr;
|
|
/* 028B7558 */ /* nop */
|
|
/* 028B755C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B755C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B7560 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B7560 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B7564 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7564 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B7564 */ if (_t3) goto L_028B7568; else goto L_028B7578;
|
|
L_028B7568: ; // 0x28b7568
|
|
/* 028B7568 */ cpu->r[3] = 0x00000260u;
|
|
/* 028B756C */ Gambit_fn_02801A78(cpu);
|
|
/* 028B7570 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7570 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B7574 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7574 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B7574 */ if (_t5) goto L_028B76D0; else goto L_028B7578;
|
|
L_028B7578: ; // 0x28b7578
|
|
/* 028B7578 */ cpu->r[30] = 0x10140000u;
|
|
/* 028B757C */ cpu->r[29] = 0x00000000u;
|
|
/* 028B7580 */ cpu->r[26] = cpu->r[31] + 0x00000004u;
|
|
/* 028B7580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028B7584 */ cpu->r[30] = cpu->r[30] + 0xFFFF8BF8u;
|
|
/* 028B7588 */ cpu->r[28] = 0x10110000u;
|
|
/* 028B758C */ _t6 = cpu->r[31] + 0x00000000u;
|
|
/* 028B758C */ rbrew_write32(cpu->mem, _t6, cpu->r[29]);
|
|
/* 028B7590 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7590 */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B7590 */ if (_t8) goto L_028B7594; else goto L_028B75A4;
|
|
L_028B7594: ; // 0x28b7594
|
|
/* 028B7594 */ cpu->r[3] = 0x0000014Cu;
|
|
/* 028B7598 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B759C */ cpu->r[26] = cpu->r[3];
|
|
/* 028B759C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028B75A0 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B75A0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B75A0 */ if (_t10) goto L_028B762C; else goto L_028B75A4;
|
|
L_028B75A4: ; // 0x28b75a4
|
|
/* 028B75A4 */ cpu->r[27] = cpu->r[26];
|
|
/* 028B75A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028B75A8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B75A8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 028B75A8 */ if (_t12) goto L_028B75AC; else goto L_028B75BC;
|
|
L_028B75AC: ; // 0x28b75ac
|
|
/* 028B75AC */ cpu->r[3] = 0x0000014Cu;
|
|
/* 028B75B0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B75B4 */ cpu->r[27] = cpu->r[3];
|
|
/* 028B75B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028B75B8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B75B8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 028B75B8 */ if (_t14) goto L_028B7620; else goto L_028B75BC;
|
|
L_028B75BC: ; // 0x28b75bc
|
|
/* 028B75BC */ cpu->r[3] = cpu->r[27];
|
|
/* 028B75BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B75C0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B75C0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B75C0 */ if (_t16) goto L_028B75C4; else goto L_028B75F0;
|
|
L_028B75C4: ; // 0x28b75c4
|
|
/* 028B75C4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B75C8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B75CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B75D0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B75D0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 028B75D0 */ if (_t18) goto L_028B75D4; else goto L_028B75F0;
|
|
L_028B75D4: ; // 0x28b75d4
|
|
/* 028B75D4 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B75D8 */ _t19 = cpu->r[28] + 0x00007399u;
|
|
/* 028B75D8 */ cpu->r[10] = rbrew_read8(cpu->mem, _t19);
|
|
/* 028B75DC */ cpu->r[0] = cpu->r[0] + 0xFFFF8C10u;
|
|
/* 028B75E0 */ _t20 = cpu->r[27] + 0x00000000u;
|
|
/* 028B75E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B75E4 */ _t21 = cpu->r[27] + 0x00000004u;
|
|
/* 028B75E4 */ rbrew_write32(cpu->mem, _t21, cpu->r[0]);
|
|
/* 028B75E8 */ _t22 = cpu->r[12] + 0x00000000u;
|
|
/* 028B75E8 */ rbrew_write8(cpu->mem, _t22, (uint8_t)cpu->r[10]);
|
|
/* 028B75EC */ goto L_028B7620;
|
|
L_028B75F0: ; // 0x28b75f0
|
|
/* 028B75F0 */ cpu->r[11] = cpu->r[27] + 0x0000000Cu;
|
|
/* 028B75F4 */ _t23 = cpu->r[3] + 0x00000004u;
|
|
/* 028B75F4 */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
/* 028B75F8 */ cpu->r[12] = 0x00000140u;
|
|
/* 028B75FC */ _t24 = cpu->r[3] + 0x00000000u;
|
|
/* 028B75FC */ rbrew_write32(cpu->mem, _t24, cpu->r[11]);
|
|
/* 028B7600 */ _t25 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7600 */ rbrew_write32(cpu->mem, _t25, cpu->r[12]);
|
|
/* 028B7604 */ _t26 = cpu->r[28] + 0x00007399u;
|
|
/* 028B7604 */ cpu->r[10] = rbrew_read8(cpu->mem, _t26);
|
|
/* 028B7608 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B760C */ _t27 = cpu->r[27] + 0x00000000u;
|
|
/* 028B760C */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 028B7610 */ cpu->r[0] = cpu->r[0] + 0xFFFF8C10u;
|
|
/* 028B7614 */ _t28 = cpu->r[27] + 0x0000014Bu;
|
|
/* 028B7614 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[10]);
|
|
/* 028B7618 */ _t29 = cpu->r[27] + 0x00000004u;
|
|
/* 028B7618 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 028B761C */ _t30 = cpu->r[12] + 0x00000000u;
|
|
/* 028B761C */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[10]);
|
|
L_028B7620: ; // 0x28b7620
|
|
/* 028B7620 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B7624 */ cpu->r[0] = cpu->r[0] + 0xFFFF8C28u;
|
|
/* 028B7628 */ _t31 = cpu->r[26] + 0x00000004u;
|
|
/* 028B7628 */ rbrew_write32(cpu->mem, _t31, cpu->r[0]);
|
|
L_028B762C: ; // 0x28b762c
|
|
/* 028B762C */ cpu->r[26] = cpu->r[31] + 0x00000150u;
|
|
/* 028B762C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028B7630 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7630 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028B7630 */ if (_t33) goto L_028B7634; else goto L_028B7644;
|
|
L_028B7634: ; // 0x28b7634
|
|
/* 028B7634 */ cpu->r[3] = 0x0000010Cu;
|
|
/* 028B7638 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B763C */ cpu->r[26] = cpu->r[3];
|
|
/* 028B763C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 028B7640 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7640 */ _t35 = _t34 & 0x00000001u;
|
|
/* 028B7640 */ if (_t35) goto L_028B76CC; else goto L_028B7644;
|
|
L_028B7644: ; // 0x28b7644
|
|
/* 028B7644 */ cpu->r[27] = cpu->r[26];
|
|
/* 028B7644 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028B7648 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7648 */ _t37 = _t36 & 0x00000001u;
|
|
/* 028B7648 */ if (_t37) goto L_028B764C; else goto L_028B765C;
|
|
L_028B764C: ; // 0x28b764c
|
|
/* 028B764C */ cpu->r[3] = 0x0000010Cu;
|
|
/* 028B7650 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B7654 */ cpu->r[27] = cpu->r[3];
|
|
/* 028B7654 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 028B7658 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7658 */ _t39 = _t38 & 0x00000001u;
|
|
/* 028B7658 */ if (_t39) goto L_028B76C0; else goto L_028B765C;
|
|
L_028B765C: ; // 0x28b765c
|
|
/* 028B765C */ cpu->r[3] = cpu->r[27];
|
|
/* 028B765C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7660 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7660 */ _t41 = _t40 & 0x00000001u;
|
|
/* 028B7660 */ if (_t41) goto L_028B7664; else goto L_028B7690;
|
|
L_028B7664: ; // 0x28b7664
|
|
/* 028B7664 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B7668 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B766C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7670 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7670 */ _t43 = _t42 & 0x00000001u;
|
|
/* 028B7670 */ if (_t43) goto L_028B7674; else goto L_028B7690;
|
|
L_028B7674: ; // 0x28b7674
|
|
/* 028B7674 */ cpu->r[7] = 0x10140000u;
|
|
/* 028B7678 */ _t44 = cpu->r[28] + 0x00007399u;
|
|
/* 028B7678 */ cpu->r[10] = rbrew_read8(cpu->mem, _t44);
|
|
/* 028B767C */ cpu->r[7] = cpu->r[7] + 0xFFFF8C40u;
|
|
/* 028B7680 */ _t45 = cpu->r[27] + 0x00000000u;
|
|
/* 028B7680 */ cpu->r[8] = rbrew_read32(cpu->mem, _t45);
|
|
/* 028B7684 */ _t46 = cpu->r[27] + 0x00000004u;
|
|
/* 028B7684 */ rbrew_write32(cpu->mem, _t46, cpu->r[7]);
|
|
/* 028B7688 */ _t47 = cpu->r[8] + 0x00000000u;
|
|
/* 028B7688 */ rbrew_write8(cpu->mem, _t47, (uint8_t)cpu->r[10]);
|
|
/* 028B768C */ goto L_028B76C0;
|
|
L_028B7690: ; // 0x28b7690
|
|
/* 028B7690 */ cpu->r[5] = cpu->r[27] + 0x0000000Cu;
|
|
/* 028B7694 */ _t48 = cpu->r[3] + 0x00000004u;
|
|
/* 028B7694 */ rbrew_write32(cpu->mem, _t48, cpu->r[30]);
|
|
/* 028B7698 */ cpu->r[6] = 0x00000100u;
|
|
/* 028B769C */ _t49 = cpu->r[3] + 0x00000000u;
|
|
/* 028B769C */ rbrew_write32(cpu->mem, _t49, cpu->r[5]);
|
|
/* 028B76A0 */ _t50 = cpu->r[3] + 0x00000008u;
|
|
/* 028B76A0 */ rbrew_write32(cpu->mem, _t50, cpu->r[6]);
|
|
/* 028B76A4 */ _t51 = cpu->r[28] + 0x00007399u;
|
|
/* 028B76A4 */ cpu->r[10] = rbrew_read8(cpu->mem, _t51);
|
|
/* 028B76A8 */ cpu->r[7] = 0x10140000u;
|
|
/* 028B76AC */ _t52 = cpu->r[27] + 0x00000000u;
|
|
/* 028B76AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028B76B0 */ cpu->r[7] = cpu->r[7] + 0xFFFF8C40u;
|
|
/* 028B76B4 */ _t53 = cpu->r[27] + 0x0000010Bu;
|
|
/* 028B76B4 */ rbrew_write8(cpu->mem, _t53, (uint8_t)cpu->r[10]);
|
|
/* 028B76B8 */ _t54 = cpu->r[27] + 0x00000004u;
|
|
/* 028B76B8 */ rbrew_write32(cpu->mem, _t54, cpu->r[7]);
|
|
/* 028B76BC */ _t55 = cpu->r[8] + 0x00000000u;
|
|
/* 028B76BC */ rbrew_write8(cpu->mem, _t55, (uint8_t)cpu->r[10]);
|
|
L_028B76C0: ; // 0x28b76c0
|
|
/* 028B76C0 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B76C4 */ cpu->r[0] = cpu->r[0] + 0xFFFF8C58u;
|
|
/* 028B76C8 */ _t56 = cpu->r[26] + 0x00000004u;
|
|
/* 028B76C8 */ rbrew_write32(cpu->mem, _t56, cpu->r[0]);
|
|
L_028B76CC: ; // 0x28b76cc
|
|
/* 028B76CC */ _t57 = cpu->r[31] + 0x0000025Cu;
|
|
/* 028B76CC */ rbrew_write32(cpu->mem, _t57, cpu->r[29]);
|
|
L_028B76D0: ; // 0x28b76d0
|
|
/* 028B76D0 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B76D4 */ /* nop */
|
|
/* 028B76D8 */ _t58 = cpu->r[1] + 0x00000024u;
|
|
/* 028B76D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t58);
|
|
/* 028B76DC */ cpu->lr = cpu->r[0];
|
|
/* 028B76E0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B76E4 */ return;
|
|
}
|
|
|
|
// fn_028B76E8 @ 0x28b76e8
|
|
void Gambit_fn_028B76E8(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_028B76E8: ; // 0x28b76e8
|
|
/* 028B76E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B76EC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B76EC */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B76EC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B76EC */ goto L_028B76F0;
|
|
L_028B76F0: ; // 0x28b76f0
|
|
/* 028B76F0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B76F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B76F4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B76F4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B76F4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B76F4 */ goto L_028B76F8;
|
|
L_028B76F8: ; // 0x28b76f8
|
|
/* 028B76F8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B76FC @ 0x28b76fc
|
|
void Gambit_fn_028B76FC(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_028B76FC: ; // 0x28b76fc
|
|
/* 028B76FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7700 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7700 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B7700 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7700 */ goto L_028B7704;
|
|
L_028B7704: ; // 0x28b7704
|
|
/* 028B7704 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B7704 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B7708 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7708 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B7708 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7708 */ goto L_028B770C;
|
|
L_028B770C: ; // 0x28b770c
|
|
/* 028B770C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B7710 @ 0x28b7710
|
|
void Gambit_fn_028B7710(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_028B7710: ; // 0x28b7710
|
|
/* 028B7710 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7714 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7714 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B7714 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7714 */ goto L_028B7718;
|
|
L_028B7718: ; // 0x28b7718
|
|
/* 028B7718 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B7718 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B771C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B771C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B771C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B771C */ goto L_028B7720;
|
|
L_028B7720: ; // 0x28b7720
|
|
/* 028B7720 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B7724 @ 0x28b7724
|
|
void Gambit_fn_028B7724(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_028B7724: ; // 0x28b7724
|
|
/* 028B7724 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7728 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7728 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B7728 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7728 */ goto L_028B772C;
|
|
L_028B772C: ; // 0x28b772c
|
|
/* 028B772C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B772C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B7730 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7730 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B7730 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7730 */ goto L_028B7734;
|
|
L_028B7734: ; // 0x28b7734
|
|
/* 028B7734 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B7738 @ 0x28b7738
|
|
void Gambit_fn_028B7738(CPUState* cpu) {
|
|
L_028B7738: ; // 0x28b7738
|
|
/* 028B7738 */ return;
|
|
}
|
|
|
|
// fn_028B773C @ 0x28b773c
|
|
void Gambit_fn_028B773C(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_028B773C: ; // 0x28b773c
|
|
/* 028B773C */ cpu->r[0] = cpu->lr;
|
|
/* 028B7740 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7740 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7740 */ cpu->r[1] = _t0;
|
|
/* 028B7744 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7744 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B7748 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7748 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B774C */ cpu->r[30] = cpu->r[4];
|
|
/* 028B7750 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7750 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B7754 */ _t4 = cpu->r[30] + 0x00000000u;
|
|
/* 028B7754 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B7758 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B775C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B775C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B775C */ if (_t6) goto L_028B7798; else goto L_028B7760;
|
|
L_028B7760: ; // 0x28b7760
|
|
/* 028B7760 */ _t7 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B7760 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B7764 */ _t8 = cpu->r[30] + 0x00000004u;
|
|
/* 028B7764 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B7768 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 028B776C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B776C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B776C */ if (_t10) goto L_028B7770; else goto L_028B7798;
|
|
L_028B7770: ; // 0x28b7770
|
|
/* 028B7770 */ _t11 = cpu->r[31] + 0x00000028u;
|
|
/* 028B7770 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7774 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7778 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7778 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B7778 */ if (_t13) goto L_028B7790; else goto L_028B777C;
|
|
L_028B777C: ; // 0x28b777c
|
|
/* 028B777C */ _t14 = cpu->r[3] + 0x00000050u;
|
|
/* 028B777C */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B7780 */ _t15 = cpu->r[9] + 0x00000024u;
|
|
/* 028B7780 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B7784 */ cpu->ctr = cpu->r[10];
|
|
/* 028B7788 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028B778C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B7790: ; // 0x28b7790
|
|
/* 028B7790 */ cpu->r[0] = 0x00000001u;
|
|
/* 028B7794 */ _t16 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028B7794 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[0]);
|
|
L_028B7798: ; // 0x28b7798
|
|
/* 028B7798 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B779C */ _t17 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B779C */ rbrew_write32(cpu->mem, _t17, cpu->r[12]);
|
|
/* 028B77A0 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028B77A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B77A4 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028B77A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B77A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B77AC */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B77AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B77B0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B77B4 */ return;
|
|
}
|
|
|
|
// fn_028B7740 @ 0x28b7740
|
|
void Gambit_fn_028B7740(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_028B7740: ; // 0x28b7740
|
|
/* 028B7740 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7740 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7740 */ cpu->r[1] = _t0;
|
|
/* 028B7744 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7744 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B7748 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7748 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B774C */ cpu->r[30] = cpu->r[4];
|
|
/* 028B7750 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7750 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B7754 */ _t4 = cpu->r[30] + 0x00000000u;
|
|
/* 028B7754 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B7758 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B775C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B775C */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B775C */ if (_t6) goto L_028B7798; else goto L_028B7760;
|
|
L_028B7760: ; // 0x28b7760
|
|
/* 028B7760 */ _t7 = cpu->r[31] + 0x0000000Cu;
|
|
/* 028B7760 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B7764 */ _t8 = cpu->r[30] + 0x00000004u;
|
|
/* 028B7764 */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B7768 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 028B776C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B776C */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B776C */ if (_t10) goto L_028B7770; else goto L_028B7798;
|
|
L_028B7770: ; // 0x28b7770
|
|
/* 028B7770 */ _t11 = cpu->r[31] + 0x00000028u;
|
|
/* 028B7770 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7774 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7778 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7778 */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B7778 */ if (_t13) goto L_028B7790; else goto L_028B777C;
|
|
L_028B777C: ; // 0x28b777c
|
|
/* 028B777C */ _t14 = cpu->r[3] + 0x00000050u;
|
|
/* 028B777C */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B7780 */ _t15 = cpu->r[9] + 0x00000024u;
|
|
/* 028B7780 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B7784 */ cpu->ctr = cpu->r[10];
|
|
/* 028B7788 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 028B778C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_028B7790: ; // 0x28b7790
|
|
/* 028B7790 */ cpu->r[0] = 0x00000001u;
|
|
/* 028B7794 */ _t16 = cpu->r[31] + 0x0000004Cu;
|
|
/* 028B7794 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[0]);
|
|
L_028B7798: ; // 0x28b7798
|
|
/* 028B7798 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B779C */ _t17 = cpu->r[30] + 0x0000000Cu;
|
|
/* 028B779C */ rbrew_write32(cpu->mem, _t17, cpu->r[12]);
|
|
/* 028B77A0 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 028B77A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B77A4 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 028B77A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 028B77A8 */ cpu->lr = cpu->r[0];
|
|
/* 028B77AC */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B77AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 028B77B0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B77B4 */ return;
|
|
}
|
|
|
|
// fn_028B77B8 @ 0x28b77b8
|
|
void Gambit_fn_028B77B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_028B77B8: ; // 0x28b77b8
|
|
/* 028B77B8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 028B77B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B77B8 */ cpu->r[1] = _t0;
|
|
/* 028B77BC */ /* nop */
|
|
/* 028B77C0 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B77C4 */ cpu->r[27] = cpu->r[28] + 0x00000008u;
|
|
/* 028B77C8 */ cpu->r[3] = cpu->r[27];
|
|
/* 028B77CC */ cpu->r[0] = cpu->lr;
|
|
/* 028B77D0 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 028B77D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 028B77D4 */ Gambit_fn_02836FFC(cpu);
|
|
/* 028B77D8 */ _t2 = cpu->r[28] + 0x00000048u;
|
|
/* 028B77D8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B77DC */ cpu->r[31] = cpu->r[28] + 0x00000030u;
|
|
/* 028B77E0 */ cpu->r[29] = cpu->r[11] + 0xFFFFFFECu;
|
|
/* 028B77E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B77E8 */ _t3 = cpu->r[11] + 0x00000004u;
|
|
/* 028B77E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B77EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B77EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B77EC */ if (_t5) goto L_028B783C; else goto L_028B77F0;
|
|
L_028B77F0: ; // 0x28b77f0
|
|
/* 028B77F0 */ _t6 = cpu->r[29] + 0x00000010u;
|
|
/* 028B77F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B77F4 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028B77F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B77F8 */ _t7 = cpu->r[29] + 0x00000010u;
|
|
/* 028B77F8 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 028B77FC */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B77FC */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B77FC */ if (_t9) goto L_028B7800; else goto L_028B782C;
|
|
L_028B7800: ; // 0x28b7800
|
|
/* 028B7800 */ cpu->r[3] = cpu->r[28];
|
|
/* 028B7804 */ cpu->r[4] = cpu->r[29];
|
|
/* 028B7808 */ Gambit_fn_028B773C(cpu);
|
|
/* 028B780C */ cpu->r[3] = cpu->r[29] + 0x00000014u;
|
|
/* 028B7810 */ Gambit_fn_02801EDC(cpu);
|
|
/* 028B7814 */ _t10 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B7814 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B7818 */ _t11 = cpu->r[28] + 0x00000050u;
|
|
/* 028B7818 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B781C */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 028B7820 */ _t12 = cpu->r[28] + 0x0000004Cu;
|
|
/* 028B7820 */ rbrew_write32(cpu->mem, _t12, cpu->r[9]);
|
|
/* 028B7824 */ _t13 = cpu->r[29] + 0x00000000u;
|
|
/* 028B7824 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028B7828 */ _t14 = cpu->r[28] + 0x00000050u;
|
|
/* 028B7828 */ rbrew_write32(cpu->mem, _t14, cpu->r[29]);
|
|
L_028B782C: ; // 0x28b782c
|
|
/* 028B782C */ cpu->r[29] = cpu->r[30] + 0xFFFFFFECu;
|
|
/* 028B7830 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[31]);
|
|
/* 028B7834 */ _t15 = cpu->r[30] + 0x00000004u;
|
|
/* 028B7834 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B7838 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7838 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B7838 */ if (_t17) goto L_028B783C; else goto L_028B77F0;
|
|
L_028B783C: ; // 0x28b783c
|
|
/* 028B783C */ cpu->r[3] = cpu->r[27];
|
|
/* 028B7840 */ Gambit_fn_02837030(cpu);
|
|
/* 028B7844 */ /* nop */
|
|
/* 028B7848 */ _t18 = cpu->r[1] + 0x00000024u;
|
|
/* 028B7848 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 028B784C */ cpu->lr = cpu->r[0];
|
|
/* 028B7850 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 028B7854 */ return;
|
|
}
|
|
|
|
// fn_028B7858 @ 0x28b7858
|
|
void Gambit_fn_028B7858(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_028B7858: ; // 0x28b7858
|
|
/* 028B7858 */ cpu->r[0] = cpu->lr;
|
|
/* 028B785C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B785C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B785C */ cpu->r[1] = _t0;
|
|
/* 028B7860 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B7860 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B7864 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B7868 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7868 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B786C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B786C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B7870 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7870 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B7874 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7874 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B7878 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7878 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B787C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B787C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B787C */ if (_t7) goto L_028B7880; else goto L_028B7890;
|
|
L_028B7880: ; // 0x28b7880
|
|
/* 028B7880 */ cpu->r[3] = 0x00000E5Cu;
|
|
/* 028B7884 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B7888 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7888 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B788C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B788C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B788C */ if (_t9) goto L_028B7944; else goto L_028B7890;
|
|
L_028B7890: ; // 0x28b7890
|
|
/* 028B7890 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B7894 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028B7894 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028B7898 */ cpu->r[0] = cpu->r[0] + 0xFFFF8CD4u;
|
|
/* 028B789C */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 028B78A0 */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 028B78A0 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028B78A4 */ Gambit_fn_02836EBC(cpu);
|
|
/* 028B78A8 */ cpu->r[28] = cpu->r[31] + 0x00000044u;
|
|
/* 028B78A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B78AC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78AC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B78AC */ if (_t13) goto L_028B78B0; else goto L_028B78C0;
|
|
L_028B78B0: ; // 0x28b78b0
|
|
/* 028B78B0 */ cpu->r[3] = 0x00000E18u;
|
|
/* 028B78B4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B78B8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B78B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B78BC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78BC */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B78BC */ if (_t15) goto L_028B7944; else goto L_028B78C0;
|
|
L_028B78C0: ; // 0x28b78c0
|
|
/* 028B78C0 */ cpu->r[29] = cpu->r[28];
|
|
/* 028B78C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B78C4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B78C8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78C8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B78C8 */ if (_t17) goto L_028B78CC; else goto L_028B78DC;
|
|
L_028B78CC: ; // 0x28b78cc
|
|
/* 028B78CC */ cpu->r[3] = 0x00000018u;
|
|
/* 028B78D0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B78D4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B78D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B78D8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78D8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B78D8 */ if (_t19) goto L_028B790C; else goto L_028B78DC;
|
|
L_028B78DC: ; // 0x28b78dc
|
|
/* 028B78DC */ cpu->r[3] = cpu->r[29];
|
|
/* 028B78DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B78E0 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78E0 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B78E0 */ if (_t21) goto L_028B78E4; else goto L_028B78F4;
|
|
L_028B78E4: ; // 0x28b78e4
|
|
/* 028B78E4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B78E8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B78EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B78F0 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78F0 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B78F0 */ if (_t23) goto L_028B7900; else goto L_028B78F4;
|
|
L_028B78F4: ; // 0x28b78f4
|
|
/* 028B78F4 */ _t24 = cpu->r[3] + 0x00000004u;
|
|
/* 028B78F4 */ rbrew_write32(cpu->mem, _t24, cpu->r[3]);
|
|
/* 028B78F8 */ _t25 = cpu->r[3] + 0x00000008u;
|
|
/* 028B78F8 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028B78FC */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028B78FC */ rbrew_write32(cpu->mem, _t26, cpu->r[3]);
|
|
L_028B7900: ; // 0x28b7900
|
|
/* 028B7900 */ _t27 = cpu->r[29] + 0x00000010u;
|
|
/* 028B7900 */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
/* 028B7904 */ _t28 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B7904 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 028B7908 */ _t29 = cpu->r[29] + 0x00000014u;
|
|
/* 028B7908 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
L_028B790C: ; // 0x28b790c
|
|
/* 028B790C */ cpu->r[0] = 0x0000007Fu;
|
|
/* 028B7910 */ cpu->r[12] = cpu->r[28] + 0x00000018u;
|
|
/* 028B7914 */ cpu->r[10] = 0x00000000u;
|
|
/* 028B7918 */ cpu->ctr = cpu->r[0];
|
|
/* 028B791C */ cpu->r[11] = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B7920 */ _t30 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B7920 */ rbrew_write32(cpu->mem, _t30, cpu->r[12]);
|
|
L_028B7924: ; // 0x28b7924
|
|
/* 028B7924 */ _t31 = cpu->r[12] + cpu->r[10];
|
|
/* 028B7924 */ rbrew_write32(cpu->mem, _t31, cpu->r[11]);
|
|
/* 028B7928 */ cpu->r[10] = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B792C */ cpu->r[11] = cpu->r[11] + 0x0000001Cu;
|
|
/* 028B7930 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028B7930 */ _t32 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028B7930 */ _t33 = _t32 >> (0x00000002u & 31u);
|
|
/* 028B7930 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028B7930 */ if (_t34) goto L_028B7924; else goto L_028B7934;
|
|
L_028B7934: ; // 0x28b7934
|
|
/* 028B7934 */ _t35 = cpu->r[12] + 0x00000DE4u;
|
|
/* 028B7934 */ rbrew_write32(cpu->mem, _t35, cpu->r[30]);
|
|
/* 028B7938 */ cpu->r[0] = 0x00000080u;
|
|
/* 028B793C */ _t36 = cpu->r[28] + 0x00000010u;
|
|
/* 028B793C */ rbrew_write32(cpu->mem, _t36, cpu->r[12]);
|
|
/* 028B7940 */ _t37 = cpu->r[28] + 0x00000014u;
|
|
/* 028B7940 */ rbrew_write32(cpu->mem, _t37, cpu->r[0]);
|
|
L_028B7944: ; // 0x28b7944
|
|
/* 028B7944 */ _t38 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7944 */ cpu->r[28] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B7948 */ _t39 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7948 */ cpu->r[29] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028B794C */ _t40 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B794C */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028B7950 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B7954 */ _t41 = cpu->r[1] + 0x00000010u;
|
|
/* 028B7954 */ cpu->r[30] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B7958 */ cpu->lr = cpu->r[0];
|
|
/* 028B795C */ _t42 = cpu->r[1] + 0x00000014u;
|
|
/* 028B795C */ cpu->r[31] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028B7960 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B7964 */ return;
|
|
}
|
|
|
|
// fn_028B785C @ 0x28b785c
|
|
void Gambit_fn_028B785C(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_028B785C: ; // 0x28b785c
|
|
/* 028B785C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 028B785C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B785C */ cpu->r[1] = _t0;
|
|
/* 028B7860 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 028B7860 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B7864 */ cpu->r[30] = cpu->r[4];
|
|
/* 028B7868 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7868 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B786C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 028B786C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 028B7870 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7870 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B7874 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7874 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 028B7878 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B7878 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B787C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B787C */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B787C */ if (_t7) goto L_028B7880; else goto L_028B7890;
|
|
L_028B7880: ; // 0x28b7880
|
|
/* 028B7880 */ cpu->r[3] = 0x00000E5Cu;
|
|
/* 028B7884 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B7888 */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7888 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 028B788C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B788C */ _t9 = _t8 & 0x00000001u;
|
|
/* 028B788C */ if (_t9) goto L_028B7944; else goto L_028B7890;
|
|
L_028B7890: ; // 0x28b7890
|
|
/* 028B7890 */ cpu->r[0] = 0x10140000u;
|
|
/* 028B7894 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 028B7894 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 028B7898 */ cpu->r[0] = cpu->r[0] + 0xFFFF8CD4u;
|
|
/* 028B789C */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 028B78A0 */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 028B78A0 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028B78A4 */ Gambit_fn_02836EBC(cpu);
|
|
/* 028B78A8 */ cpu->r[28] = cpu->r[31] + 0x00000044u;
|
|
/* 028B78A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B78AC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78AC */ _t13 = _t12 & 0x00000001u;
|
|
/* 028B78AC */ if (_t13) goto L_028B78B0; else goto L_028B78C0;
|
|
L_028B78B0: ; // 0x28b78b0
|
|
/* 028B78B0 */ cpu->r[3] = 0x00000E18u;
|
|
/* 028B78B4 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B78B8 */ cpu->r[28] = cpu->r[3];
|
|
/* 028B78B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 028B78BC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78BC */ _t15 = _t14 & 0x00000001u;
|
|
/* 028B78BC */ if (_t15) goto L_028B7944; else goto L_028B78C0;
|
|
L_028B78C0: ; // 0x28b78c0
|
|
/* 028B78C0 */ cpu->r[29] = cpu->r[28];
|
|
/* 028B78C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B78C4 */ cpu->r[30] = 0x00000000u;
|
|
/* 028B78C8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78C8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B78C8 */ if (_t17) goto L_028B78CC; else goto L_028B78DC;
|
|
L_028B78CC: ; // 0x28b78cc
|
|
/* 028B78CC */ cpu->r[3] = 0x00000018u;
|
|
/* 028B78D0 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B78D4 */ cpu->r[29] = cpu->r[3];
|
|
/* 028B78D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 028B78D8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78D8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B78D8 */ if (_t19) goto L_028B790C; else goto L_028B78DC;
|
|
L_028B78DC: ; // 0x28b78dc
|
|
/* 028B78DC */ cpu->r[3] = cpu->r[29];
|
|
/* 028B78DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B78E0 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78E0 */ _t21 = _t20 & 0x00000001u;
|
|
/* 028B78E0 */ if (_t21) goto L_028B78E4; else goto L_028B78F4;
|
|
L_028B78E4: ; // 0x28b78e4
|
|
/* 028B78E4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 028B78E8 */ Gambit_fn_02801A78(cpu);
|
|
/* 028B78EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B78F0 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B78F0 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B78F0 */ if (_t23) goto L_028B7900; else goto L_028B78F4;
|
|
L_028B78F4: ; // 0x28b78f4
|
|
/* 028B78F4 */ _t24 = cpu->r[3] + 0x00000004u;
|
|
/* 028B78F4 */ rbrew_write32(cpu->mem, _t24, cpu->r[3]);
|
|
/* 028B78F8 */ _t25 = cpu->r[3] + 0x00000008u;
|
|
/* 028B78F8 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 028B78FC */ _t26 = cpu->r[3] + 0x00000000u;
|
|
/* 028B78FC */ rbrew_write32(cpu->mem, _t26, cpu->r[3]);
|
|
L_028B7900: ; // 0x28b7900
|
|
/* 028B7900 */ _t27 = cpu->r[29] + 0x00000010u;
|
|
/* 028B7900 */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
/* 028B7904 */ _t28 = cpu->r[29] + 0x0000000Cu;
|
|
/* 028B7904 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 028B7908 */ _t29 = cpu->r[29] + 0x00000014u;
|
|
/* 028B7908 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
L_028B790C: ; // 0x28b790c
|
|
/* 028B790C */ cpu->r[0] = 0x0000007Fu;
|
|
/* 028B7910 */ cpu->r[12] = cpu->r[28] + 0x00000018u;
|
|
/* 028B7914 */ cpu->r[10] = 0x00000000u;
|
|
/* 028B7918 */ cpu->ctr = cpu->r[0];
|
|
/* 028B791C */ cpu->r[11] = cpu->r[12] + 0x0000001Cu;
|
|
/* 028B7920 */ _t30 = cpu->r[28] + 0x0000000Cu;
|
|
/* 028B7920 */ rbrew_write32(cpu->mem, _t30, cpu->r[12]);
|
|
L_028B7924: ; // 0x28b7924
|
|
/* 028B7924 */ _t31 = cpu->r[12] + cpu->r[10];
|
|
/* 028B7924 */ rbrew_write32(cpu->mem, _t31, cpu->r[11]);
|
|
/* 028B7928 */ cpu->r[10] = cpu->r[10] + 0x0000001Cu;
|
|
/* 028B792C */ cpu->r[11] = cpu->r[11] + 0x0000001Cu;
|
|
/* 028B7930 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 028B7930 */ _t32 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 028B7930 */ _t33 = _t32 >> (0x00000002u & 31u);
|
|
/* 028B7930 */ _t34 = _t33 & 0x00000001u;
|
|
/* 028B7930 */ if (_t34) goto L_028B7924; else goto L_028B7934;
|
|
L_028B7934: ; // 0x28b7934
|
|
/* 028B7934 */ _t35 = cpu->r[12] + 0x00000DE4u;
|
|
/* 028B7934 */ rbrew_write32(cpu->mem, _t35, cpu->r[30]);
|
|
/* 028B7938 */ cpu->r[0] = 0x00000080u;
|
|
/* 028B793C */ _t36 = cpu->r[28] + 0x00000010u;
|
|
/* 028B793C */ rbrew_write32(cpu->mem, _t36, cpu->r[12]);
|
|
/* 028B7940 */ _t37 = cpu->r[28] + 0x00000014u;
|
|
/* 028B7940 */ rbrew_write32(cpu->mem, _t37, cpu->r[0]);
|
|
L_028B7944: ; // 0x28b7944
|
|
/* 028B7944 */ _t38 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7944 */ cpu->r[28] = rbrew_read32(cpu->mem, _t38);
|
|
/* 028B7948 */ _t39 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7948 */ cpu->r[29] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028B794C */ _t40 = cpu->r[1] + 0x0000001Cu;
|
|
/* 028B794C */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 028B7950 */ cpu->r[3] = cpu->r[31];
|
|
/* 028B7954 */ _t41 = cpu->r[1] + 0x00000010u;
|
|
/* 028B7954 */ cpu->r[30] = rbrew_read32(cpu->mem, _t41);
|
|
/* 028B7958 */ cpu->lr = cpu->r[0];
|
|
/* 028B795C */ _t42 = cpu->r[1] + 0x00000014u;
|
|
/* 028B795C */ cpu->r[31] = rbrew_read32(cpu->mem, _t42);
|
|
/* 028B7960 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 028B7964 */ return;
|
|
}
|
|
|
|
// fn_028B7968 @ 0x28b7968
|
|
void Gambit_fn_028B7968(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_028B7968: ; // 0x28b7968
|
|
/* 028B7968 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B796C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B796C */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B796C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B796C */ goto L_028B7970;
|
|
L_028B7970: ; // 0x28b7970
|
|
/* 028B7970 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B7970 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B7974 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7974 */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B7974 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7974 */ goto L_028B7978;
|
|
L_028B7978: ; // 0x28b7978
|
|
/* 028B7978 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B797C @ 0x28b797c
|
|
void Gambit_fn_028B797C(CPUState* cpu) {
|
|
L_028B797C: ; // 0x28b797c
|
|
/* 028B797C */ return;
|
|
}
|
|
|
|
// fn_028B7980 @ 0x28b7980
|
|
void Gambit_fn_028B7980(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_028B7980: ; // 0x28b7980
|
|
/* 028B7980 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7984 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7984 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B7984 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7984 */ goto L_028B7988;
|
|
L_028B7988: ; // 0x28b7988
|
|
/* 028B7988 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B7988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B798C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B798C */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B798C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B798C */ goto L_028B7990;
|
|
L_028B7990: ; // 0x28b7990
|
|
/* 028B7990 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B7994 @ 0x28b7994
|
|
void Gambit_fn_028B7994(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B7994: ; // 0x28b7994
|
|
/* 028B7994 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 028B7994 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B7998 */ cpu->r[11] = 0x10110000u;
|
|
/* 028B799C */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028B799C */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 028B79A0 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
/* 028B79A4 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 028B79A4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 028B79A8 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 028B79A8 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 028B79AC */ return;
|
|
}
|
|
|
|
// fn_028B79B0 @ 0x28b79b0
|
|
void Gambit_fn_028B79B0(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_028B79B0: ; // 0x28b79b0
|
|
/* 028B79B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B79B4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B79B4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 028B79B4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B79B4 */ goto L_028B79B8;
|
|
L_028B79B8: ; // 0x28b79b8
|
|
/* 028B79B8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 028B79B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B79BC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B79BC */ _t19 = _t18 & 0x00000001u;
|
|
/* 028B79BC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B79BC */ goto L_028B79C0;
|
|
L_028B79C0: ; // 0x28b79c0
|
|
/* 028B79C0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_028B79C4 @ 0x28b79c4
|
|
void Gambit_fn_028B79C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_028B79C4: ; // 0x28b79c4
|
|
/* 028B79C4 */ cpu->r[0] = cpu->lr;
|
|
/* 028B79C8 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 028B79C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 028B79CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B79D0 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B79D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 028B79D0 */ cpu->r[1] = _t1;
|
|
/* 028B79D4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B79D4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 028B79D4 */ if (_t3) goto L_028B79D8; else goto L_028B79E8;
|
|
L_028B79D8: ; // 0x28b79d8
|
|
/* 028B79D8 */ cpu->r[3] = 0x00000028u;
|
|
/* 028B79DC */ Gambit_fn_02801A78(cpu);
|
|
/* 028B79E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B79E4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B79E4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B79E4 */ if (_t5) goto L_028B7A14; else goto L_028B79E8;
|
|
L_028B79E8: ; // 0x28b79e8
|
|
/* 028B79E8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B79EC */ _t6 = cpu->r[3] + 0x00000004u;
|
|
/* 028B79EC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028B79F0 */ _t7 = cpu->r[3] + 0x00000014u;
|
|
/* 028B79F0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028B79F4 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 028B79F4 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028B79F8 */ _t9 = cpu->r[3] + 0x00000008u;
|
|
/* 028B79F8 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028B79FC */ _t10 = cpu->r[3] + 0x00000018u;
|
|
/* 028B79FC */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 028B7A00 */ _t11 = cpu->r[3] + 0x00000024u;
|
|
/* 028B7A00 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[0]);
|
|
/* 028B7A04 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B7A04 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028B7A08 */ _t13 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B7A08 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028B7A0C */ _t14 = cpu->r[3] + 0x00000020u;
|
|
/* 028B7A0C */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 028B7A10 */ _t15 = cpu->r[3] + 0x00000010u;
|
|
/* 028B7A10 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
L_028B7A14: ; // 0x28b7a14
|
|
/* 028B7A14 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7A14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 028B7A18 */ cpu->lr = cpu->r[0];
|
|
/* 028B7A1C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B7A20 */ return;
|
|
}
|
|
|
|
// fn_028B79D0 @ 0x28b79d0
|
|
void Gambit_fn_028B79D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_028B79D0: ; // 0x28b79d0
|
|
/* 028B79D0 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 028B79D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B79D0 */ cpu->r[1] = _t0;
|
|
/* 028B79D4 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B79D4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B79D4 */ if (_t2) goto L_028B79D8; else goto L_028B79E8;
|
|
L_028B79D8: ; // 0x28b79d8
|
|
/* 028B79D8 */ cpu->r[3] = 0x00000028u;
|
|
/* 028B79DC */ Gambit_fn_02801A78(cpu);
|
|
/* 028B79E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B79E4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B79E4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 028B79E4 */ if (_t4) goto L_028B7A14; else goto L_028B79E8;
|
|
L_028B79E8: ; // 0x28b79e8
|
|
/* 028B79E8 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B79EC */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 028B79EC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 028B79F0 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 028B79F0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 028B79F4 */ _t7 = cpu->r[3] + 0x00000000u;
|
|
/* 028B79F4 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 028B79F8 */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 028B79F8 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 028B79FC */ _t9 = cpu->r[3] + 0x00000018u;
|
|
/* 028B79FC */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028B7A00 */ _t10 = cpu->r[3] + 0x00000024u;
|
|
/* 028B7A00 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[0]);
|
|
/* 028B7A04 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B7A04 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 028B7A08 */ _t12 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B7A08 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 028B7A0C */ _t13 = cpu->r[3] + 0x00000020u;
|
|
/* 028B7A0C */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 028B7A10 */ _t14 = cpu->r[3] + 0x00000010u;
|
|
/* 028B7A10 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
L_028B7A14: ; // 0x28b7a14
|
|
/* 028B7A14 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7A14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 028B7A18 */ cpu->lr = cpu->r[0];
|
|
/* 028B7A1C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 028B7A20 */ return;
|
|
}
|
|
|
|
// fn_028B7A24 @ 0x28b7a24
|
|
void Gambit_fn_028B7A24(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_028B7A24: ; // 0x28b7a24
|
|
/* 028B7A24 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7A24 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7A24 */ cpu->r[1] = _t0;
|
|
/* 028B7A28 */ cpu->r[12] = rbrew_rlwinm(cpu->r[6], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028B7A2C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7A2C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B7A30 */ cpu->r[10] = rbrew_rlwinm(cpu->r[7], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028B7A34 */ cpu->r[11] = cpu->r[4] + cpu->r[12];
|
|
/* 028B7A38 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7A38 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 028B7A3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 028B7A40 */ cpu->r[12] = cpu->r[11] + cpu->r[10];
|
|
/* 028B7A44 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 028B7A44 */ rbrew_write32(cpu->mem, _t3, cpu->r[6]);
|
|
/* 028B7A48 */ cpu->r[10] = 0x00000000u;
|
|
/* 028B7A4C */ _t4 = cpu->r[3] + 0x00000018u;
|
|
/* 028B7A4C */ rbrew_write32(cpu->mem, _t4, cpu->r[5]);
|
|
/* 028B7A50 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7A50 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B7A50 */ if (_t6) goto L_028B7A9C; else goto L_028B7A54;
|
|
L_028B7A54: ; // 0x28b7a54
|
|
/* 028B7A54 */ _t7 = cpu->r[3] + 0x00000000u;
|
|
/* 028B7A54 */ cpu->r[6] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B7A58 */ cpu->r[31] = 0x00000000u;
|
|
/* 028B7A5C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[6]);
|
|
/* 028B7A60 */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B7A60 */ rbrew_write32(cpu->mem, _t8, cpu->r[4]);
|
|
/* 028B7A64 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7A64 */ _t10 = _t9 & 0x00000001u;
|
|
/* 028B7A64 */ if (_t10) goto L_028B7A68; else goto L_028B7AA0;
|
|
L_028B7A68: ; // 0x28b7a68
|
|
/* 028B7A68 */ cpu->r[6] = 0x00000000u;
|
|
L_028B7A6C: ; // 0x28b7a6c
|
|
/* 028B7A6C */ _t11 = cpu->r[3] + 0x00000018u;
|
|
/* 028B7A6C */ cpu->r[5] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7A70 */ cpu->r[30] = cpu->r[4] + cpu->r[6];
|
|
/* 028B7A74 */ _t12 = cpu->r[30] + 0x00000000u;
|
|
/* 028B7A74 */ cpu->r[4] = rbrew_read32(cpu->mem, _t12);
|
|
/* 028B7A78 */ cpu->r[4] = cpu->r[4] + cpu->r[5];
|
|
/* 028B7A7C */ _t13 = cpu->r[30] + 0x00000000u;
|
|
/* 028B7A7C */ rbrew_write32(cpu->mem, _t13, cpu->r[4]);
|
|
/* 028B7A80 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 028B7A80 */ cpu->r[5] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B7A84 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 028B7A88 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[5]);
|
|
/* 028B7A8C */ cpu->r[6] = cpu->r[6] + 0x00000008u;
|
|
/* 028B7A90 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7A90 */ _t16 = _t15 & 0x00000001u;
|
|
/* 028B7A90 */ if (_t16) goto L_028B7A94; else goto L_028B7AA0;
|
|
L_028B7A94: ; // 0x28b7a94
|
|
/* 028B7A94 */ _t17 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B7A94 */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 028B7A98 */ goto L_028B7A6C;
|
|
L_028B7A9C: ; // 0x28b7a9c
|
|
/* 028B7A9C */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B7A9C */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
L_028B7AA0: ; // 0x28b7aa0
|
|
/* 028B7AA0 */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 028B7AA0 */ rbrew_write32(cpu->mem, _t19, cpu->r[7]);
|
|
/* 028B7AA4 */ cpu->r[6] = cpu->r[7] - cpu->r[8];
|
|
/* 028B7AA8 */ _t20 = cpu->r[3] + 0x0000001Cu;
|
|
/* 028B7AA8 */ rbrew_write32(cpu->mem, _t20, cpu->r[8]);
|
|
/* 028B7AAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 028B7AB0 */ _t21 = cpu->r[3] + 0x00000020u;
|
|
/* 028B7AB0 */ rbrew_write32(cpu->mem, _t21, cpu->r[6]);
|
|
/* 028B7AB4 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7AB4 */ _t23 = _t22 & 0x00000001u;
|
|
/* 028B7AB4 */ if (_t23) goto L_028B7B00; else goto L_028B7AB8;
|
|
L_028B7AB8: ; // 0x28b7ab8
|
|
/* 028B7AB8 */ _t24 = cpu->r[3] + 0x00000004u;
|
|
/* 028B7AB8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t24);
|
|
/* 028B7ABC */ cpu->r[5] = 0x00000000u;
|
|
/* 028B7AC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[8]);
|
|
/* 028B7AC4 */ _t25 = cpu->r[3] + 0x00000010u;
|
|
/* 028B7AC4 */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
/* 028B7AC8 */ _t26 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7AC8 */ _t27 = _t26 & 0x00000001u;
|
|
/* 028B7AC8 */ if (_t27) goto L_028B7ACC; else goto L_028B7B04;
|
|
L_028B7ACC: ; // 0x28b7acc
|
|
/* 028B7ACC */ cpu->r[8] = 0x00000000u;
|
|
L_028B7AD0: ; // 0x28b7ad0
|
|
/* 028B7AD0 */ cpu->r[6] = cpu->r[11] + cpu->r[8];
|
|
/* 028B7AD4 */ _t28 = cpu->r[3] + 0x00000018u;
|
|
/* 028B7AD4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t28);
|
|
/* 028B7AD8 */ _t29 = cpu->r[6] + 0x00000000u;
|
|
/* 028B7AD8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t29);
|
|
/* 028B7ADC */ cpu->r[7] = cpu->r[7] + cpu->r[11];
|
|
/* 028B7AE0 */ _t30 = cpu->r[6] + 0x00000000u;
|
|
/* 028B7AE0 */ rbrew_write32(cpu->mem, _t30, cpu->r[7]);
|
|
/* 028B7AE4 */ _t31 = cpu->r[3] + 0x00000004u;
|
|
/* 028B7AE4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 028B7AE8 */ cpu->r[5] = cpu->r[5] + 0x00000001u;
|
|
/* 028B7AEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[11]);
|
|
/* 028B7AF0 */ cpu->r[8] = cpu->r[8] + 0x00000008u;
|
|
/* 028B7AF4 */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7AF4 */ _t33 = _t32 & 0x00000001u;
|
|
/* 028B7AF4 */ if (_t33) goto L_028B7AF8; else goto L_028B7B04;
|
|
L_028B7AF8: ; // 0x28b7af8
|
|
/* 028B7AF8 */ _t34 = cpu->r[3] + 0x00000010u;
|
|
/* 028B7AF8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t34);
|
|
/* 028B7AFC */ goto L_028B7AD0;
|
|
L_028B7B00: ; // 0x28b7b00
|
|
/* 028B7B00 */ _t35 = cpu->r[3] + 0x00000010u;
|
|
/* 028B7B00 */ rbrew_write32(cpu->mem, _t35, cpu->r[10]);
|
|
L_028B7B04: ; // 0x28b7b04
|
|
/* 028B7B04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 028B7B08 */ _t36 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7B08 */ rbrew_write32(cpu->mem, _t36, cpu->r[9]);
|
|
/* 028B7B0C */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7B0C */ _t38 = _t37 & 0x00000001u;
|
|
/* 028B7B0C */ if (_t38) goto L_028B7B58; else goto L_028B7B10;
|
|
L_028B7B10: ; // 0x28b7b10
|
|
/* 028B7B10 */ _t39 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7B10 */ cpu->r[11] = rbrew_read32(cpu->mem, _t39);
|
|
/* 028B7B14 */ cpu->r[8] = 0x00000000u;
|
|
/* 028B7B18 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[11]);
|
|
/* 028B7B1C */ _t40 = cpu->r[3] + 0x00000014u;
|
|
/* 028B7B1C */ rbrew_write32(cpu->mem, _t40, cpu->r[12]);
|
|
/* 028B7B20 */ _t41 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7B20 */ _t42 = _t41 & 0x00000001u;
|
|
/* 028B7B20 */ if (_t42) goto L_028B7B24; else goto L_028B7B5C;
|
|
L_028B7B24: ; // 0x28b7b24
|
|
/* 028B7B24 */ cpu->r[9] = 0x00000000u;
|
|
L_028B7B28: ; // 0x28b7b28
|
|
/* 028B7B28 */ cpu->r[10] = cpu->r[12] + cpu->r[9];
|
|
/* 028B7B2C */ _t43 = cpu->r[3] + 0x00000018u;
|
|
/* 028B7B2C */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 028B7B30 */ _t44 = cpu->r[10] + 0x00000000u;
|
|
/* 028B7B30 */ cpu->r[11] = rbrew_read32(cpu->mem, _t44);
|
|
/* 028B7B34 */ cpu->r[11] = cpu->r[11] + cpu->r[12];
|
|
/* 028B7B38 */ _t45 = cpu->r[10] + 0x00000000u;
|
|
/* 028B7B38 */ rbrew_write32(cpu->mem, _t45, cpu->r[11]);
|
|
/* 028B7B3C */ _t46 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7B3C */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 028B7B40 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 028B7B44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[12]);
|
|
/* 028B7B48 */ cpu->r[9] = cpu->r[9] + 0x00000008u;
|
|
/* 028B7B4C */ _t47 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7B4C */ _t48 = _t47 & 0x00000001u;
|
|
/* 028B7B4C */ if (_t48) goto L_028B7B50; else goto L_028B7B5C;
|
|
L_028B7B50: ; // 0x28b7b50
|
|
/* 028B7B50 */ _t49 = cpu->r[3] + 0x00000014u;
|
|
/* 028B7B50 */ cpu->r[12] = rbrew_read32(cpu->mem, _t49);
|
|
/* 028B7B54 */ goto L_028B7B28;
|
|
L_028B7B58: ; // 0x28b7b58
|
|
/* 028B7B58 */ _t50 = cpu->r[3] + 0x00000014u;
|
|
/* 028B7B58 */ rbrew_write32(cpu->mem, _t50, cpu->r[10]);
|
|
L_028B7B5C: ; // 0x28b7b5c
|
|
/* 028B7B5C */ cpu->r[12] = 0x00000001u;
|
|
/* 028B7B60 */ _t51 = cpu->r[3] + 0x00000024u;
|
|
/* 028B7B60 */ rbrew_write8(cpu->mem, _t51, (uint8_t)cpu->r[12]);
|
|
/* 028B7B64 */ _t52 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7B64 */ cpu->r[31] = rbrew_read32(cpu->mem, _t52);
|
|
/* 028B7B68 */ _t53 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7B68 */ cpu->r[30] = rbrew_read32(cpu->mem, _t53);
|
|
/* 028B7B6C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7B70 */ return;
|
|
}
|
|
|
|
// fn_028B7B74 @ 0x28b7b74
|
|
void Gambit_fn_028B7B74(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_028B7B74: ; // 0x28b7b74
|
|
/* 028B7B74 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B7B74 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B7B78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 028B7B7C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7B7C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B7B7C */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7B7C */ goto L_028B7B80;
|
|
L_028B7B80: ; // 0x28b7b80
|
|
/* 028B7B80 */ cpu->r[11] = rbrew_rlwinm(cpu->r[4], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028B7B84 */ _t3 = cpu->r[11] + cpu->r[3];
|
|
/* 028B7B84 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B7B88 */ return;
|
|
}
|
|
|
|
// fn_028B7B8C @ 0x28b7b8c
|
|
void Gambit_fn_028B7B8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_028B7B8C: ; // 0x28b7b8c
|
|
/* 028B7B8C */ cpu->r[12] = cpu->r[3];
|
|
/* 028B7B90 */ _t0 = cpu->r[12] + 0x00000004u;
|
|
/* 028B7B90 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B7B94 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 028B7B98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 028B7B9C */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7B9C */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B7B9C */ _t3 = _t2 ^ 0x00000001u;
|
|
/* 028B7B9C */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7B9C */ goto L_028B7BA0;
|
|
L_028B7BA0: ; // 0x28b7ba0
|
|
/* 028B7BA0 */ _t4 = cpu->r[12] + 0x00000010u;
|
|
/* 028B7BA0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B7BA4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028B7BA8 */ cpu->r[12] = cpu->r[11] + cpu->r[0];
|
|
/* 028B7BAC */ _t5 = cpu->r[12] + 0x00000004u;
|
|
/* 028B7BAC */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B7BB0 */ return;
|
|
}
|
|
|
|
// fn_028B7BB4 @ 0x28b7bb4
|
|
void Gambit_fn_028B7BB4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_028B7BB4: ; // 0x28b7bb4
|
|
/* 028B7BB4 */ _t0 = cpu->r[3] + 0x0000000Cu;
|
|
/* 028B7BB4 */ rbrew_write32(cpu->mem, _t0, cpu->r[5]);
|
|
/* 028B7BB8 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7BB8 */ rbrew_write32(cpu->mem, _t1, cpu->r[4]);
|
|
/* 028B7BBC */ _t2 = cpu->r[4] + 0x00000000u;
|
|
/* 028B7BBC */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 028B7BC0 */ _t3 = cpu->r[12] + 0x0000004Cu;
|
|
/* 028B7BC0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B7BC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], 0x00000002u);
|
|
/* 028B7BC8 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B7BCC */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7BCC */ _t5 = _t4 & 0x00000001u;
|
|
/* 028B7BCC */ if (_t5) goto L_028B7BD8; else goto L_028B7BD0;
|
|
L_028B7BD0: ; // 0x28b7bd0
|
|
/* 028B7BD0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7BD0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 028B7BD0 */ if (_t7) goto L_028B7BFC; else goto L_028B7BD4;
|
|
L_028B7BD4: ; // 0x28b7bd4
|
|
/* 028B7BD4 */ return;
|
|
L_028B7BD8: ; // 0x28b7bd8
|
|
/* 028B7BD8 */ _t8 = cpu->r[4] + 0x00000004u;
|
|
/* 028B7BD8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B7BDC */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028B7BE0 */ cpu->r[10] = 0x028B0000u;
|
|
/* 028B7BE4 */ _t9 = cpu->r[3] + 0x00000016u;
|
|
/* 028B7BE4 */ rbrew_write16(cpu->mem, _t9, (uint16_t)cpu->r[0]);
|
|
/* 028B7BE8 */ cpu->r[10] = cpu->r[10] + 0x00007E80u;
|
|
/* 028B7BEC */ _t10 = cpu->r[3] + 0x00000014u;
|
|
/* 028B7BEC */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[12]);
|
|
/* 028B7BF0 */ _t11 = cpu->r[3] + 0x00000018u;
|
|
/* 028B7BF0 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 028B7BF4 */ _t12 = cpu->r[3] + 0x00000010u;
|
|
/* 028B7BF4 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 028B7BF8 */ return;
|
|
L_028B7BFC: ; // 0x28b7bfc
|
|
/* 028B7BFC */ _t13 = cpu->r[4] + 0x00000004u;
|
|
/* 028B7BFC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 028B7C00 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 028B7C04 */ cpu->r[10] = 0x028B0000u;
|
|
/* 028B7C08 */ _t14 = cpu->r[3] + 0x00000016u;
|
|
/* 028B7C08 */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[0]);
|
|
/* 028B7C0C */ cpu->r[10] = cpu->r[10] + 0x00007ED0u;
|
|
/* 028B7C10 */ _t15 = cpu->r[3] + 0x00000010u;
|
|
/* 028B7C10 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[0]);
|
|
/* 028B7C14 */ _t16 = cpu->r[3] + 0x00000018u;
|
|
/* 028B7C14 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 028B7C18 */ _t17 = cpu->r[3] + 0x00000014u;
|
|
/* 028B7C18 */ rbrew_write16(cpu->mem, _t17, (uint16_t)cpu->r[12]);
|
|
/* 028B7C1C */ return;
|
|
}
|
|
|
|
// fn_028B7C20 @ 0x28b7c20
|
|
void Gambit_fn_028B7C20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028B7C20: ; // 0x28b7c20
|
|
/* 028B7C20 */ _t0 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7C20 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 028B7C24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 028B7C28 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7C28 */ _t2 = _t1 & 0x00000001u;
|
|
/* 028B7C28 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 028B7C28 */ goto L_028B7C2C;
|
|
L_028B7C2C: ; // 0x28b7c2c
|
|
/* 028B7C2C */ _t3 = cpu->r[12] + 0x00000000u;
|
|
/* 028B7C2C */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 028B7C30 */ _t4 = cpu->r[12] + 0x0000004Cu;
|
|
/* 028B7C30 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B7C34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000002u);
|
|
/* 028B7C38 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7C38 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B7C38 */ if (_t6) goto L_028B7C44; else goto L_028B7C3C;
|
|
L_028B7C3C: ; // 0x28b7c3c
|
|
/* 028B7C3C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 028B7C3C */ _t8 = _t7 & 0x00000001u;
|
|
/* 028B7C3C */ if (_t8) goto L_028B7C50; else goto L_028B7C40;
|
|
L_028B7C40: ; // 0x28b7c40
|
|
/* 028B7C40 */ return;
|
|
L_028B7C44: ; // 0x28b7c44
|
|
/* 028B7C44 */ cpu->r[0] = 0x00000000u;
|
|
/* 028B7C48 */ _t9 = cpu->r[3] + 0x00000010u;
|
|
/* 028B7C48 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 028B7C4C */ return;
|
|
L_028B7C50: ; // 0x28b7c50
|
|
/* 028B7C50 */ cpu->r[12] = 0x10140000u;
|
|
/* 028B7C54 */ _t10 = cpu->r[12] + 0xFFFF8CECu;
|
|
/* 028B7C54 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 028B7C58 */ _t11 = cpu->r[3] + 0x00000010u;
|
|
/* 028B7C58 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 028B7C5C */ return;
|
|
}
|
|
|
|
// fn_028B7C60 @ 0x28b7c60
|
|
void Gambit_fn_028B7C60(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B7C60: ; // 0x28b7c60
|
|
/* 028B7C60 */ cpu->r[0] = cpu->lr;
|
|
/* 028B7C64 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7C64 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7C64 */ cpu->r[1] = _t0;
|
|
/* 028B7C68 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7C68 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B7C6C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7C70 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7C70 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B7C74 */ _t3 = cpu->r[31] + 0x00000016u;
|
|
/* 028B7C74 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t3);
|
|
/* 028B7C78 */ _t4 = cpu->r[31] + 0x00000014u;
|
|
/* 028B7C78 */ cpu->r[11] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t4);
|
|
/* 028B7C7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B7C80 */ cpu->r[3] = cpu->r[31] + cpu->r[11];
|
|
/* 028B7C84 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7C84 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B7C84 */ if (_t6) goto L_028B7C88; else goto L_028B7CA0;
|
|
L_028B7C88: ; // 0x28b7c88
|
|
/* 028B7C88 */ _t7 = cpu->r[31] + 0x00000018u;
|
|
/* 028B7C88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B7C8C */ cpu->ctr = cpu->r[0];
|
|
/* 028B7C90 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7C94 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B7C98 */ _t8 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028B7C98 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[12]);
|
|
/* 028B7C9C */ goto L_028B7CC4;
|
|
L_028B7CA0: ; // 0x28b7ca0
|
|
/* 028B7CA0 */ _t9 = cpu->r[31] + 0x0000001Au;
|
|
/* 028B7CA0 */ cpu->r[11] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t9);
|
|
/* 028B7CA4 */ _t10 = cpu->r[3] + cpu->r[11];
|
|
/* 028B7CA4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B7CA8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028B7CAC */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028B7CB0 */ _t11 = cpu->r[12] + 0x00000004u;
|
|
/* 028B7CB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7CB4 */ cpu->ctr = cpu->r[0];
|
|
/* 028B7CB8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7CBC */ cpu->r[12] = 0x00000000u;
|
|
/* 028B7CC0 */ _t12 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028B7CC0 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[12]);
|
|
L_028B7CC4: ; // 0x28b7cc4
|
|
/* 028B7CC4 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7CC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B7CC8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7CC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B7CCC */ cpu->lr = cpu->r[0];
|
|
/* 028B7CD0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7CD4 */ return;
|
|
}
|
|
|
|
// fn_028B7C64 @ 0x28b7c64
|
|
void Gambit_fn_028B7C64(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_028B7C64: ; // 0x28b7c64
|
|
/* 028B7C64 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7C64 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7C64 */ cpu->r[1] = _t0;
|
|
/* 028B7C68 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7C68 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 028B7C6C */ cpu->r[31] = cpu->r[3];
|
|
/* 028B7C70 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7C70 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 028B7C74 */ _t3 = cpu->r[31] + 0x00000016u;
|
|
/* 028B7C74 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t3);
|
|
/* 028B7C78 */ _t4 = cpu->r[31] + 0x00000014u;
|
|
/* 028B7C78 */ cpu->r[11] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t4);
|
|
/* 028B7C7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 028B7C80 */ cpu->r[3] = cpu->r[31] + cpu->r[11];
|
|
/* 028B7C84 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 028B7C84 */ _t6 = _t5 & 0x00000001u;
|
|
/* 028B7C84 */ if (_t6) goto L_028B7C88; else goto L_028B7CA0;
|
|
L_028B7C88: ; // 0x28b7c88
|
|
/* 028B7C88 */ _t7 = cpu->r[31] + 0x00000018u;
|
|
/* 028B7C88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B7C8C */ cpu->ctr = cpu->r[0];
|
|
/* 028B7C90 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7C94 */ cpu->r[12] = 0x00000000u;
|
|
/* 028B7C98 */ _t8 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028B7C98 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[12]);
|
|
/* 028B7C9C */ goto L_028B7CC4;
|
|
L_028B7CA0: ; // 0x28b7ca0
|
|
/* 028B7CA0 */ _t9 = cpu->r[31] + 0x0000001Au;
|
|
/* 028B7CA0 */ cpu->r[11] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t9);
|
|
/* 028B7CA4 */ _t10 = cpu->r[3] + cpu->r[11];
|
|
/* 028B7CA4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B7CA8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 028B7CAC */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 028B7CB0 */ _t11 = cpu->r[12] + 0x00000004u;
|
|
/* 028B7CB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7CB4 */ cpu->ctr = cpu->r[0];
|
|
/* 028B7CB8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 028B7CBC */ cpu->r[12] = 0x00000000u;
|
|
/* 028B7CC0 */ _t12 = cpu->r[31] + 0x0000001Cu;
|
|
/* 028B7CC0 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[12]);
|
|
L_028B7CC4: ; // 0x28b7cc4
|
|
/* 028B7CC4 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7CC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 028B7CC8 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7CC8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 028B7CCC */ cpu->lr = cpu->r[0];
|
|
/* 028B7CD0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7CD4 */ return;
|
|
}
|
|
|
|
// fn_028B7CD8 @ 0x28b7cd8
|
|
void Gambit_fn_028B7CD8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_028B7CD8: ; // 0x28b7cd8
|
|
/* 028B7CD8 */ cpu->r[0] = cpu->lr;
|
|
/* 028B7CDC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 028B7CDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 028B7CDC */ cpu->r[1] = _t0;
|
|
/* 028B7CE0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7CE0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 028B7CE4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7CE4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 028B7CE8 */ cpu->r[30] = cpu->r[3];
|
|
/* 028B7CEC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7CEC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 028B7CF0 */ _t4 = cpu->r[30] + 0x00000000u;
|
|
/* 028B7CF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 028B7CF4 */ _t5 = cpu->r[12] + 0x00000020u;
|
|
/* 028B7CF4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 028B7CF8 */ _t6 = cpu->r[11] + 0x0000000Cu;
|
|
/* 028B7CF8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 028B7CFC */ cpu->r[31] = cpu->r[4];
|
|
/* 028B7D00 */ Gambit_fn_028AE39C(cpu);
|
|
/* 028B7D04 */ _t7 = cpu->r[3] + 0x00000014u;
|
|
/* 028B7D04 */ cpu->r[6] = rbrew_read32(cpu->mem, _t7);
|
|
/* 028B7D08 */ cpu->r[4] = 0x00000001u;
|
|
/* 028B7D0C */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 028B7D0C */ cpu->r[7] = rbrew_read32(cpu->mem, _t8);
|
|
/* 028B7D10 */ cpu->r[3] = cpu->r[30];
|
|
/* 028B7D14 */ cpu->r[5] = cpu->r[31];
|
|
/* 028B7D18 */ Gambit_fn_028B872C(cpu);
|
|
/* 028B7D1C */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 028B7D1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 028B7D20 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 028B7D20 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 028B7D24 */ cpu->lr = cpu->r[0];
|
|
/* 028B7D28 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 028B7D28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 028B7D2C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 028B7D30 */ return;
|
|
}
|
|
|