mirror of
https://github.com/ApfelTeeSaft/RebrewU.git
synced 2026-08-26 19:33:27 +00:00
49726 lines
2.6 MiB
Plaintext
49726 lines
2.6 MiB
Plaintext
// Generated by RebrewU -- do not edit
|
|
#include <rebrewu_runtime.h>
|
|
#include <stdint.h>
|
|
#include <math.h>
|
|
|
|
#include "Gambit.h"
|
|
|
|
// fn_0297FE3C @ 0x297fe3c
|
|
void Gambit_fn_0297FE3C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_0297FE3C: ; // 0x297fe3c
|
|
/* 0297FE3C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0297FE3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0297FE3C */ cpu->r[1] = _t0;
|
|
/* 0297FE40 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0297FE40 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0297FE44 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0297FE44 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0297FE48 */ cpu->r[30] = cpu->r[3];
|
|
/* 0297FE4C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0297FE4C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0297FE50 */ _t4 = cpu->r[30] + 0x000000A4u;
|
|
/* 0297FE50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0297FE54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0297FE58 */ cpu->r[31] = cpu->r[4];
|
|
/* 0297FE5C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297FE5C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0297FE5C */ if (_t6) goto L_0297FEA0; else goto L_0297FE60;
|
|
L_0297FE60: ; // 0x297fe60
|
|
/* 0297FE60 */ _t7 = cpu->r[30] + 0x000000A8u;
|
|
/* 0297FE60 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0297FE64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0297FE68 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297FE68 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0297FE68 */ if (_t9) goto L_0297FE84; else goto L_0297FE6C;
|
|
L_0297FE6C: ; // 0x297fe6c
|
|
/* 0297FE6C */ _t10 = cpu->r[3] + 0x00000000u;
|
|
/* 0297FE6C */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0297FE70 */ _t11 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0297FE70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0297FE74 */ cpu->ctr = cpu->r[12];
|
|
/* 0297FE78 */ cpu->r[4] = cpu->r[30];
|
|
/* 0297FE7C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0297FE80 */ _t12 = cpu->r[30] + 0x000000A4u;
|
|
/* 0297FE80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
L_0297FE84: ; // 0x297fe84
|
|
/* 0297FE84 */ cpu->r[5] = cpu->r[31];
|
|
/* 0297FE88 */ cpu->r[4] = cpu->r[30];
|
|
/* 0297FE8C */ cpu->r[3] = cpu->r[0];
|
|
/* 0297FE90 */ Gambit_fn_02984634(cpu);
|
|
/* 0297FE94 */ _t13 = cpu->r[30] + 0x000000A4u;
|
|
/* 0297FE94 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0297FE98 */ cpu->r[4] = cpu->r[30];
|
|
/* 0297FE9C */ Gambit_fn_029848B0(cpu);
|
|
L_0297FEA0: ; // 0x297fea0
|
|
/* 0297FEA0 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 0297FEA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0297FEA4 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 0297FEA4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0297FEA8 */ cpu->lr = cpu->r[0];
|
|
/* 0297FEAC */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0297FEAC */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0297FEB0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0297FEB4 */ return;
|
|
}
|
|
|
|
// fn_0297FEB8 @ 0x297feb8
|
|
void Gambit_fn_0297FEB8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_0297FEB8: ; // 0x297feb8
|
|
/* 0297FEB8 */ cpu->r[0] = cpu->lr;
|
|
/* 0297FEBC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0297FEBC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0297FEBC */ cpu->r[1] = _t0;
|
|
/* 0297FEC0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0297FEC0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0297FEC4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0297FEC4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0297FEC8 */ cpu->r[31] = 0x101D0000u;
|
|
/* 0297FECC */ cpu->r[30] = cpu->r[4];
|
|
/* 0297FED0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0297FED0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0297FED4 */ _t4 = cpu->r[31] + 0xFFFFA9E8u;
|
|
/* 0297FED4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0297FED8 */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 0297FEDC */ cpu->r[12] = 0x101F0000u;
|
|
/* 0297FEE0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0297FEE4 */ cpu->r[12] = cpu->r[12] + 0x000065D0u;
|
|
/* 0297FEE8 */ _t5 = cpu->r[12] + cpu->r[0];
|
|
/* 0297FEE8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0297FEEC */ cpu->r[3] = cpu->r[31];
|
|
/* 0297FEF0 */ Gambit_fn_02A0F138(cpu);
|
|
/* 0297FEF4 */ cpu->r[4] = cpu->r[3];
|
|
/* 0297FEF8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0297FEFC */ Gambit_fn_0297FE38(cpu);
|
|
/* 0297FF00 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 0297FF00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0297FF04 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0297FF04 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0297FF08 */ cpu->lr = cpu->r[0];
|
|
/* 0297FF0C */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 0297FF0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0297FF10 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0297FF14 */ return;
|
|
}
|
|
|
|
// fn_0297FEBC @ 0x297febc
|
|
void Gambit_fn_0297FEBC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_0297FEBC: ; // 0x297febc
|
|
/* 0297FEBC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0297FEBC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0297FEBC */ cpu->r[1] = _t0;
|
|
/* 0297FEC0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0297FEC0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0297FEC4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0297FEC4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0297FEC8 */ cpu->r[31] = 0x101D0000u;
|
|
/* 0297FECC */ cpu->r[30] = cpu->r[4];
|
|
/* 0297FED0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0297FED0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0297FED4 */ _t4 = cpu->r[31] + 0xFFFFA9E8u;
|
|
/* 0297FED4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0297FED8 */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 0297FEDC */ cpu->r[12] = 0x101F0000u;
|
|
/* 0297FEE0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0297FEE4 */ cpu->r[12] = cpu->r[12] + 0x000065D0u;
|
|
/* 0297FEE8 */ _t5 = cpu->r[12] + cpu->r[0];
|
|
/* 0297FEE8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0297FEEC */ cpu->r[3] = cpu->r[31];
|
|
/* 0297FEF0 */ Gambit_fn_02A0F138(cpu);
|
|
/* 0297FEF4 */ cpu->r[4] = cpu->r[3];
|
|
/* 0297FEF8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0297FEFC */ Gambit_fn_0297FE38(cpu);
|
|
/* 0297FF00 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 0297FF00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0297FF04 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0297FF04 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0297FF08 */ cpu->lr = cpu->r[0];
|
|
/* 0297FF0C */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 0297FF0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0297FF10 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0297FF14 */ return;
|
|
}
|
|
|
|
// fn_0297FF18 @ 0x297ff18
|
|
void Gambit_fn_0297FF18(CPUState* cpu) {
|
|
uint32_t _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, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83;
|
|
double _ft54, _ft55, _ft63, _ft64, _ft72, _ft73;
|
|
|
|
L_0297FF18: ; // 0x297ff18
|
|
/* 0297FF18 */ cpu->r[0] = cpu->lr;
|
|
/* 0297FF1C */ _t0 = cpu->r[1] + 0xFFFFFF88u;
|
|
/* 0297FF1C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0297FF1C */ cpu->r[1] = _t0;
|
|
/* 0297FF20 */ _t1 = cpu->r[1] + 0x00000070u;
|
|
/* 0297FF20 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0297FF24 */ cpu->r[30] = cpu->r[4];
|
|
/* 0297FF28 */ _t2 = cpu->r[1] + 0x00000068u;
|
|
/* 0297FF28 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0297FF2C */ _t3 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0297FF2C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0297FF30 */ _t4 = cpu->r[1] + 0x00000074u;
|
|
/* 0297FF30 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0297FF34 */ _t5 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0297FF34 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0297FF38 */ cpu->r[29] = cpu->r[3];
|
|
/* 0297FF3C */ _t6 = cpu->r[30] + 0x00000008u;
|
|
/* 0297FF3C */ cpu->r[3] = rbrew_read16(cpu->mem, _t6);
|
|
/* 0297FF40 */ _t7 = cpu->r[29] + 0x0000001Cu;
|
|
/* 0297FF40 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0297FF44 */ cpu->r[0] = cpu->r[3];
|
|
/* 0297FF48 */ cpu->r[8] = 0x00000000u;
|
|
/* 0297FF4C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[7]);
|
|
/* 0297FF50 */ cpu->r[31] = cpu->r[5];
|
|
/* 0297FF54 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0297FF54 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0297FF54 */ if (_t9) goto L_0297FF58; else goto L_0297FF64;
|
|
L_0297FF58: ; // 0x297ff58
|
|
/* 0297FF58 */ _t10 = cpu->r[29] + 0x00000024u;
|
|
/* 0297FF58 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0297FF5C */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0297FF60 */ _t11 = cpu->r[8] + cpu->r[9];
|
|
/* 0297FF60 */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
L_0297FF64: ; // 0x297ff64
|
|
/* 0297FF64 */ _t12 = cpu->r[8] + 0x00000000u;
|
|
/* 0297FF64 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0297FF68 */ _t13 = cpu->r[11] + 0x00000000u;
|
|
/* 0297FF68 */ cpu->r[11] = rbrew_read8(cpu->mem, _t13);
|
|
/* 0297FF6C */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0297FF6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0297FF70 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297FF70 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0297FF70 */ if (_t15) goto L_02980198; else goto L_0297FF74;
|
|
L_0297FF74: ; // 0x297ff74
|
|
/* 0297FF74 */ _t16 = cpu->r[30] + 0x00000004u;
|
|
/* 0297FF74 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t16);
|
|
/* 0297FF78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 0297FF7C */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 0297FF7C */ cpu->r[28] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0297FF80 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297FF80 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0297FF80 */ if (_t19) goto L_0297FF90; else goto L_0297FF84;
|
|
L_0297FF84: ; // 0x297ff84
|
|
/* 0297FF84 */ _t20 = cpu->r[30] + 0x00000006u;
|
|
/* 0297FF84 */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t20);
|
|
/* 0297FF88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0xFFFFFFFFu);
|
|
/* 0297FF8C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297FF8C */ _t22 = _t21 & 0x00000001u;
|
|
/* 0297FF8C */ if (_t22) goto L_0297FF90; else goto L_0297FFF0;
|
|
L_0297FF90: ; // 0x297ff90
|
|
/* 0297FF90 */ _t23 = cpu->r[29] + 0x00000064u;
|
|
/* 0297FF90 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 0297FF94 */ _t24 = cpu->r[29] + 0x00000070u;
|
|
/* 0297FF94 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0297FF98 */ _t25 = cpu->r[29] + 0x00000068u;
|
|
/* 0297FF98 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 0297FF9C */ _t26 = cpu->r[29] + 0x00000074u;
|
|
/* 0297FF9C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 0297FFA0 */ cpu->f[10] = cpu->f[9] * cpu->f[10];
|
|
/* 0297FFA4 */ _t27 = cpu->r[29] + 0x0000006Cu;
|
|
/* 0297FFA4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 0297FFA8 */ _t28 = cpu->r[29] + 0x00000078u;
|
|
/* 0297FFA8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 0297FFAC */ cpu->f[7] = cpu->f[11] * cpu->f[12];
|
|
/* 0297FFB0 */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0297FFB0 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[10]);
|
|
/* 0297FFB4 */ cpu->f[8] = cpu->f[13] * cpu->f[0];
|
|
/* 0297FFB8 */ _t30 = cpu->r[1] + 0x00000030u;
|
|
/* 0297FFB8 */ rbrew_write_f32(cpu->mem, _t30, cpu->f[7]);
|
|
/* 0297FFBC */ _t31 = cpu->r[1] + 0x00000034u;
|
|
/* 0297FFBC */ rbrew_write_f32(cpu->mem, _t31, cpu->f[8]);
|
|
/* 0297FFC0 */ _t32 = cpu->r[28] + 0x00000088u;
|
|
/* 0297FFC0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0297FFC4 */ _t33 = cpu->r[12] + 0x00000234u;
|
|
/* 0297FFC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0297FFC8 */ cpu->r[4] = cpu->r[29] + 0x00000034u;
|
|
/* 0297FFCC */ _t34 = cpu->r[29] + 0x0000007Cu;
|
|
/* 0297FFCC */ cpu->r[10] = rbrew_read8(cpu->mem, _t34);
|
|
/* 0297FFD0 */ cpu->ctr = cpu->r[0];
|
|
/* 0297FFD4 */ cpu->r[5] = cpu->r[1] + 0x0000002Cu;
|
|
/* 0297FFD8 */ cpu->r[6] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0297FFDC */ cpu->r[3] = cpu->r[28];
|
|
/* 0297FFE0 */ cpu->r[7] = cpu->r[31];
|
|
/* 0297FFE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0297FFE8 */ _t35 = cpu->r[30] + 0x00000008u;
|
|
/* 0297FFE8 */ cpu->r[3] = rbrew_read16(cpu->mem, _t35);
|
|
/* 0297FFEC */ goto L_02980198;
|
|
L_0297FFF0: ; // 0x297fff0
|
|
/* 0297FFF0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[7]);
|
|
/* 0297FFF4 */ cpu->r[10] = 0x00000000u;
|
|
/* 0297FFF8 */ _t36 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0297FFF8 */ _t37 = _t36 & 0x00000001u;
|
|
/* 0297FFF8 */ if (_t37) goto L_0297FFFC; else goto L_02980008;
|
|
L_0297FFFC: ; // 0x297fffc
|
|
/* 0297FFFC */ _t38 = cpu->r[29] + 0x00000024u;
|
|
/* 0297FFFC */ cpu->r[8] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02980000 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980004 */ _t39 = cpu->r[11] + cpu->r[8];
|
|
/* 02980004 */ cpu->r[10] = rbrew_read32(cpu->mem, _t39);
|
|
L_02980008: ; // 0x2980008
|
|
/* 02980008 */ _t40 = cpu->r[10] + 0x00000000u;
|
|
/* 02980008 */ cpu->r[3] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298000C */ _t41 = cpu->r[3] + 0x00000088u;
|
|
/* 0298000C */ cpu->r[10] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02980010 */ _t42 = cpu->r[10] + 0x00000074u;
|
|
/* 02980010 */ cpu->r[11] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02980014 */ cpu->ctr = cpu->r[11];
|
|
/* 02980018 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 0298001C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980020 */ _t43 = cpu->r[30] + 0x0000000Au;
|
|
/* 02980020 */ cpu->r[0] = rbrew_read8(cpu->mem, _t43);
|
|
/* 02980024 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02980024 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02980028 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980028 */ _t45 = _t44 & 0x00000001u;
|
|
/* 02980028 */ if (_t45) goto L_0298016C; else goto L_0298002C;
|
|
L_0298002C: ; // 0x298002c
|
|
/* 0298002C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02980030 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 02980034 */ cpu->r[5] = 0x00000000u;
|
|
/* 02980038 */ Gambit_fn_0200D42C(cpu);
|
|
/* 0298003C */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 02980040 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 02980044 */ cpu->r[5] = 0x00000001u;
|
|
/* 02980048 */ Gambit_fn_0200D42C(cpu);
|
|
/* 0298004C */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 02980050 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 02980054 */ cpu->r[5] = 0x00000002u;
|
|
/* 02980058 */ Gambit_fn_0200D42C(cpu);
|
|
/* 0298005C */ _t46 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298005C */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 02980060 */ _t47 = cpu->r[1] + 0x00000008u;
|
|
/* 02980060 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 02980064 */ cpu->f[7] = cpu->f[7] * cpu->f[7];
|
|
/* 02980068 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298006C */ cpu->f[9] = fma(cpu->f[8], cpu->f[8], cpu->f[7]);
|
|
/* 02980070 */ _t48 = cpu->r[1] + 0x00000010u;
|
|
/* 02980070 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 02980074 */ _t49 = cpu->r[9] + 0xFFFFECE4u;
|
|
/* 02980074 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 02980078 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298007C */ cpu->f[7] = fma(cpu->f[8], cpu->f[8], cpu->f[9]);
|
|
/* 02980080 */ _t50 = cpu->r[7] + 0xFFFFECECu;
|
|
/* 02980080 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 02980084 */ cpu->r[12] = 0x10150000u;
|
|
/* 02980088 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[7], cpu->f[13]);
|
|
/* 0298008C */ _t51 = cpu->r[12] + 0xFFFFECE8u;
|
|
/* 0298008C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 02980090 */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980090 */ _t53 = _t52 & 0x00000001u;
|
|
/* 02980090 */ if (_t53) goto L_02980094; else goto L_029800C0;
|
|
L_02980094: ; // 0x2980094
|
|
/* 02980094 */ _ft54 = sqrt(cpu->f[7]);
|
|
/* 02980094 */ _ft55 = (double)(int32_t)0x00000001u;
|
|
/* 02980094 */ cpu->f[8] = _ft55 / _ft54;
|
|
/* 02980098 */ cpu->f[9] = cpu->f[8] * cpu->f[8];
|
|
/* 0298009C */ cpu->f[10] = cpu->f[8] * cpu->f[0];
|
|
/* 029800A0 */ cpu->f[9] = -fma(cpu->f[9], cpu->f[7], -(cpu->f[12]));
|
|
/* 029800A4 */ cpu->f[8] = cpu->f[9] * cpu->f[10];
|
|
/* 029800A8 */ _t56 = cpu->r[1] + 0x00000010u;
|
|
/* 029800A8 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 029800AC */ /* nop */
|
|
/* 029800B0 */ cpu->f[7] = cpu->f[7] * cpu->f[8];
|
|
/* 029800B4 */ /* nop */
|
|
/* 029800B8 */ _t57 = cpu->r[1] + 0x00000010u;
|
|
/* 029800B8 */ rbrew_write_f32(cpu->mem, _t57, cpu->f[7]);
|
|
/* 029800BC */ /* nop */
|
|
L_029800C0: ; // 0x29800c0
|
|
/* 029800C0 */ _t58 = cpu->r[1] + 0x00000018u;
|
|
/* 029800C0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 029800C4 */ cpu->f[8] = cpu->f[11] * cpu->f[11];
|
|
/* 029800C8 */ _t59 = cpu->r[1] + 0x00000014u;
|
|
/* 029800C8 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 029800CC */ cpu->f[9] = fma(cpu->f[9], cpu->f[9], cpu->f[8]);
|
|
/* 029800D0 */ _t60 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029800D0 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 029800D4 */ cpu->f[11] = fma(cpu->f[8], cpu->f[8], cpu->f[9]);
|
|
/* 029800D8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[13]);
|
|
/* 029800DC */ _t61 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029800DC */ _t62 = _t61 & 0x00000001u;
|
|
/* 029800DC */ if (_t62) goto L_029800E0; else goto L_0298010C;
|
|
L_029800E0: ; // 0x29800e0
|
|
/* 029800E0 */ _ft63 = sqrt(cpu->f[11]);
|
|
/* 029800E0 */ _ft64 = (double)(int32_t)0x00000001u;
|
|
/* 029800E0 */ cpu->f[7] = _ft64 / _ft63;
|
|
/* 029800E4 */ cpu->f[8] = cpu->f[7] * cpu->f[7];
|
|
/* 029800E8 */ cpu->f[9] = cpu->f[7] * cpu->f[0];
|
|
/* 029800EC */ cpu->f[8] = -fma(cpu->f[8], cpu->f[11], -(cpu->f[12]));
|
|
/* 029800F0 */ cpu->f[7] = cpu->f[8] * cpu->f[9];
|
|
/* 029800F4 */ _t65 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029800F4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 029800F8 */ /* nop */
|
|
/* 029800FC */ cpu->f[9] = cpu->f[9] * cpu->f[7];
|
|
/* 02980100 */ /* nop */
|
|
/* 02980104 */ _t66 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980104 */ rbrew_write_f32(cpu->mem, _t66, cpu->f[9]);
|
|
/* 02980108 */ /* nop */
|
|
L_0298010C: ; // 0x298010c
|
|
/* 0298010C */ _t67 = cpu->r[1] + 0x00000024u;
|
|
/* 0298010C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 02980110 */ cpu->f[10] = cpu->f[11] * cpu->f[11];
|
|
/* 02980114 */ _t68 = cpu->r[1] + 0x00000020u;
|
|
/* 02980114 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 02980118 */ cpu->f[11] = fma(cpu->f[11], cpu->f[11], cpu->f[10]);
|
|
/* 0298011C */ _t69 = cpu->r[1] + 0x00000028u;
|
|
/* 0298011C */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 02980120 */ cpu->f[10] = fma(cpu->f[7], cpu->f[7], cpu->f[11]);
|
|
/* 02980124 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[13]);
|
|
/* 02980128 */ _t70 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980128 */ _t71 = _t70 & 0x00000001u;
|
|
/* 02980128 */ if (_t71) goto L_0298012C; else goto L_02980158;
|
|
L_0298012C: ; // 0x298012c
|
|
/* 0298012C */ _ft72 = sqrt(cpu->f[10]);
|
|
/* 0298012C */ _ft73 = (double)(int32_t)0x00000001u;
|
|
/* 0298012C */ cpu->f[11] = _ft73 / _ft72;
|
|
/* 02980130 */ cpu->f[13] = cpu->f[11] * cpu->f[11];
|
|
/* 02980134 */ cpu->f[8] = cpu->f[11] * cpu->f[0];
|
|
/* 02980138 */ cpu->f[13] = -fma(cpu->f[13], cpu->f[10], -(cpu->f[12]));
|
|
/* 0298013C */ cpu->f[11] = cpu->f[13] * cpu->f[8];
|
|
/* 02980140 */ _t74 = cpu->r[1] + 0x00000028u;
|
|
/* 02980140 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 02980144 */ /* nop */
|
|
/* 02980148 */ cpu->f[10] = cpu->f[10] * cpu->f[11];
|
|
/* 0298014C */ /* nop */
|
|
/* 02980150 */ _t75 = cpu->r[1] + 0x00000028u;
|
|
/* 02980150 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[10]);
|
|
/* 02980154 */ /* nop */
|
|
L_02980158: ; // 0x2980158
|
|
/* 02980158 */ cpu->r[6] = cpu->r[1] + 0x00000020u;
|
|
/* 0298015C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 02980160 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 02980164 */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 02980168 */ Gambit_fn_0216C948(cpu);
|
|
L_0298016C: ; // 0x298016c
|
|
/* 0298016C */ _t76 = cpu->r[28] + 0x00000088u;
|
|
/* 0298016C */ cpu->r[12] = rbrew_read32(cpu->mem, _t76);
|
|
/* 02980170 */ _t77 = cpu->r[12] + 0x00000234u;
|
|
/* 02980170 */ cpu->r[9] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02980174 */ cpu->r[5] = 0x101F0000u;
|
|
/* 02980178 */ cpu->ctr = cpu->r[9];
|
|
/* 0298017C */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 02980180 */ cpu->r[5] = cpu->r[5] + 0x00006368u;
|
|
/* 02980184 */ cpu->r[6] = 0x00000001u;
|
|
/* 02980188 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298018C */ cpu->r[7] = cpu->r[31];
|
|
/* 02980190 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980194 */ _t78 = cpu->r[30] + 0x00000008u;
|
|
/* 02980194 */ cpu->r[3] = rbrew_read16(cpu->mem, _t78);
|
|
L_02980198: ; // 0x2980198
|
|
/* 02980198 */ _t79 = cpu->r[1] + 0x00000068u;
|
|
/* 02980198 */ cpu->r[28] = rbrew_read32(cpu->mem, _t79);
|
|
/* 0298019C */ _t80 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0298019C */ cpu->r[29] = rbrew_read32(cpu->mem, _t80);
|
|
/* 029801A0 */ _t81 = cpu->r[1] + 0x0000007Cu;
|
|
/* 029801A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 029801A4 */ _t82 = cpu->r[1] + 0x00000070u;
|
|
/* 029801A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t82);
|
|
/* 029801A8 */ cpu->lr = cpu->r[0];
|
|
/* 029801AC */ _t83 = cpu->r[1] + 0x00000074u;
|
|
/* 029801AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t83);
|
|
/* 029801B0 */ cpu->r[1] = cpu->r[1] + 0x00000078u;
|
|
/* 029801B4 */ return;
|
|
}
|
|
|
|
// fn_0297FF1C @ 0x297ff1c
|
|
void Gambit_fn_0297FF1C(CPUState* cpu) {
|
|
uint32_t _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, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83;
|
|
double _ft54, _ft55, _ft63, _ft64, _ft72, _ft73;
|
|
|
|
L_0297FF1C: ; // 0x297ff1c
|
|
/* 0297FF1C */ _t0 = cpu->r[1] + 0xFFFFFF88u;
|
|
/* 0297FF1C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0297FF1C */ cpu->r[1] = _t0;
|
|
/* 0297FF20 */ _t1 = cpu->r[1] + 0x00000070u;
|
|
/* 0297FF20 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0297FF24 */ cpu->r[30] = cpu->r[4];
|
|
/* 0297FF28 */ _t2 = cpu->r[1] + 0x00000068u;
|
|
/* 0297FF28 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0297FF2C */ _t3 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0297FF2C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0297FF30 */ _t4 = cpu->r[1] + 0x00000074u;
|
|
/* 0297FF30 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0297FF34 */ _t5 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0297FF34 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0297FF38 */ cpu->r[29] = cpu->r[3];
|
|
/* 0297FF3C */ _t6 = cpu->r[30] + 0x00000008u;
|
|
/* 0297FF3C */ cpu->r[3] = rbrew_read16(cpu->mem, _t6);
|
|
/* 0297FF40 */ _t7 = cpu->r[29] + 0x0000001Cu;
|
|
/* 0297FF40 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0297FF44 */ cpu->r[0] = cpu->r[3];
|
|
/* 0297FF48 */ cpu->r[8] = 0x00000000u;
|
|
/* 0297FF4C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[7]);
|
|
/* 0297FF50 */ cpu->r[31] = cpu->r[5];
|
|
/* 0297FF54 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0297FF54 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0297FF54 */ if (_t9) goto L_0297FF58; else goto L_0297FF64;
|
|
L_0297FF58: ; // 0x297ff58
|
|
/* 0297FF58 */ _t10 = cpu->r[29] + 0x00000024u;
|
|
/* 0297FF58 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0297FF5C */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0297FF60 */ _t11 = cpu->r[8] + cpu->r[9];
|
|
/* 0297FF60 */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
L_0297FF64: ; // 0x297ff64
|
|
/* 0297FF64 */ _t12 = cpu->r[8] + 0x00000000u;
|
|
/* 0297FF64 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0297FF68 */ _t13 = cpu->r[11] + 0x00000000u;
|
|
/* 0297FF68 */ cpu->r[11] = rbrew_read8(cpu->mem, _t13);
|
|
/* 0297FF6C */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0297FF6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0297FF70 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297FF70 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0297FF70 */ if (_t15) goto L_02980198; else goto L_0297FF74;
|
|
L_0297FF74: ; // 0x297ff74
|
|
/* 0297FF74 */ _t16 = cpu->r[30] + 0x00000004u;
|
|
/* 0297FF74 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t16);
|
|
/* 0297FF78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 0297FF7C */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 0297FF7C */ cpu->r[28] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0297FF80 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297FF80 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0297FF80 */ if (_t19) goto L_0297FF90; else goto L_0297FF84;
|
|
L_0297FF84: ; // 0x297ff84
|
|
/* 0297FF84 */ _t20 = cpu->r[30] + 0x00000006u;
|
|
/* 0297FF84 */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t20);
|
|
/* 0297FF88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0xFFFFFFFFu);
|
|
/* 0297FF8C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297FF8C */ _t22 = _t21 & 0x00000001u;
|
|
/* 0297FF8C */ if (_t22) goto L_0297FF90; else goto L_0297FFF0;
|
|
L_0297FF90: ; // 0x297ff90
|
|
/* 0297FF90 */ _t23 = cpu->r[29] + 0x00000064u;
|
|
/* 0297FF90 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 0297FF94 */ _t24 = cpu->r[29] + 0x00000070u;
|
|
/* 0297FF94 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0297FF98 */ _t25 = cpu->r[29] + 0x00000068u;
|
|
/* 0297FF98 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 0297FF9C */ _t26 = cpu->r[29] + 0x00000074u;
|
|
/* 0297FF9C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 0297FFA0 */ cpu->f[10] = cpu->f[9] * cpu->f[10];
|
|
/* 0297FFA4 */ _t27 = cpu->r[29] + 0x0000006Cu;
|
|
/* 0297FFA4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 0297FFA8 */ _t28 = cpu->r[29] + 0x00000078u;
|
|
/* 0297FFA8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 0297FFAC */ cpu->f[7] = cpu->f[11] * cpu->f[12];
|
|
/* 0297FFB0 */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0297FFB0 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[10]);
|
|
/* 0297FFB4 */ cpu->f[8] = cpu->f[13] * cpu->f[0];
|
|
/* 0297FFB8 */ _t30 = cpu->r[1] + 0x00000030u;
|
|
/* 0297FFB8 */ rbrew_write_f32(cpu->mem, _t30, cpu->f[7]);
|
|
/* 0297FFBC */ _t31 = cpu->r[1] + 0x00000034u;
|
|
/* 0297FFBC */ rbrew_write_f32(cpu->mem, _t31, cpu->f[8]);
|
|
/* 0297FFC0 */ _t32 = cpu->r[28] + 0x00000088u;
|
|
/* 0297FFC0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0297FFC4 */ _t33 = cpu->r[12] + 0x00000234u;
|
|
/* 0297FFC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0297FFC8 */ cpu->r[4] = cpu->r[29] + 0x00000034u;
|
|
/* 0297FFCC */ _t34 = cpu->r[29] + 0x0000007Cu;
|
|
/* 0297FFCC */ cpu->r[10] = rbrew_read8(cpu->mem, _t34);
|
|
/* 0297FFD0 */ cpu->ctr = cpu->r[0];
|
|
/* 0297FFD4 */ cpu->r[5] = cpu->r[1] + 0x0000002Cu;
|
|
/* 0297FFD8 */ cpu->r[6] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0297FFDC */ cpu->r[3] = cpu->r[28];
|
|
/* 0297FFE0 */ cpu->r[7] = cpu->r[31];
|
|
/* 0297FFE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0297FFE8 */ _t35 = cpu->r[30] + 0x00000008u;
|
|
/* 0297FFE8 */ cpu->r[3] = rbrew_read16(cpu->mem, _t35);
|
|
/* 0297FFEC */ goto L_02980198;
|
|
L_0297FFF0: ; // 0x297fff0
|
|
/* 0297FFF0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[7]);
|
|
/* 0297FFF4 */ cpu->r[10] = 0x00000000u;
|
|
/* 0297FFF8 */ _t36 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0297FFF8 */ _t37 = _t36 & 0x00000001u;
|
|
/* 0297FFF8 */ if (_t37) goto L_0297FFFC; else goto L_02980008;
|
|
L_0297FFFC: ; // 0x297fffc
|
|
/* 0297FFFC */ _t38 = cpu->r[29] + 0x00000024u;
|
|
/* 0297FFFC */ cpu->r[8] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02980000 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980004 */ _t39 = cpu->r[11] + cpu->r[8];
|
|
/* 02980004 */ cpu->r[10] = rbrew_read32(cpu->mem, _t39);
|
|
L_02980008: ; // 0x2980008
|
|
/* 02980008 */ _t40 = cpu->r[10] + 0x00000000u;
|
|
/* 02980008 */ cpu->r[3] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298000C */ _t41 = cpu->r[3] + 0x00000088u;
|
|
/* 0298000C */ cpu->r[10] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02980010 */ _t42 = cpu->r[10] + 0x00000074u;
|
|
/* 02980010 */ cpu->r[11] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02980014 */ cpu->ctr = cpu->r[11];
|
|
/* 02980018 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 0298001C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980020 */ _t43 = cpu->r[30] + 0x0000000Au;
|
|
/* 02980020 */ cpu->r[0] = rbrew_read8(cpu->mem, _t43);
|
|
/* 02980024 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02980024 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02980028 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980028 */ _t45 = _t44 & 0x00000001u;
|
|
/* 02980028 */ if (_t45) goto L_0298016C; else goto L_0298002C;
|
|
L_0298002C: ; // 0x298002c
|
|
/* 0298002C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02980030 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 02980034 */ cpu->r[5] = 0x00000000u;
|
|
/* 02980038 */ Gambit_fn_0200D42C(cpu);
|
|
/* 0298003C */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 02980040 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 02980044 */ cpu->r[5] = 0x00000001u;
|
|
/* 02980048 */ Gambit_fn_0200D42C(cpu);
|
|
/* 0298004C */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 02980050 */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 02980054 */ cpu->r[5] = 0x00000002u;
|
|
/* 02980058 */ Gambit_fn_0200D42C(cpu);
|
|
/* 0298005C */ _t46 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298005C */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 02980060 */ _t47 = cpu->r[1] + 0x00000008u;
|
|
/* 02980060 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 02980064 */ cpu->f[7] = cpu->f[7] * cpu->f[7];
|
|
/* 02980068 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298006C */ cpu->f[9] = fma(cpu->f[8], cpu->f[8], cpu->f[7]);
|
|
/* 02980070 */ _t48 = cpu->r[1] + 0x00000010u;
|
|
/* 02980070 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 02980074 */ _t49 = cpu->r[9] + 0xFFFFECE4u;
|
|
/* 02980074 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 02980078 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298007C */ cpu->f[7] = fma(cpu->f[8], cpu->f[8], cpu->f[9]);
|
|
/* 02980080 */ _t50 = cpu->r[7] + 0xFFFFECECu;
|
|
/* 02980080 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 02980084 */ cpu->r[12] = 0x10150000u;
|
|
/* 02980088 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[7], cpu->f[13]);
|
|
/* 0298008C */ _t51 = cpu->r[12] + 0xFFFFECE8u;
|
|
/* 0298008C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 02980090 */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980090 */ _t53 = _t52 & 0x00000001u;
|
|
/* 02980090 */ if (_t53) goto L_02980094; else goto L_029800C0;
|
|
L_02980094: ; // 0x2980094
|
|
/* 02980094 */ _ft54 = sqrt(cpu->f[7]);
|
|
/* 02980094 */ _ft55 = (double)(int32_t)0x00000001u;
|
|
/* 02980094 */ cpu->f[8] = _ft55 / _ft54;
|
|
/* 02980098 */ cpu->f[9] = cpu->f[8] * cpu->f[8];
|
|
/* 0298009C */ cpu->f[10] = cpu->f[8] * cpu->f[0];
|
|
/* 029800A0 */ cpu->f[9] = -fma(cpu->f[9], cpu->f[7], -(cpu->f[12]));
|
|
/* 029800A4 */ cpu->f[8] = cpu->f[9] * cpu->f[10];
|
|
/* 029800A8 */ _t56 = cpu->r[1] + 0x00000010u;
|
|
/* 029800A8 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 029800AC */ /* nop */
|
|
/* 029800B0 */ cpu->f[7] = cpu->f[7] * cpu->f[8];
|
|
/* 029800B4 */ /* nop */
|
|
/* 029800B8 */ _t57 = cpu->r[1] + 0x00000010u;
|
|
/* 029800B8 */ rbrew_write_f32(cpu->mem, _t57, cpu->f[7]);
|
|
/* 029800BC */ /* nop */
|
|
L_029800C0: ; // 0x29800c0
|
|
/* 029800C0 */ _t58 = cpu->r[1] + 0x00000018u;
|
|
/* 029800C0 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 029800C4 */ cpu->f[8] = cpu->f[11] * cpu->f[11];
|
|
/* 029800C8 */ _t59 = cpu->r[1] + 0x00000014u;
|
|
/* 029800C8 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 029800CC */ cpu->f[9] = fma(cpu->f[9], cpu->f[9], cpu->f[8]);
|
|
/* 029800D0 */ _t60 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029800D0 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 029800D4 */ cpu->f[11] = fma(cpu->f[8], cpu->f[8], cpu->f[9]);
|
|
/* 029800D8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[13]);
|
|
/* 029800DC */ _t61 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029800DC */ _t62 = _t61 & 0x00000001u;
|
|
/* 029800DC */ if (_t62) goto L_029800E0; else goto L_0298010C;
|
|
L_029800E0: ; // 0x29800e0
|
|
/* 029800E0 */ _ft63 = sqrt(cpu->f[11]);
|
|
/* 029800E0 */ _ft64 = (double)(int32_t)0x00000001u;
|
|
/* 029800E0 */ cpu->f[7] = _ft64 / _ft63;
|
|
/* 029800E4 */ cpu->f[8] = cpu->f[7] * cpu->f[7];
|
|
/* 029800E8 */ cpu->f[9] = cpu->f[7] * cpu->f[0];
|
|
/* 029800EC */ cpu->f[8] = -fma(cpu->f[8], cpu->f[11], -(cpu->f[12]));
|
|
/* 029800F0 */ cpu->f[7] = cpu->f[8] * cpu->f[9];
|
|
/* 029800F4 */ _t65 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029800F4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 029800F8 */ /* nop */
|
|
/* 029800FC */ cpu->f[9] = cpu->f[9] * cpu->f[7];
|
|
/* 02980100 */ /* nop */
|
|
/* 02980104 */ _t66 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980104 */ rbrew_write_f32(cpu->mem, _t66, cpu->f[9]);
|
|
/* 02980108 */ /* nop */
|
|
L_0298010C: ; // 0x298010c
|
|
/* 0298010C */ _t67 = cpu->r[1] + 0x00000024u;
|
|
/* 0298010C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 02980110 */ cpu->f[10] = cpu->f[11] * cpu->f[11];
|
|
/* 02980114 */ _t68 = cpu->r[1] + 0x00000020u;
|
|
/* 02980114 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 02980118 */ cpu->f[11] = fma(cpu->f[11], cpu->f[11], cpu->f[10]);
|
|
/* 0298011C */ _t69 = cpu->r[1] + 0x00000028u;
|
|
/* 0298011C */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 02980120 */ cpu->f[10] = fma(cpu->f[7], cpu->f[7], cpu->f[11]);
|
|
/* 02980124 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[13]);
|
|
/* 02980128 */ _t70 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980128 */ _t71 = _t70 & 0x00000001u;
|
|
/* 02980128 */ if (_t71) goto L_0298012C; else goto L_02980158;
|
|
L_0298012C: ; // 0x298012c
|
|
/* 0298012C */ _ft72 = sqrt(cpu->f[10]);
|
|
/* 0298012C */ _ft73 = (double)(int32_t)0x00000001u;
|
|
/* 0298012C */ cpu->f[11] = _ft73 / _ft72;
|
|
/* 02980130 */ cpu->f[13] = cpu->f[11] * cpu->f[11];
|
|
/* 02980134 */ cpu->f[8] = cpu->f[11] * cpu->f[0];
|
|
/* 02980138 */ cpu->f[13] = -fma(cpu->f[13], cpu->f[10], -(cpu->f[12]));
|
|
/* 0298013C */ cpu->f[11] = cpu->f[13] * cpu->f[8];
|
|
/* 02980140 */ _t74 = cpu->r[1] + 0x00000028u;
|
|
/* 02980140 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 02980144 */ /* nop */
|
|
/* 02980148 */ cpu->f[10] = cpu->f[10] * cpu->f[11];
|
|
/* 0298014C */ /* nop */
|
|
/* 02980150 */ _t75 = cpu->r[1] + 0x00000028u;
|
|
/* 02980150 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[10]);
|
|
/* 02980154 */ /* nop */
|
|
L_02980158: ; // 0x2980158
|
|
/* 02980158 */ cpu->r[6] = cpu->r[1] + 0x00000020u;
|
|
/* 0298015C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 02980160 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 02980164 */ cpu->r[3] = cpu->r[1] + 0x00000038u;
|
|
/* 02980168 */ Gambit_fn_0216C948(cpu);
|
|
L_0298016C: ; // 0x298016c
|
|
/* 0298016C */ _t76 = cpu->r[28] + 0x00000088u;
|
|
/* 0298016C */ cpu->r[12] = rbrew_read32(cpu->mem, _t76);
|
|
/* 02980170 */ _t77 = cpu->r[12] + 0x00000234u;
|
|
/* 02980170 */ cpu->r[9] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02980174 */ cpu->r[5] = 0x101F0000u;
|
|
/* 02980178 */ cpu->ctr = cpu->r[9];
|
|
/* 0298017C */ cpu->r[4] = cpu->r[1] + 0x00000038u;
|
|
/* 02980180 */ cpu->r[5] = cpu->r[5] + 0x00006368u;
|
|
/* 02980184 */ cpu->r[6] = 0x00000001u;
|
|
/* 02980188 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298018C */ cpu->r[7] = cpu->r[31];
|
|
/* 02980190 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980194 */ _t78 = cpu->r[30] + 0x00000008u;
|
|
/* 02980194 */ cpu->r[3] = rbrew_read16(cpu->mem, _t78);
|
|
L_02980198: ; // 0x2980198
|
|
/* 02980198 */ _t79 = cpu->r[1] + 0x00000068u;
|
|
/* 02980198 */ cpu->r[28] = rbrew_read32(cpu->mem, _t79);
|
|
/* 0298019C */ _t80 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0298019C */ cpu->r[29] = rbrew_read32(cpu->mem, _t80);
|
|
/* 029801A0 */ _t81 = cpu->r[1] + 0x0000007Cu;
|
|
/* 029801A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 029801A4 */ _t82 = cpu->r[1] + 0x00000070u;
|
|
/* 029801A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t82);
|
|
/* 029801A8 */ cpu->lr = cpu->r[0];
|
|
/* 029801AC */ _t83 = cpu->r[1] + 0x00000074u;
|
|
/* 029801AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t83);
|
|
/* 029801B0 */ cpu->r[1] = cpu->r[1] + 0x00000078u;
|
|
/* 029801B4 */ return;
|
|
}
|
|
|
|
// fn_029801B8 @ 0x29801b8
|
|
void Gambit_fn_029801B8(CPUState* cpu) {
|
|
uint32_t _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_029801B8: ; // 0x29801b8
|
|
/* 029801B8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 029801B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029801B8 */ cpu->r[1] = _t0;
|
|
/* 029801BC */ cpu->r[0] = cpu->lr;
|
|
/* 029801C0 */ /* nop */
|
|
/* 029801C4 */ cpu->r[27] = cpu->r[3];
|
|
/* 029801C8 */ cpu->r[30] = cpu->r[4];
|
|
/* 029801C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 029801CC */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 029801CC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029801D0 */ cpu->r[29] = cpu->r[5];
|
|
/* 029801D4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029801D4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 029801D4 */ if (_t3) goto L_0298024C; else goto L_029801D8;
|
|
L_029801D8: ; // 0x29801d8
|
|
/* 029801D8 */ _t4 = cpu->r[30] + 0x00000000u;
|
|
/* 029801D8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029801DC */ _t5 = cpu->r[9] + 0x00000014u;
|
|
/* 029801DC */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029801E0 */ cpu->ctr = cpu->r[11];
|
|
/* 029801E4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029801E8 */ cpu->r[4] = cpu->r[27];
|
|
/* 029801EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029801F0 */ _t6 = cpu->r[27] + 0x00000028u;
|
|
/* 029801F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029801F4 */ _t7 = cpu->r[27] + 0x00000030u;
|
|
/* 029801F4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029801F8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029801FC */ cpu->r[31] = cpu->r[28] + cpu->r[12];
|
|
/* 02980200 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 02980204 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980204 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02980204 */ if (_t9) goto L_02980224; else goto L_02980208;
|
|
L_02980208: ; // 0x2980208
|
|
/* 02980208 */ _t10 = cpu->r[28] + 0x00000000u;
|
|
/* 02980208 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298020C */ cpu->r[5] = cpu->r[29];
|
|
/* 02980210 */ cpu->r[3] = cpu->r[27];
|
|
/* 02980214 */ Gambit_fn_0297FF18(cpu);
|
|
/* 02980218 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298021C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 02980220 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980220 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02980220 */ if (_t12) goto L_02980224; else goto L_02980208;
|
|
L_02980224: ; // 0x2980224
|
|
/* 02980224 */ _t13 = cpu->r[30] + 0x00000000u;
|
|
/* 02980224 */ cpu->r[5] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02980228 */ _t14 = cpu->r[5] + 0x0000001Cu;
|
|
/* 02980228 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298022C */ cpu->ctr = cpu->r[0];
|
|
/* 02980230 */ cpu->r[3] = cpu->r[30];
|
|
/* 02980234 */ cpu->r[4] = cpu->r[27];
|
|
/* 02980238 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298023C */ _t15 = cpu->r[27] + 0x0000007Cu;
|
|
/* 0298023C */ cpu->r[10] = rbrew_read8(cpu->mem, _t15);
|
|
/* 02980240 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 02980244 */ _t16 = cpu->r[27] + 0x0000007Cu;
|
|
/* 02980244 */ rbrew_write8(cpu->mem, _t16, (uint8_t)cpu->r[10]);
|
|
/* 02980248 */ goto L_0298028C;
|
|
L_0298024C: ; // 0x298024c
|
|
/* 0298024C */ _t17 = cpu->r[27] + 0x00000028u;
|
|
/* 0298024C */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02980250 */ _t18 = cpu->r[27] + 0x00000030u;
|
|
/* 02980250 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02980254 */ cpu->r[7] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980258 */ cpu->r[31] = cpu->r[30] + cpu->r[7];
|
|
/* 0298025C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02980260 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980260 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02980260 */ if (_t20) goto L_02980280; else goto L_02980264;
|
|
L_02980264: ; // 0x2980264
|
|
/* 02980264 */ _t21 = cpu->r[30] + 0x00000000u;
|
|
/* 02980264 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02980268 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298026C */ cpu->r[3] = cpu->r[27];
|
|
/* 02980270 */ Gambit_fn_0297FF18(cpu);
|
|
/* 02980274 */ cpu->r[30] = cpu->r[30] + 0x00000004u;
|
|
/* 02980278 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 0298027C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298027C */ _t23 = _t22 & 0x00000001u;
|
|
/* 0298027C */ if (_t23) goto L_02980280; else goto L_02980264;
|
|
L_02980280: ; // 0x2980280
|
|
/* 02980280 */ _t24 = cpu->r[27] + 0x0000007Cu;
|
|
/* 02980280 */ cpu->r[10] = rbrew_read8(cpu->mem, _t24);
|
|
/* 02980284 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 02980288 */ _t25 = cpu->r[27] + 0x0000007Cu;
|
|
/* 02980288 */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[10]);
|
|
L_0298028C: ; // 0x298028c
|
|
/* 0298028C */ /* nop */
|
|
/* 02980290 */ _t26 = cpu->r[1] + 0x00000024u;
|
|
/* 02980290 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02980294 */ cpu->lr = cpu->r[0];
|
|
/* 02980298 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298029C */ return;
|
|
}
|
|
|
|
// fn_029802A0 @ 0x29802a0
|
|
void Gambit_fn_029802A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_029802A0: ; // 0x29802a0
|
|
/* 029802A0 */ cpu->r[0] = cpu->lr;
|
|
/* 029802A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029802A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029802A4 */ cpu->r[1] = _t0;
|
|
/* 029802A8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029802A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029802AC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029802AC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029802B0 */ cpu->r[30] = cpu->r[3];
|
|
/* 029802B4 */ cpu->r[31] = 0x101D0000u;
|
|
/* 029802B8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029802B8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029802BC */ _t4 = cpu->r[31] + 0xFFFFA9E8u;
|
|
/* 029802BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029802C0 */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 029802C4 */ cpu->r[12] = 0x101F0000u;
|
|
/* 029802C8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029802CC */ cpu->r[12] = cpu->r[12] + 0x000065D0u;
|
|
/* 029802D0 */ _t5 = cpu->r[12] + cpu->r[0];
|
|
/* 029802D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029802D4 */ cpu->r[3] = cpu->r[31];
|
|
/* 029802D8 */ Gambit_fn_02A0F138(cpu);
|
|
/* 029802DC */ _t6 = cpu->r[30] + 0x000000A8u;
|
|
/* 029802DC */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029802E0 */ cpu->r[5] = cpu->r[3];
|
|
/* 029802E4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029802E8 */ Gambit_fn_029801B8(cpu);
|
|
/* 029802EC */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 029802EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029802F0 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 029802F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029802F4 */ cpu->lr = cpu->r[0];
|
|
/* 029802F8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029802F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029802FC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02980300 */ return;
|
|
}
|
|
|
|
// fn_029802A4 @ 0x29802a4
|
|
void Gambit_fn_029802A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_029802A4: ; // 0x29802a4
|
|
/* 029802A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029802A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029802A4 */ cpu->r[1] = _t0;
|
|
/* 029802A8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029802A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029802AC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029802AC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029802B0 */ cpu->r[30] = cpu->r[3];
|
|
/* 029802B4 */ cpu->r[31] = 0x101D0000u;
|
|
/* 029802B8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029802B8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029802BC */ _t4 = cpu->r[31] + 0xFFFFA9E8u;
|
|
/* 029802BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029802C0 */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 029802C4 */ cpu->r[12] = 0x101F0000u;
|
|
/* 029802C8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029802CC */ cpu->r[12] = cpu->r[12] + 0x000065D0u;
|
|
/* 029802D0 */ _t5 = cpu->r[12] + cpu->r[0];
|
|
/* 029802D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029802D4 */ cpu->r[3] = cpu->r[31];
|
|
/* 029802D8 */ Gambit_fn_02A0F138(cpu);
|
|
/* 029802DC */ _t6 = cpu->r[30] + 0x000000A8u;
|
|
/* 029802DC */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029802E0 */ cpu->r[5] = cpu->r[3];
|
|
/* 029802E4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029802E8 */ Gambit_fn_029801B8(cpu);
|
|
/* 029802EC */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 029802EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029802F0 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 029802F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029802F4 */ cpu->lr = cpu->r[0];
|
|
/* 029802F8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029802F8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029802FC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02980300 */ return;
|
|
}
|
|
|
|
// fn_02980304 @ 0x2980304
|
|
void Gambit_fn_02980304(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_02980304: ; // 0x2980304
|
|
/* 02980304 */ _t0 = cpu->r[3] + 0x0000007Du;
|
|
/* 02980304 */ cpu->r[0] = rbrew_read8(cpu->mem, _t0);
|
|
/* 02980308 */ _t1 = cpu->r[3] + 0x0000007Fu;
|
|
/* 02980308 */ rbrew_write8(cpu->mem, _t1, (uint8_t)cpu->r[4]);
|
|
/* 0298030C */ cpu->r[0] = cpu->r[0] | 0x00000004u;
|
|
/* 02980310 */ _t2 = cpu->r[3] + 0x0000007Du;
|
|
/* 02980310 */ rbrew_write8(cpu->mem, _t2, (uint8_t)cpu->r[0]);
|
|
/* 02980314 */ return;
|
|
}
|
|
|
|
// fn_02980318 @ 0x2980318
|
|
void Gambit_fn_02980318(CPUState* cpu) {
|
|
uint32_t _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_02980318: ; // 0x2980318
|
|
/* 02980318 */ cpu->r[12] = cpu->r[3];
|
|
/* 0298031C */ _t0 = cpu->r[12] + 0x0000007Du;
|
|
/* 0298031C */ cpu->r[0] = rbrew_read8(cpu->mem, _t0);
|
|
/* 02980320 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02980320 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02980324 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980324 */ _t2 = _t1 & 0x00000001u;
|
|
/* 02980324 */ _t3 = _t2 ^ 0x00000001u;
|
|
/* 02980324 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02980324 */ goto L_02980328;
|
|
L_02980328: ; // 0x2980328
|
|
/* 02980328 */ _t4 = cpu->r[12] + 0x000000B8u;
|
|
/* 02980328 */ cpu->r[8] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298032C */ _t5 = cpu->r[8] + 0x00004FA8u;
|
|
/* 0298032C */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02980330 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000018u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02980330 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02980334 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980334 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02980334 */ if (_t7) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02980334 */ goto L_02980338;
|
|
L_02980338: ; // 0x2980338
|
|
/* 02980338 */ cpu->r[11] = cpu->r[8] + 0x00004A04u;
|
|
/* 0298033C */ _t8 = cpu->r[0] + cpu->r[11];
|
|
/* 0298033C */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02980340 */ /* nop */
|
|
/* 02980344 */ cpu->r[7] = cpu->r[10] + 0x00000001u;
|
|
/* 02980348 */ /* nop */
|
|
/* 0298034C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298034C */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298034C */ if (_t10) goto L_02980350; else goto L_02980338;
|
|
L_02980350: ; // 0x2980350
|
|
/* 02980350 */ _t11 = cpu->r[8] + 0x00004A0Cu;
|
|
/* 02980350 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02980354 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980358 */ _t12 = cpu->r[11] + cpu->r[0];
|
|
/* 02980358 */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 0298035C */ _t13 = cpu->r[12] + 0x0000007Du;
|
|
/* 0298035C */ cpu->r[7] = rbrew_read8(cpu->mem, _t13);
|
|
/* 02980360 */ _t14 = cpu->r[12] + 0x000000ACu;
|
|
/* 02980360 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02980364 */ cpu->r[7] = cpu->r[7] | 0x00000002u;
|
|
/* 02980368 */ _t15 = cpu->r[12] + 0x0000007Du;
|
|
/* 02980368 */ rbrew_write8(cpu->mem, _t15, (uint8_t)cpu->r[7]);
|
|
/* 0298036C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02980370 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980370 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02980370 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02980370 */ goto L_02980374;
|
|
L_02980374: ; // 0x2980374
|
|
/* 02980374 */ goto L_02A01090;
|
|
L_02A01090: ; // 0x2a01090
|
|
/* 02A01090 */ _t18 = cpu->r[3] + 0x00000194u;
|
|
/* 02A01090 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02A01094 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02A01098 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A01098 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02A01098 */ if (_t20) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02A01098 */ goto L_02A0109C;
|
|
L_02A0109C: ; // 0x2a0109c
|
|
/* 02A0109C */ cpu->r[8] = cpu->r[12] + 0x00000004u;
|
|
/* 02A010A0 */ _t21 = cpu->r[0] + cpu->r[8];
|
|
/* 02A010A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02A010A4 */ /* nop */
|
|
/* 02A010A8 */ cpu->r[9] = cpu->r[11] + 0x00000001u;
|
|
/* 02A010AC */ /* nop */
|
|
/* 02A010B0 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02A010B0 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02A010B0 */ if (_t23) goto L_02A010B4; else goto L_02A0109C;
|
|
L_02A010B4: ; // 0x2a010b4
|
|
/* 02A010B4 */ _t24 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02A010B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02A010B8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02A010BC */ _t25 = cpu->r[10] + cpu->r[0];
|
|
/* 02A010BC */ rbrew_write32(cpu->mem, _t25, cpu->r[3]);
|
|
/* 02A010C0 */ return;
|
|
}
|
|
|
|
// fn_02980378 @ 0x2980378
|
|
void Gambit_fn_02980378(CPUState* cpu) {
|
|
uint32_t _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_02980378: ; // 0x2980378
|
|
/* 02980378 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02980378 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980378 */ cpu->r[1] = _t0;
|
|
/* 0298037C */ /* nop */
|
|
/* 02980380 */ cpu->r[0] = cpu->lr;
|
|
/* 02980384 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02980384 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02980388 */ cpu->r[28] = cpu->r[3];
|
|
/* 0298038C */ cpu->r[31] = 0x101D0000u;
|
|
/* 02980390 */ _t2 = cpu->r[31] + 0xFFFFA9E8u;
|
|
/* 02980390 */ cpu->r[31] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02980394 */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 02980398 */ cpu->r[6] = 0x101F0000u;
|
|
/* 0298039C */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029803A0 */ cpu->r[6] = cpu->r[6] + 0x000065D0u;
|
|
/* 029803A4 */ _t3 = cpu->r[6] + cpu->r[0];
|
|
/* 029803A4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029803A8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029803AC */ Gambit_fn_02A0F138(cpu);
|
|
/* 029803B0 */ _t4 = cpu->r[28] + 0x000000A4u;
|
|
/* 029803B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029803B4 */ cpu->r[26] = cpu->r[3];
|
|
/* 029803B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029803BC */ _t5 = cpu->r[28] + 0x000000A8u;
|
|
/* 029803BC */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029803C0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029803C0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029803C0 */ if (_t7) goto L_029803C4; else goto L_029803E4;
|
|
L_029803C4: ; // 0x29803c4
|
|
/* 029803C4 */ cpu->r[3] = cpu->r[28];
|
|
/* 029803C8 */ cpu->r[5] = cpu->r[26];
|
|
/* 029803CC */ Gambit_fn_029801B8(cpu);
|
|
/* 029803D0 */ /* nop */
|
|
/* 029803D4 */ _t8 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029803D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029803D8 */ cpu->lr = cpu->r[0];
|
|
/* 029803DC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 029803E0 */ return;
|
|
L_029803E4: ; // 0x29803e4
|
|
/* 029803E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 029803E8 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029803E8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 029803E8 */ if (_t10) goto L_0298041C; else goto L_029803EC;
|
|
L_029803EC: ; // 0x29803ec
|
|
/* 029803EC */ cpu->r[3] = cpu->r[28];
|
|
/* 029803F0 */ cpu->r[4] = cpu->r[26];
|
|
/* 029803F4 */ Gambit_fn_0297FE38(cpu);
|
|
/* 029803F8 */ _t11 = cpu->r[28] + 0x000000A8u;
|
|
/* 029803F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029803FC */ cpu->r[5] = cpu->r[26];
|
|
/* 02980400 */ cpu->r[3] = cpu->r[28];
|
|
/* 02980404 */ Gambit_fn_029801B8(cpu);
|
|
/* 02980408 */ /* nop */
|
|
/* 0298040C */ _t12 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298040C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02980410 */ cpu->lr = cpu->r[0];
|
|
/* 02980414 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02980418 */ return;
|
|
L_0298041C: ; // 0x298041c
|
|
/* 0298041C */ _t13 = cpu->r[28] + 0x00000028u;
|
|
/* 0298041C */ cpu->r[8] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02980420 */ _t14 = cpu->r[28] + 0x00000030u;
|
|
/* 02980420 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02980424 */ cpu->r[7] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980428 */ cpu->r[30] = cpu->r[29] + cpu->r[7];
|
|
/* 0298042C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 02980430 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980430 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02980430 */ if (_t16) goto L_029804D0; else goto L_02980434;
|
|
L_02980434: ; // 0x2980434
|
|
/* 02980434 */ cpu->r[27] = 0x00000001u;
|
|
/* 02980438 */ cpu->r[25] = 0x101D0000u;
|
|
/* 0298043C */ cpu->r[24] = 0x101D0000u;
|
|
L_02980440: ; // 0x2980440
|
|
/* 02980440 */ _t17 = cpu->r[25] + 0xFFFFE218u;
|
|
/* 02980440 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02980444 */ _t18 = cpu->r[29] + 0x00000000u;
|
|
/* 02980444 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02980448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298044C */ _t19 = cpu->r[9] + 0x00000000u;
|
|
/* 0298044C */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02980450 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980450 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02980450 */ if (_t21) goto L_02980454; else goto L_02980464;
|
|
L_02980454: ; // 0x2980454
|
|
/* 02980454 */ cpu->r[0] = 0x10150000u;
|
|
/* 02980458 */ _t22 = cpu->r[25] + 0xFFFFE218u;
|
|
/* 02980458 */ rbrew_write32(cpu->mem, _t22, cpu->r[27]);
|
|
/* 0298045C */ cpu->r[0] = cpu->r[0] + 0xFFFFEC18u;
|
|
/* 02980460 */ _t23 = cpu->r[24] + 0xFFFFEF88u;
|
|
/* 02980460 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
L_02980464: ; // 0x2980464
|
|
/* 02980464 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02980468 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980468 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02980468 */ if (_t25) goto L_029804B0; else goto L_0298046C;
|
|
L_0298046C: ; // 0x298046c
|
|
/* 0298046C */ _t26 = cpu->r[31] + 0x00000088u;
|
|
/* 0298046C */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02980470 */ _t27 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02980470 */ cpu->r[9] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02980474 */ cpu->ctr = cpu->r[9];
|
|
/* 02980478 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298047C */ cpu->r[4] = cpu->r[24] + 0xFFFFEF88u;
|
|
/* 02980480 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980484 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02980488 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980488 */ _t29 = _t28 & 0x00000001u;
|
|
/* 02980488 */ if (_t29) goto L_029804B0; else goto L_0298048C;
|
|
L_0298048C: ; // 0x298048c
|
|
/* 0298048C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02980490 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980490 */ _t31 = _t30 & 0x00000001u;
|
|
/* 02980490 */ if (_t31) goto L_029804B0; else goto L_02980494;
|
|
L_02980494: ; // 0x2980494
|
|
/* 02980494 */ _t32 = cpu->r[29] + 0x00000000u;
|
|
/* 02980494 */ cpu->r[11] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02980498 */ _t33 = cpu->r[28] + 0x000000A4u;
|
|
/* 02980498 */ cpu->r[3] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298049C */ cpu->r[5] = cpu->r[31];
|
|
/* 029804A0 */ _t34 = cpu->r[11] + 0x00000008u;
|
|
/* 029804A0 */ cpu->r[4] = rbrew_read16(cpu->mem, _t34);
|
|
/* 029804A4 */ cpu->r[7] = cpu->r[26];
|
|
/* 029804A8 */ cpu->r[6] = 0x00000001u;
|
|
/* 029804AC */ Gambit_fn_029847A4(cpu);
|
|
L_029804B0: ; // 0x29804b0
|
|
/* 029804B0 */ _t35 = cpu->r[29] + 0x00000000u;
|
|
/* 029804B0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029804B4 */ cpu->r[5] = cpu->r[26];
|
|
/* 029804B8 */ cpu->r[3] = cpu->r[28];
|
|
/* 029804BC */ Gambit_fn_0297FF18(cpu);
|
|
/* 029804C0 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 029804C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 029804C8 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029804C8 */ _t37 = _t36 & 0x00000001u;
|
|
/* 029804C8 */ if (_t37) goto L_029804CC; else goto L_02980440;
|
|
L_029804CC: ; // 0x29804cc
|
|
/* 029804CC */ _t38 = cpu->r[28] + 0x000000A4u;
|
|
/* 029804CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
L_029804D0: ; // 0x29804d0
|
|
/* 029804D0 */ cpu->r[3] = cpu->r[0];
|
|
/* 029804D4 */ cpu->r[4] = cpu->r[28];
|
|
/* 029804D8 */ Gambit_fn_029848B0(cpu);
|
|
/* 029804DC */ /* nop */
|
|
/* 029804E0 */ _t39 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029804E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029804E4 */ cpu->lr = cpu->r[0];
|
|
/* 029804E8 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 029804EC */ return;
|
|
}
|
|
|
|
// fn_029804F0 @ 0x29804f0
|
|
void Gambit_fn_029804F0(CPUState* cpu) {
|
|
uint32_t _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_029804F0: ; // 0x29804f0
|
|
/* 029804F0 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 029804F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029804F0 */ cpu->r[1] = _t0;
|
|
/* 029804F4 */ /* nop */
|
|
/* 029804F8 */ cpu->r[0] = cpu->lr;
|
|
/* 029804FC */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029804FC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02980500 */ _t2 = cpu->r[3] + 0x00000080u;
|
|
/* 02980500 */ cpu->r[12] = rbrew_read16(cpu->mem, _t2);
|
|
/* 02980504 */ _t3 = cpu->r[3] + 0x00000014u;
|
|
/* 02980504 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02980508 */ cpu->r[28] = cpu->r[5];
|
|
/* 0298050C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02980510 */ _t4 = cpu->r[3] + 0x00000018u;
|
|
/* 02980510 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02980514 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980514 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02980514 */ if (_t6) goto L_02980530; else goto L_02980518;
|
|
L_02980518: ; // 0x2980518
|
|
/* 02980518 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 0298051C */ cpu->r[30] = cpu->r[31] + cpu->r[8];
|
|
/* 02980520 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02980524 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 02980524 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 02980528 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980528 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02980528 */ if (_t9) goto L_029805CC; else goto L_0298052C;
|
|
L_0298052C: ; // 0x298052c
|
|
/* 0298052C */ goto L_02980544;
|
|
L_02980530: ; // 0x2980530
|
|
/* 02980530 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02980534 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 02980538 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298053C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 0298053C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 02980540 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980540 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02980540 */ if (_t12) goto L_029805CC; else goto L_02980544;
|
|
L_02980544: ; // 0x2980544
|
|
/* 02980544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02980548 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980548 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02980548 */ if (_t14) goto L_0298054C; else goto L_02980598;
|
|
L_0298054C: ; // 0x298054c
|
|
/* 0298054C */ cpu->r[10] = 0x00000001u;
|
|
/* 02980550 */ /* nop */
|
|
/* 02980554 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02980558 */ _t15 = cpu->r[0] | cpu->r[0];
|
|
/* 02980558 */ cpu->r[27] = ~_t15;
|
|
L_0298055C: ; // 0x298055c
|
|
/* 0298055C */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 0298055C */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02980560 */ cpu->r[4] = cpu->r[28];
|
|
/* 02980564 */ cpu->r[3] = cpu->r[29];
|
|
/* 02980568 */ Gambit_fn_029DAAD0(cpu);
|
|
/* 0298056C */ _t17 = cpu->r[29] + 0x0000000Au;
|
|
/* 0298056C */ cpu->r[0] = rbrew_read16(cpu->mem, _t17);
|
|
/* 02980570 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02980574 */ cpu->r[0] = cpu->r[0] & cpu->r[27];
|
|
/* 02980578 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298057C */ _t18 = cpu->r[29] + 0x0000000Au;
|
|
/* 0298057C */ rbrew_write16(cpu->mem, _t18, (uint16_t)cpu->r[0]);
|
|
/* 02980580 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980580 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02980580 */ if (_t20) goto L_02980584; else goto L_0298055C;
|
|
L_02980584: ; // 0x2980584
|
|
/* 02980584 */ /* nop */
|
|
/* 02980588 */ _t21 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02980588 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298058C */ cpu->lr = cpu->r[0];
|
|
/* 02980590 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02980594 */ return;
|
|
L_02980598: ; // 0x2980598
|
|
/* 02980598 */ cpu->r[9] = 0x00000001u;
|
|
/* 0298059C */ /* nop */
|
|
/* 029805A0 */ cpu->r[27] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
L_029805A4: ; // 0x29805a4
|
|
/* 029805A4 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 029805A4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029805A8 */ cpu->r[4] = cpu->r[28];
|
|
/* 029805AC */ cpu->r[3] = cpu->r[29];
|
|
/* 029805B0 */ Gambit_fn_029DAAD0(cpu);
|
|
/* 029805B4 */ _t23 = cpu->r[29] + 0x0000000Au;
|
|
/* 029805B4 */ cpu->r[11] = rbrew_read16(cpu->mem, _t23);
|
|
/* 029805B8 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029805BC */ cpu->r[11] = cpu->r[11] | cpu->r[27];
|
|
/* 029805C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029805C4 */ _t24 = cpu->r[29] + 0x0000000Au;
|
|
/* 029805C4 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[11]);
|
|
/* 029805C8 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029805C8 */ _t26 = _t25 & 0x00000001u;
|
|
/* 029805C8 */ if (_t26) goto L_029805CC; else goto L_029805A4;
|
|
L_029805CC: ; // 0x29805cc
|
|
/* 029805CC */ /* nop */
|
|
/* 029805D0 */ _t27 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029805D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 029805D4 */ cpu->lr = cpu->r[0];
|
|
/* 029805D8 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 029805DC */ return;
|
|
}
|
|
|
|
// fn_029805E0 @ 0x29805e0
|
|
void Gambit_fn_029805E0(CPUState* 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_029805E0: ; // 0x29805e0
|
|
/* 029805E0 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 029805E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029805E0 */ cpu->r[1] = _t0;
|
|
/* 029805E4 */ /* nop */
|
|
/* 029805E8 */ cpu->r[0] = cpu->lr;
|
|
/* 029805EC */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029805EC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029805F0 */ _t2 = cpu->r[3] + 0x00000080u;
|
|
/* 029805F0 */ cpu->r[8] = rbrew_read16(cpu->mem, _t2);
|
|
/* 029805F4 */ _t3 = cpu->r[3] + 0x00000014u;
|
|
/* 029805F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029805F8 */ cpu->r[27] = cpu->r[4];
|
|
/* 029805FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 02980600 */ _t4 = cpu->r[3] + 0x00000018u;
|
|
/* 02980600 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02980604 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980604 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02980604 */ if (_t6) goto L_02980620; else goto L_02980608;
|
|
L_02980608: ; // 0x2980608
|
|
/* 02980608 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000001Cu);
|
|
/* 0298060C */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02980610 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02980614 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 02980614 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 02980618 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980618 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02980618 */ if (_t9) goto L_02980680; else goto L_0298061C;
|
|
L_0298061C: ; // 0x298061c
|
|
/* 0298061C */ goto L_02980634;
|
|
L_02980620: ; // 0x2980620
|
|
/* 02980620 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02980624 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 02980628 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298062C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 0298062C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 02980630 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980630 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02980630 */ if (_t12) goto L_02980680; else goto L_02980634;
|
|
L_02980634: ; // 0x2980634
|
|
/* 02980634 */ cpu->r[0] = 0x00000001u;
|
|
/* 02980638 */ /* nop */
|
|
/* 0298063C */ cpu->r[28] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
L_02980640: ; // 0x2980640
|
|
/* 02980640 */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 02980640 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02980644 */ cpu->r[4] = cpu->r[27];
|
|
/* 02980648 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298064C */ Gambit_fn_029DAAD0(cpu);
|
|
/* 02980650 */ _t14 = cpu->r[29] + 0x0000000Au;
|
|
/* 02980650 */ cpu->r[11] = rbrew_read16(cpu->mem, _t14);
|
|
/* 02980654 */ cpu->r[10] = cpu->r[11] & cpu->r[28];
|
|
/* 02980654 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02980658 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980658 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02980658 */ if (_t16) goto L_02980674; else goto L_0298065C;
|
|
L_0298065C: ; // 0x298065c
|
|
/* 0298065C */ /* nop */
|
|
/* 02980660 */ _t17 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02980660 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02980664 */ cpu->lr = cpu->r[0];
|
|
/* 02980668 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 0298066C */ cpu->r[3] = 0x00000001u;
|
|
/* 02980670 */ return;
|
|
L_02980674: ; // 0x2980674
|
|
/* 02980674 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02980678 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298067C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298067C */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298067C */ if (_t19) goto L_02980680; else goto L_02980640;
|
|
L_02980680: ; // 0x2980680
|
|
/* 02980680 */ /* nop */
|
|
/* 02980684 */ _t20 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02980684 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02980688 */ cpu->lr = cpu->r[0];
|
|
/* 0298068C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02980690 */ cpu->r[3] = 0x00000000u;
|
|
/* 02980694 */ return;
|
|
}
|
|
|
|
// fn_02980698 @ 0x2980698
|
|
void Gambit_fn_02980698(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_02980698: ; // 0x2980698
|
|
/* 02980698 */ _t0 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980698 */ cpu->r[10] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298069C */ _t1 = cpu->r[3] + 0x00000024u;
|
|
/* 0298069C */ cpu->r[8] = rbrew_read32(cpu->mem, _t1);
|
|
/* 029806A0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029806A4 */ cpu->r[0] = cpu->r[8] + cpu->r[0];
|
|
/* 029806A8 */ cpu->r[3] = 0x00000000u;
|
|
/* 029806AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 029806B0 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029806B0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 029806B0 */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029806B0 */ goto L_029806B4;
|
|
L_029806B4: ; // 0x29806b4
|
|
/* 029806B4 */ _t4 = cpu->r[8] + 0x00000000u;
|
|
/* 029806B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029806B8 */ _t5 = cpu->r[12] + 0x00000000u;
|
|
/* 029806B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029806BC */ cpu->r[8] = cpu->r[8] + 0x00000004u;
|
|
/* 029806C0 */ _t6 = cpu->r[9] + 0x00000012u;
|
|
/* 029806C0 */ cpu->r[12] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029806C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 029806C8 */ cpu->r[3] = cpu->r[3] | cpu->r[12];
|
|
/* 029806CC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029806CC */ _t8 = _t7 & 0x00000001u;
|
|
/* 029806CC */ if (_t8) goto L_029806D0; else goto L_029806B4;
|
|
L_029806D0: ; // 0x29806d0
|
|
/* 029806D0 */ return;
|
|
}
|
|
|
|
// fn_029806D4 @ 0x29806d4
|
|
void Gambit_fn_029806D4(CPUState* cpu) {
|
|
uint32_t _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_029806D4: ; // 0x29806d4
|
|
/* 029806D4 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 029806D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029806D4 */ cpu->r[1] = _t0;
|
|
/* 029806D8 */ /* nop */
|
|
/* 029806DC */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 029806DC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 029806E0 */ /* nop */
|
|
/* 029806E4 */ cpu->r[0] = cpu->lr;
|
|
/* 029806E8 */ _t2 = cpu->r[1] + 0x00000028u;
|
|
/* 029806E8 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 029806EC */ _t3 = cpu->r[1] + 0x00000034u;
|
|
/* 029806EC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029806F0 */ _t4 = cpu->r[3] + 0x0000001Cu;
|
|
/* 029806F0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029806F4 */ _t5 = cpu->r[3] + 0x00000024u;
|
|
/* 029806F4 */ cpu->r[26] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029806F8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029806FC */ cpu->f[31] = cpu->f[1];
|
|
/* 02980700 */ cpu->r[27] = cpu->r[26] + cpu->r[0];
|
|
/* 02980704 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[27]);
|
|
/* 02980708 */ _t6 = cpu->r[3] + 0x0000008Cu;
|
|
/* 02980708 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[31]);
|
|
/* 0298070C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298070C */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298070C */ if (_t8) goto L_02980788; else goto L_02980710;
|
|
L_02980710: ; // 0x2980710
|
|
/* 02980710 */ cpu->r[30] = 0x00000001u;
|
|
/* 02980714 */ cpu->r[29] = 0x101D0000u;
|
|
/* 02980718 */ cpu->r[28] = 0x101D0000u;
|
|
L_0298071C: ; // 0x298071c
|
|
/* 0298071C */ _t9 = cpu->r[29] + 0xFFFFE218u;
|
|
/* 0298071C */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02980720 */ _t10 = cpu->r[26] + 0x00000000u;
|
|
/* 02980720 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02980724 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02980728 */ _t11 = cpu->r[9] + 0x00000000u;
|
|
/* 02980728 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298072C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298072C */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298072C */ if (_t13) goto L_02980730; else goto L_02980740;
|
|
L_02980730: ; // 0x2980730
|
|
/* 02980730 */ cpu->r[0] = 0x10150000u;
|
|
/* 02980734 */ _t14 = cpu->r[29] + 0xFFFFE218u;
|
|
/* 02980734 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 02980738 */ cpu->r[0] = cpu->r[0] + 0xFFFFEC18u;
|
|
/* 0298073C */ _t15 = cpu->r[28] + 0xFFFFEF88u;
|
|
/* 0298073C */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
L_02980740: ; // 0x2980740
|
|
/* 02980740 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02980744 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980744 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02980744 */ if (_t17) goto L_0298077C; else goto L_02980748;
|
|
L_02980748: ; // 0x2980748
|
|
/* 02980748 */ _t18 = cpu->r[31] + 0x00000088u;
|
|
/* 02980748 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298074C */ _t19 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0298074C */ cpu->r[7] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02980750 */ cpu->ctr = cpu->r[7];
|
|
/* 02980754 */ cpu->r[3] = cpu->r[31];
|
|
/* 02980758 */ cpu->r[4] = cpu->r[28] + 0xFFFFEF88u;
|
|
/* 0298075C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980760 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02980764 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980764 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02980764 */ if (_t21) goto L_0298077C; else goto L_02980768;
|
|
L_02980768: ; // 0x2980768
|
|
/* 02980768 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298076C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298076C */ _t23 = _t22 & 0x00000001u;
|
|
/* 0298076C */ if (_t23) goto L_0298077C; else goto L_02980770;
|
|
L_02980770: ; // 0x2980770
|
|
/* 02980770 */ cpu->f[1] = cpu->f[31];
|
|
/* 02980774 */ cpu->r[3] = cpu->r[31];
|
|
/* 02980778 */ Gambit_fn_029912D0(cpu);
|
|
L_0298077C: ; // 0x298077c
|
|
/* 0298077C */ cpu->r[26] = cpu->r[26] + 0x00000004u;
|
|
/* 02980780 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[27]);
|
|
/* 02980784 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980784 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02980784 */ if (_t25) goto L_02980788; else goto L_0298071C;
|
|
L_02980788: ; // 0x2980788
|
|
/* 02980788 */ /* nop */
|
|
/* 0298078C */ _t26 = cpu->r[1] + 0x00000028u;
|
|
/* 0298078C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 02980790 */ _t27 = cpu->r[1] + 0x00000020u;
|
|
/* 02980790 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t27);
|
|
/* 02980794 */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980794 */ _t29 = _t28 & 0x00000001u;
|
|
/* 02980794 */ if (_t29) goto L_02980798; // else: addr-0 trap, fall-through
|
|
L_02980798: ; // 0x2980798
|
|
/* 02980798 */ _t30 = cpu->r[1] + 0x00000034u;
|
|
/* 02980798 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298079C */ cpu->lr = cpu->r[0];
|
|
/* 029807A0 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 029807A4 */ return;
|
|
}
|
|
|
|
// fn_029807A8 @ 0x29807a8
|
|
void Gambit_fn_029807A8(CPUState* cpu) {
|
|
uint32_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_029807A8: ; // 0x29807a8
|
|
/* 029807A8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 029807A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029807A8 */ cpu->r[1] = _t0;
|
|
/* 029807AC */ /* nop */
|
|
/* 029807B0 */ cpu->r[0] = cpu->lr;
|
|
/* 029807B4 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 029807B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029807B8 */ _t2 = cpu->r[3] + 0x0000001Cu;
|
|
/* 029807B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 029807BC */ _t3 = cpu->r[3] + 0x00000024u;
|
|
/* 029807BC */ cpu->r[28] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029807C0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029807C4 */ cpu->r[30] = cpu->r[4];
|
|
/* 029807C8 */ cpu->r[29] = cpu->r[28] + cpu->r[7];
|
|
/* 029807CC */ cpu->r[31] = 0xFFFFFFFFu;
|
|
/* 029807D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 029807D4 */ cpu->r[27] = 0x00000000u;
|
|
/* 029807D8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029807D8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029807D8 */ if (_t5) goto L_02980820; else goto L_029807DC;
|
|
L_029807DC: ; // 0x29807dc
|
|
/* 029807DC */ _t6 = cpu->r[28] + 0x00000000u;
|
|
/* 029807DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029807E0 */ _t7 = cpu->r[9] + 0x00000000u;
|
|
/* 029807E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029807E4 */ _t8 = cpu->r[3] + 0x00000088u;
|
|
/* 029807E4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029807E8 */ _t9 = cpu->r[10] + 0x0000003Cu;
|
|
/* 029807E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029807EC */ cpu->ctr = cpu->r[0];
|
|
/* 029807F0 */ cpu->r[4] = cpu->r[30];
|
|
/* 029807F4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029807F8 */ cpu->r[12] = cpu->r[3];
|
|
/* 029807FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 02980800 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980800 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02980800 */ if (_t11) goto L_02980810; else goto L_02980804;
|
|
L_02980804: ; // 0x2980804
|
|
/* 02980804 */ _t12 = rbrew_rlwinm(cpu->r[27], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02980804 */ _t13 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02980804 */ cpu->r[0] = _t13 | _t12;
|
|
/* 02980808 */ _t14 = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02980808 */ _t15 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02980808 */ cpu->r[0] = _t15 | _t14;
|
|
/* 0298080C */ goto L_02980828;
|
|
L_02980810: ; // 0x2980810
|
|
/* 02980810 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 02980814 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 02980818 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 0298081C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298081C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298081C */ if (_t17) goto L_02980820; else goto L_029807DC;
|
|
L_02980820: ; // 0x2980820
|
|
/* 02980820 */ _t18 = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02980820 */ _t19 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02980820 */ cpu->r[0] = _t19 | _t18;
|
|
/* 02980824 */ _t20 = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02980824 */ _t21 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02980824 */ cpu->r[0] = _t21 | _t20;
|
|
L_02980828: ; // 0x2980828
|
|
/* 02980828 */ /* nop */
|
|
/* 0298082C */ cpu->r[3] = cpu->r[0];
|
|
/* 02980830 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 02980830 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02980834 */ cpu->lr = cpu->r[0];
|
|
/* 02980838 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298083C */ return;
|
|
}
|
|
|
|
// fn_02980840 @ 0x2980840
|
|
void Gambit_fn_02980840(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_02980840: ; // 0x2980840
|
|
/* 02980840 */ _t0 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980840 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02980844 */ cpu->r[8] = cpu->r[4];
|
|
/* 02980848 */ _t1 = cpu->r[8] + 0x00000000u;
|
|
/* 02980848 */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t1);
|
|
/* 0298084C */ cpu->r[4] = cpu->r[5];
|
|
/* 02980850 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 02980854 */ cpu->r[12] = 0x00000000u;
|
|
/* 02980858 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980858 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02980858 */ if (_t3) goto L_0298085C; else goto L_02980868;
|
|
L_0298085C: ; // 0x298085c
|
|
/* 0298085C */ _t4 = cpu->r[3] + 0x00000024u;
|
|
/* 0298085C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02980860 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980864 */ _t5 = cpu->r[12] + cpu->r[0];
|
|
/* 02980864 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
L_02980868: ; // 0x2980868
|
|
/* 02980868 */ _t6 = cpu->r[12] + 0x00000000u;
|
|
/* 02980868 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298086C */ _t7 = cpu->r[3] + 0x00000088u;
|
|
/* 0298086C */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02980870 */ _t8 = cpu->r[9] + 0x0000004Cu;
|
|
/* 02980870 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02980874 */ cpu->r[5] = cpu->r[6];
|
|
/* 02980878 */ cpu->ctr = cpu->r[10];
|
|
/* 0298087C */ _t9 = cpu->r[8] + 0x00000002u;
|
|
/* 0298087C */ cpu->r[6] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t9);
|
|
/* 02980880 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_02980884 @ 0x2980884
|
|
void Gambit_fn_02980884(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_02980884: ; // 0x2980884
|
|
/* 02980884 */ _t0 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980884 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02980888 */ cpu->r[8] = cpu->r[4];
|
|
/* 0298088C */ _t1 = cpu->r[8] + 0x00000000u;
|
|
/* 0298088C */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t1);
|
|
/* 02980890 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 02980894 */ cpu->r[11] = 0x00000000u;
|
|
/* 02980898 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980898 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02980898 */ if (_t3) goto L_0298089C; else goto L_029808A8;
|
|
L_0298089C: ; // 0x298089c
|
|
/* 0298089C */ _t4 = cpu->r[3] + 0x00000024u;
|
|
/* 0298089C */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029808A0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029808A4 */ _t5 = cpu->r[12] + cpu->r[0];
|
|
/* 029808A4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
L_029808A8: ; // 0x29808a8
|
|
/* 029808A8 */ _t6 = cpu->r[11] + 0x00000000u;
|
|
/* 029808A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029808AC */ _t7 = cpu->r[3] + 0x00000088u;
|
|
/* 029808AC */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029808B0 */ _t8 = cpu->r[12] + 0x00000054u;
|
|
/* 029808B0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029808B4 */ cpu->r[4] = cpu->r[5];
|
|
/* 029808B8 */ cpu->ctr = cpu->r[9];
|
|
/* 029808BC */ _t9 = cpu->r[8] + 0x00000002u;
|
|
/* 029808BC */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t9);
|
|
/* 029808C0 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_029808C4 @ 0x29808c4
|
|
void Gambit_fn_029808C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_029808C4: ; // 0x29808c4
|
|
/* 029808C4 */ _t0 = cpu->r[3] + 0x0000001Cu;
|
|
/* 029808C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 029808C8 */ cpu->r[8] = cpu->r[4];
|
|
/* 029808CC */ _t1 = cpu->r[8] + 0x00000000u;
|
|
/* 029808CC */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t1);
|
|
/* 029808D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 029808D4 */ cpu->r[11] = 0x00000000u;
|
|
/* 029808D8 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029808D8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 029808D8 */ if (_t3) goto L_029808DC; else goto L_029808E8;
|
|
L_029808DC: ; // 0x29808dc
|
|
/* 029808DC */ _t4 = cpu->r[3] + 0x00000024u;
|
|
/* 029808DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029808E0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029808E4 */ _t5 = cpu->r[12] + cpu->r[0];
|
|
/* 029808E4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
L_029808E8: ; // 0x29808e8
|
|
/* 029808E8 */ _t6 = cpu->r[11] + 0x00000000u;
|
|
/* 029808E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029808EC */ _t7 = cpu->r[3] + 0x00000088u;
|
|
/* 029808EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029808F0 */ _t8 = cpu->r[12] + 0x0000006Cu;
|
|
/* 029808F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029808F4 */ cpu->r[4] = cpu->r[5];
|
|
/* 029808F8 */ cpu->ctr = cpu->r[9];
|
|
/* 029808FC */ _t9 = cpu->r[8] + 0x00000002u;
|
|
/* 029808FC */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t9);
|
|
/* 02980900 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_02980904 @ 0x2980904
|
|
void Gambit_fn_02980904(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_02980904: ; // 0x2980904
|
|
/* 02980904 */ cpu->r[0] = cpu->lr;
|
|
/* 02980908 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02980908 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980908 */ cpu->r[1] = _t0;
|
|
/* 0298090C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298090C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02980910 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980910 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02980914 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02980914 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02980918 */ _t4 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980918 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298091C */ _t5 = cpu->r[3] + 0x00000024u;
|
|
/* 0298091C */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02980920 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980924 */ cpu->r[31] = cpu->r[30] + cpu->r[0];
|
|
/* 02980928 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 0298092C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298092C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298092C */ if (_t7) goto L_02980954; else goto L_02980930;
|
|
L_02980930: ; // 0x2980930
|
|
/* 02980930 */ _t8 = cpu->r[30] + 0x00000000u;
|
|
/* 02980930 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02980934 */ _t9 = cpu->r[11] + 0x00000000u;
|
|
/* 02980934 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02980938 */ _t10 = cpu->r[3] + 0x00000088u;
|
|
/* 02980938 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298093C */ _t11 = cpu->r[12] + 0x000000ACu;
|
|
/* 0298093C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02980940 */ cpu->ctr = cpu->r[0];
|
|
/* 02980944 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980948 */ cpu->r[30] = cpu->r[30] + 0x00000004u;
|
|
/* 0298094C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02980950 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980950 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02980950 */ if (_t13) goto L_02980954; else goto L_02980930;
|
|
L_02980954: ; // 0x2980954
|
|
/* 02980954 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02980954 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02980958 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 02980958 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298095C */ cpu->lr = cpu->r[0];
|
|
/* 02980960 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980960 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02980964 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02980968 */ return;
|
|
}
|
|
|
|
// fn_02980908 @ 0x2980908
|
|
void Gambit_fn_02980908(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_02980908: ; // 0x2980908
|
|
/* 02980908 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02980908 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980908 */ cpu->r[1] = _t0;
|
|
/* 0298090C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298090C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02980910 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980910 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02980914 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02980914 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02980918 */ _t4 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980918 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298091C */ _t5 = cpu->r[3] + 0x00000024u;
|
|
/* 0298091C */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02980920 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980924 */ cpu->r[31] = cpu->r[30] + cpu->r[0];
|
|
/* 02980928 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 0298092C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298092C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298092C */ if (_t7) goto L_02980954; else goto L_02980930;
|
|
L_02980930: ; // 0x2980930
|
|
/* 02980930 */ _t8 = cpu->r[30] + 0x00000000u;
|
|
/* 02980930 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02980934 */ _t9 = cpu->r[11] + 0x00000000u;
|
|
/* 02980934 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02980938 */ _t10 = cpu->r[3] + 0x00000088u;
|
|
/* 02980938 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298093C */ _t11 = cpu->r[12] + 0x000000ACu;
|
|
/* 0298093C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02980940 */ cpu->ctr = cpu->r[0];
|
|
/* 02980944 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980948 */ cpu->r[30] = cpu->r[30] + 0x00000004u;
|
|
/* 0298094C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02980950 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980950 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02980950 */ if (_t13) goto L_02980954; else goto L_02980930;
|
|
L_02980954: ; // 0x2980954
|
|
/* 02980954 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02980954 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02980958 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 02980958 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298095C */ cpu->lr = cpu->r[0];
|
|
/* 02980960 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980960 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02980964 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02980968 */ return;
|
|
}
|
|
|
|
// fn_0298096C @ 0x298096c
|
|
void Gambit_fn_0298096C(CPUState* cpu) {
|
|
uint32_t _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_0298096C: ; // 0x298096c
|
|
/* 0298096C */ cpu->r[0] = cpu->lr;
|
|
/* 02980970 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02980970 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980970 */ cpu->r[1] = _t0;
|
|
/* 02980974 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02980974 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 02980978 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02980978 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298097C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298097C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02980980 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 02980980 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02980984 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980984 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02980988 */ _t6 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980988 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298098C */ _t7 = cpu->r[3] + 0x00000024u;
|
|
/* 0298098C */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02980990 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980994 */ cpu->r[30] = cpu->r[29] + cpu->r[0];
|
|
/* 02980998 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298099C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 029809A0 */ cpu->r[28] = 0x00000000u;
|
|
/* 029809A4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029809A4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029809A4 */ if (_t9) goto L_029809F8; else goto L_029809A8;
|
|
L_029809A8: ; // 0x29809a8
|
|
/* 029809A8 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 029809A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029809AC */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 029809AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029809B0 */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 029809B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029809B4 */ cpu->r[0] = cpu->r[28];
|
|
/* 029809B8 */ _t13 = cpu->r[3] + 0x00000088u;
|
|
/* 029809B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029809BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 029809C0 */ cpu->r[8] = 0x00000000u;
|
|
/* 029809C4 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 029809C8 */ cpu->r[12] = cpu->r[9] + 0x000000A0u;
|
|
/* 029809CC */ _t14 = cpu->r[9] + 0x000000A4u;
|
|
/* 029809CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029809D0 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029809D0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 029809D0 */ if (_t16) goto L_029809D4; else goto L_029809E0;
|
|
L_029809D4: ; // 0x29809d4
|
|
/* 029809D4 */ _t17 = cpu->r[31] + 0x00000024u;
|
|
/* 029809D4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029809D8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029809DC */ _t18 = cpu->r[11] + cpu->r[9];
|
|
/* 029809DC */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
L_029809E0: ; // 0x29809e0
|
|
/* 029809E0 */ cpu->ctr = cpu->r[10];
|
|
/* 029809E4 */ _t19 = cpu->r[8] + 0x00000000u;
|
|
/* 029809E4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029809E8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029809EC */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 029809F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 029809F4 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029809F4 */ _t21 = _t20 & 0x00000001u;
|
|
/* 029809F4 */ if (_t21) goto L_029809F8; else goto L_029809A8;
|
|
L_029809F8: ; // 0x29809f8
|
|
/* 029809F8 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 029809F8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029809FC */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029809FC */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02980A00 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980A00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02980A04 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 02980A04 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02980A08 */ cpu->lr = cpu->r[0];
|
|
/* 02980A0C */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 02980A0C */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02980A10 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02980A14 */ return;
|
|
}
|
|
|
|
// fn_02980970 @ 0x2980970
|
|
void Gambit_fn_02980970(CPUState* cpu) {
|
|
uint32_t _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_02980970: ; // 0x2980970
|
|
/* 02980970 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02980970 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980970 */ cpu->r[1] = _t0;
|
|
/* 02980974 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02980974 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 02980978 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02980978 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298097C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298097C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02980980 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 02980980 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02980984 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980984 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02980988 */ _t6 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980988 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298098C */ _t7 = cpu->r[3] + 0x00000024u;
|
|
/* 0298098C */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02980990 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980994 */ cpu->r[30] = cpu->r[29] + cpu->r[0];
|
|
/* 02980998 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298099C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 029809A0 */ cpu->r[28] = 0x00000000u;
|
|
/* 029809A4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029809A4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029809A4 */ if (_t9) goto L_029809F8; else goto L_029809A8;
|
|
L_029809A8: ; // 0x29809a8
|
|
/* 029809A8 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 029809A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029809AC */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 029809AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029809B0 */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 029809B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029809B4 */ cpu->r[0] = cpu->r[28];
|
|
/* 029809B8 */ _t13 = cpu->r[3] + 0x00000088u;
|
|
/* 029809B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029809BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 029809C0 */ cpu->r[8] = 0x00000000u;
|
|
/* 029809C4 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 029809C8 */ cpu->r[12] = cpu->r[9] + 0x000000A0u;
|
|
/* 029809CC */ _t14 = cpu->r[9] + 0x000000A4u;
|
|
/* 029809CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029809D0 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029809D0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 029809D0 */ if (_t16) goto L_029809D4; else goto L_029809E0;
|
|
L_029809D4: ; // 0x29809d4
|
|
/* 029809D4 */ _t17 = cpu->r[31] + 0x00000024u;
|
|
/* 029809D4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029809D8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029809DC */ _t18 = cpu->r[11] + cpu->r[9];
|
|
/* 029809DC */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
L_029809E0: ; // 0x29809e0
|
|
/* 029809E0 */ cpu->ctr = cpu->r[10];
|
|
/* 029809E4 */ _t19 = cpu->r[8] + 0x00000000u;
|
|
/* 029809E4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029809E8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029809EC */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 029809F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 029809F4 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029809F4 */ _t21 = _t20 & 0x00000001u;
|
|
/* 029809F4 */ if (_t21) goto L_029809F8; else goto L_029809A8;
|
|
L_029809F8: ; // 0x29809f8
|
|
/* 029809F8 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 029809F8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029809FC */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029809FC */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02980A00 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980A00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02980A04 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 02980A04 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02980A08 */ cpu->lr = cpu->r[0];
|
|
/* 02980A0C */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 02980A0C */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02980A10 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02980A14 */ return;
|
|
}
|
|
|
|
// fn_02980A18 @ 0x2980a18
|
|
void Gambit_fn_02980A18(CPUState* cpu) {
|
|
uint32_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_02980A18: ; // 0x2980a18
|
|
/* 02980A18 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02980A18 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980A18 */ cpu->r[1] = _t0;
|
|
/* 02980A1C */ /* nop */
|
|
/* 02980A20 */ cpu->r[0] = cpu->lr;
|
|
/* 02980A24 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02980A24 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02980A28 */ _t2 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980A28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02980A2C */ _t3 = cpu->r[3] + 0x00000024u;
|
|
/* 02980A2C */ cpu->r[28] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02980A30 */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980A34 */ cpu->r[30] = cpu->r[4];
|
|
/* 02980A38 */ cpu->r[29] = cpu->r[28] + cpu->r[7];
|
|
/* 02980A3C */ cpu->r[31] = 0xFFFFFFFFu;
|
|
/* 02980A40 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 02980A44 */ cpu->r[27] = 0x00000000u;
|
|
/* 02980A48 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980A48 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02980A48 */ if (_t5) goto L_02980A90; else goto L_02980A4C;
|
|
L_02980A4C: ; // 0x2980a4c
|
|
/* 02980A4C */ _t6 = cpu->r[28] + 0x00000000u;
|
|
/* 02980A4C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02980A50 */ _t7 = cpu->r[9] + 0x00000000u;
|
|
/* 02980A50 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02980A54 */ _t8 = cpu->r[3] + 0x00000088u;
|
|
/* 02980A54 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02980A58 */ _t9 = cpu->r[10] + 0x000000BCu;
|
|
/* 02980A58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02980A5C */ cpu->ctr = cpu->r[0];
|
|
/* 02980A60 */ cpu->r[4] = cpu->r[30];
|
|
/* 02980A64 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980A68 */ cpu->r[12] = cpu->r[3];
|
|
/* 02980A6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 02980A70 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980A70 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02980A70 */ if (_t11) goto L_02980A80; else goto L_02980A74;
|
|
L_02980A74: ; // 0x2980a74
|
|
/* 02980A74 */ _t12 = rbrew_rlwinm(cpu->r[27], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02980A74 */ _t13 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02980A74 */ cpu->r[0] = _t13 | _t12;
|
|
/* 02980A78 */ _t14 = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02980A78 */ _t15 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02980A78 */ cpu->r[0] = _t15 | _t14;
|
|
/* 02980A7C */ goto L_02980A98;
|
|
L_02980A80: ; // 0x2980a80
|
|
/* 02980A80 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 02980A84 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 02980A88 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 02980A8C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980A8C */ _t17 = _t16 & 0x00000001u;
|
|
/* 02980A8C */ if (_t17) goto L_02980A90; else goto L_02980A4C;
|
|
L_02980A90: ; // 0x2980a90
|
|
/* 02980A90 */ _t18 = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02980A90 */ _t19 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02980A90 */ cpu->r[0] = _t19 | _t18;
|
|
/* 02980A94 */ _t20 = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02980A94 */ _t21 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02980A94 */ cpu->r[0] = _t21 | _t20;
|
|
L_02980A98: ; // 0x2980a98
|
|
/* 02980A98 */ /* nop */
|
|
/* 02980A9C */ cpu->r[3] = cpu->r[0];
|
|
/* 02980AA0 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 02980AA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02980AA4 */ cpu->lr = cpu->r[0];
|
|
/* 02980AA8 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02980AAC */ return;
|
|
}
|
|
|
|
// fn_02980AB0 @ 0x2980ab0
|
|
void Gambit_fn_02980AB0(CPUState* cpu) {
|
|
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_02980AB0: ; // 0x2980ab0
|
|
/* 02980AB0 */ cpu->r[0] = cpu->lr;
|
|
/* 02980AB4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 02980AB4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 02980AB8 */ _t1 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02980AB8 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 02980AB8 */ cpu->r[1] = _t1;
|
|
/* 02980ABC */ _t2 = cpu->r[4] + 0x00000000u;
|
|
/* 02980ABC */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t2);
|
|
/* 02980AC0 */ _t3 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980AC0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02980AC4 */ _t4 = cpu->r[4] + 0x00000002u;
|
|
/* 02980AC4 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t4);
|
|
/* 02980AC8 */ cpu->r[9] = 0x00000000u;
|
|
/* 02980ACC */ _t5 = cpu->r[1] + 0x00000010u;
|
|
/* 02980ACC */ rbrew_write16(cpu->mem, _t5, (uint16_t)cpu->r[7]);
|
|
/* 02980AD0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[8]);
|
|
/* 02980AD4 */ _t6 = cpu->r[1] + 0x00000012u;
|
|
/* 02980AD4 */ rbrew_write16(cpu->mem, _t6, (uint16_t)cpu->r[4]);
|
|
/* 02980AD8 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980AD8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02980AD8 */ if (_t8) goto L_02980ADC; else goto L_02980AE8;
|
|
L_02980ADC: ; // 0x2980adc
|
|
/* 02980ADC */ _t9 = cpu->r[3] + 0x00000024u;
|
|
/* 02980ADC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02980AE0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980AE4 */ _t10 = cpu->r[10] + cpu->r[0];
|
|
/* 02980AE4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
L_02980AE8: ; // 0x2980ae8
|
|
/* 02980AE8 */ _t11 = cpu->r[9] + 0x00000000u;
|
|
/* 02980AE8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02980AEC */ _t12 = cpu->r[3] + 0x00000088u;
|
|
/* 02980AEC */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02980AF0 */ _t13 = cpu->r[12] + 0x000000CCu;
|
|
/* 02980AF0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02980AF4 */ cpu->ctr = cpu->r[7];
|
|
/* 02980AF8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980AFC */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980AFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02980B00 */ /* nop */
|
|
/* 02980B04 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 02980B04 */ cpu->r[5] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02980B08 */ cpu->lr = cpu->r[0];
|
|
/* 02980B0C */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 02980B0C */ rbrew_write16(cpu->mem, _t16, (uint16_t)cpu->r[3]);
|
|
/* 02980B10 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 02980B10 */ cpu->r[6] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02980B14 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 02980B14 */ rbrew_write32(cpu->mem, _t18, cpu->r[5]);
|
|
/* 02980B18 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 02980B18 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02980B1C */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980B1C */ rbrew_write32(cpu->mem, _t20, cpu->r[6]);
|
|
/* 02980B20 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980B20 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02980B24 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02980B28 */ return;
|
|
}
|
|
|
|
// fn_02980AB8 @ 0x2980ab8
|
|
void Gambit_fn_02980AB8(CPUState* 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_02980AB8: ; // 0x2980ab8
|
|
/* 02980AB8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02980AB8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980AB8 */ cpu->r[1] = _t0;
|
|
/* 02980ABC */ _t1 = cpu->r[4] + 0x00000000u;
|
|
/* 02980ABC */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t1);
|
|
/* 02980AC0 */ _t2 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980AC0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02980AC4 */ _t3 = cpu->r[4] + 0x00000002u;
|
|
/* 02980AC4 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t3);
|
|
/* 02980AC8 */ cpu->r[9] = 0x00000000u;
|
|
/* 02980ACC */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 02980ACC */ rbrew_write16(cpu->mem, _t4, (uint16_t)cpu->r[7]);
|
|
/* 02980AD0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[8]);
|
|
/* 02980AD4 */ _t5 = cpu->r[1] + 0x00000012u;
|
|
/* 02980AD4 */ rbrew_write16(cpu->mem, _t5, (uint16_t)cpu->r[4]);
|
|
/* 02980AD8 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980AD8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02980AD8 */ if (_t7) goto L_02980ADC; else goto L_02980AE8;
|
|
L_02980ADC: ; // 0x2980adc
|
|
/* 02980ADC */ _t8 = cpu->r[3] + 0x00000024u;
|
|
/* 02980ADC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02980AE0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980AE4 */ _t9 = cpu->r[10] + cpu->r[0];
|
|
/* 02980AE4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
L_02980AE8: ; // 0x2980ae8
|
|
/* 02980AE8 */ _t10 = cpu->r[9] + 0x00000000u;
|
|
/* 02980AE8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02980AEC */ _t11 = cpu->r[3] + 0x00000088u;
|
|
/* 02980AEC */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02980AF0 */ _t12 = cpu->r[12] + 0x000000CCu;
|
|
/* 02980AF0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02980AF4 */ cpu->ctr = cpu->r[7];
|
|
/* 02980AF8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980AFC */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980AFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02980B00 */ /* nop */
|
|
/* 02980B04 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 02980B04 */ cpu->r[5] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02980B08 */ cpu->lr = cpu->r[0];
|
|
/* 02980B0C */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 02980B0C */ rbrew_write16(cpu->mem, _t15, (uint16_t)cpu->r[3]);
|
|
/* 02980B10 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 02980B10 */ cpu->r[6] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02980B14 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 02980B14 */ rbrew_write32(cpu->mem, _t17, cpu->r[5]);
|
|
/* 02980B18 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 02980B18 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02980B1C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980B1C */ rbrew_write32(cpu->mem, _t19, cpu->r[6]);
|
|
/* 02980B20 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980B20 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02980B24 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02980B28 */ return;
|
|
}
|
|
|
|
// fn_02980B2C @ 0x2980b2c
|
|
void Gambit_fn_02980B2C(CPUState* cpu) {
|
|
uint32_t _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_02980B2C: ; // 0x2980b2c
|
|
/* 02980B2C */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02980B2C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980B2C */ cpu->r[1] = _t0;
|
|
/* 02980B30 */ /* nop */
|
|
/* 02980B34 */ cpu->r[0] = cpu->lr;
|
|
/* 02980B38 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02980B38 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02980B3C */ cpu->r[29] = cpu->r[3];
|
|
/* 02980B40 */ _t2 = cpu->r[29] + 0x00000080u;
|
|
/* 02980B40 */ cpu->r[5] = rbrew_read16(cpu->mem, _t2);
|
|
/* 02980B44 */ _t3 = cpu->r[29] + 0x00000014u;
|
|
/* 02980B44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02980B48 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 02980B4C */ _t4 = cpu->r[29] + 0x00000018u;
|
|
/* 02980B4C */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02980B50 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980B50 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02980B50 */ if (_t6) goto L_02980B6C; else goto L_02980B54;
|
|
L_02980B54: ; // 0x2980b54
|
|
/* 02980B54 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x0000001Cu);
|
|
/* 02980B58 */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 02980B5C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02980B60 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 02980B60 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 02980B64 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980B64 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02980B64 */ if (_t9) goto L_02980BD0; else goto L_02980B68;
|
|
L_02980B68: ; // 0x2980b68
|
|
/* 02980B68 */ goto L_02980B80;
|
|
L_02980B6C: ; // 0x2980b6c
|
|
/* 02980B6C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02980B70 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 02980B74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02980B78 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02980B78 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 02980B7C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980B7C */ _t12 = _t11 & 0x00000001u;
|
|
/* 02980B7C */ if (_t12) goto L_02980BD0; else goto L_02980B80;
|
|
L_02980B80: ; // 0x2980b80
|
|
/* 02980B80 */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 02980B80 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02980B84 */ _t14 = cpu->r[3] + 0x00000088u;
|
|
/* 02980B84 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02980B88 */ _t15 = cpu->r[4] + 0x000000B4u;
|
|
/* 02980B88 */ cpu->r[8] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02980B8C */ cpu->ctr = cpu->r[8];
|
|
/* 02980B90 */ cpu->r[27] = 0x00000000u;
|
|
/* 02980B94 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980B98 */ cpu->r[28] = cpu->r[3];
|
|
/* 02980B98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02980B9C */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980B9C */ _t17 = _t16 & 0x00000001u;
|
|
/* 02980B9C */ if (_t17) goto L_02980BA0; else goto L_02980BC4;
|
|
L_02980BA0: ; // 0x2980ba0
|
|
/* 02980BA0 */ _t18 = cpu->r[31] + 0x00000000u;
|
|
/* 02980BA0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02980BA4 */ _t19 = cpu->r[3] + 0x00000088u;
|
|
/* 02980BA4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02980BA8 */ _t20 = cpu->r[6] + 0x0000018Cu;
|
|
/* 02980BA8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02980BAC */ cpu->ctr = cpu->r[7];
|
|
/* 02980BB0 */ cpu->r[4] = cpu->r[27];
|
|
/* 02980BB4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980BB8 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 02980BB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02980BBC */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 02980BC0 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980BC0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 02980BC0 */ if (_t22) goto L_02980BC4; else goto L_02980BA0;
|
|
L_02980BC4: ; // 0x2980bc4
|
|
/* 02980BC4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02980BC8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02980BCC */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980BCC */ _t24 = _t23 & 0x00000001u;
|
|
/* 02980BCC */ if (_t24) goto L_02980BD0; else goto L_02980B80;
|
|
L_02980BD0: ; // 0x2980bd0
|
|
/* 02980BD0 */ _t25 = cpu->r[29] + 0x000000A8u;
|
|
/* 02980BD0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02980BD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02980BD8 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980BD8 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02980BD8 */ if (_t27) goto L_02980BF0; else goto L_02980BDC;
|
|
L_02980BDC: ; // 0x2980bdc
|
|
/* 02980BDC */ _t28 = cpu->r[3] + 0x00000000u;
|
|
/* 02980BDC */ cpu->r[9] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02980BE0 */ _t29 = cpu->r[9] + 0x00000024u;
|
|
/* 02980BE0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02980BE4 */ cpu->ctr = cpu->r[10];
|
|
/* 02980BE8 */ cpu->r[4] = cpu->r[29];
|
|
/* 02980BEC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02980BF0: ; // 0x2980bf0
|
|
/* 02980BF0 */ /* nop */
|
|
/* 02980BF4 */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02980BF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02980BF8 */ cpu->lr = cpu->r[0];
|
|
/* 02980BFC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02980C00 */ return;
|
|
}
|
|
|
|
// fn_02980C04 @ 0x2980c04
|
|
void Gambit_fn_02980C04(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02980C04: ; // 0x2980c04
|
|
/* 02980C04 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 02980C04 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980C04 */ cpu->r[1] = _t0;
|
|
/* 02980C08 */ /* nop */
|
|
/* 02980C0C */ cpu->r[0] = cpu->lr;
|
|
/* 02980C10 */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 02980C10 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02980C14 */ cpu->r[29] = cpu->r[6];
|
|
/* 02980C18 */ _t2 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980C18 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02980C1C */ _t3 = cpu->r[29] + 0x00000000u;
|
|
/* 02980C1C */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t3);
|
|
/* 02980C20 */ cpu->r[27] = cpu->r[4];
|
|
/* 02980C24 */ cpu->r[28] = cpu->r[5];
|
|
/* 02980C28 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[11]);
|
|
/* 02980C2C */ cpu->r[11] = 0x00000000u;
|
|
/* 02980C30 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980C30 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02980C30 */ if (_t5) goto L_02980C34; else goto L_02980C40;
|
|
L_02980C34: ; // 0x2980c34
|
|
/* 02980C34 */ _t6 = cpu->r[3] + 0x00000024u;
|
|
/* 02980C34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02980C38 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980C3C */ _t7 = cpu->r[12] + cpu->r[0];
|
|
/* 02980C3C */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
L_02980C40: ; // 0x2980c40
|
|
/* 02980C40 */ cpu->r[10] = 0x101D0000u;
|
|
/* 02980C44 */ _t8 = cpu->r[10] + 0xFFFFE218u;
|
|
/* 02980C44 */ cpu->r[6] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02980C44 */ cpu->r[10] = _t8;
|
|
/* 02980C48 */ cpu->r[4] = 0x101D0000u;
|
|
/* 02980C4C */ _t9 = cpu->r[11] + 0x00000000u;
|
|
/* 02980C4C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02980C50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02980C54 */ cpu->r[4] = cpu->r[4] + 0xFFFFEF88u;
|
|
/* 02980C58 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980C58 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02980C58 */ if (_t11) goto L_02980C5C; else goto L_02980C70;
|
|
L_02980C5C: ; // 0x2980c5c
|
|
/* 02980C5C */ cpu->r[9] = 0x10150000u;
|
|
/* 02980C60 */ cpu->r[8] = 0x00000001u;
|
|
/* 02980C64 */ cpu->r[9] = cpu->r[9] + 0xFFFFEC18u;
|
|
/* 02980C68 */ _t12 = cpu->r[10] + 0x00000000u;
|
|
/* 02980C68 */ rbrew_write32(cpu->mem, _t12, cpu->r[8]);
|
|
/* 02980C6C */ _t13 = cpu->r[4] + 0x00000000u;
|
|
/* 02980C6C */ rbrew_write32(cpu->mem, _t13, cpu->r[9]);
|
|
L_02980C70: ; // 0x2980c70
|
|
/* 02980C70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02980C74 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980C74 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02980C74 */ if (_t15) goto L_02980DC8; else goto L_02980C78;
|
|
L_02980C78: ; // 0x2980c78
|
|
/* 02980C78 */ _t16 = cpu->r[30] + 0x00000088u;
|
|
/* 02980C78 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02980C7C */ _t17 = cpu->r[10] + 0x0000000Cu;
|
|
/* 02980C7C */ cpu->r[5] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02980C80 */ cpu->ctr = cpu->r[5];
|
|
/* 02980C84 */ cpu->r[3] = cpu->r[30];
|
|
/* 02980C88 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980C8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02980C90 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980C90 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02980C90 */ if (_t19) goto L_02980DC8; else goto L_02980C94;
|
|
L_02980C94: ; // 0x2980c94
|
|
/* 02980C94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02980C98 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980C98 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02980C98 */ if (_t21) goto L_02980DC8; else goto L_02980C9C;
|
|
L_02980C9C: ; // 0x2980c9c
|
|
/* 02980C9C */ _t22 = cpu->r[29] + 0x00000002u;
|
|
/* 02980C9C */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t22);
|
|
/* 02980CA0 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000003Cu);
|
|
/* 02980CA4 */ _t23 = cpu->r[30] + 0x000000B4u;
|
|
/* 02980CA4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02980CA8 */ _t24 = cpu->r[4] + cpu->r[12];
|
|
/* 02980CA8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02980CAC */ _t25 = cpu->r[8] + 0x00000011u;
|
|
/* 02980CAC */ cpu->r[6] = rbrew_read8(cpu->mem, _t25);
|
|
/* 02980CB0 */ cpu->r[22] = 0x00000000u;
|
|
/* 02980CB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], cpu->r[6]);
|
|
/* 02980CB8 */ cpu->r[21] = cpu->r[4] + cpu->r[12];
|
|
/* 02980CBC */ _t26 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980CBC */ _t27 = _t26 & 0x00000001u;
|
|
/* 02980CBC */ if (_t27) goto L_02980CC0; else goto L_02980DC8;
|
|
L_02980CC0: ; // 0x2980cc0
|
|
/* 02980CC0 */ cpu->r[31] = 0x10110000u;
|
|
/* 02980CC4 */ cpu->r[25] = 0x00080000u;
|
|
/* 02980CC8 */ cpu->r[24] = 0x00000000u;
|
|
/* 02980CCC */ cpu->r[26] = 0x10150000u;
|
|
/* 02980CD0 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 02980CD4 */ _t28 = cpu->r[31] + 0x00007399u;
|
|
/* 02980CD4 */ cpu->r[31] = rbrew_read8(cpu->mem, _t28);
|
|
/* 02980CD8 */ cpu->r[26] = cpu->r[26] + 0xFFFFEBC8u;
|
|
L_02980CDC: ; // 0x2980cdc
|
|
/* 02980CDC */ _t29 = cpu->r[21] + 0x0000002Cu;
|
|
/* 02980CDC */ cpu->r[7] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02980CE0 */ _t30 = cpu->r[7] + cpu->r[24];
|
|
/* 02980CE0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02980CE4 */ _t31 = cpu->r[5] + 0x000000A8u;
|
|
/* 02980CE4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02980CE8 */ cpu->r[7] = cpu->r[5] + 0x000000A8u;
|
|
/* 02980CEC */ cpu->r[10] = 0x00000000u;
|
|
/* 02980CF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02980CF4 */ _t32 = cpu->r[28] + 0x00000004u;
|
|
/* 02980CF4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02980CF8 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980CF8 */ _t34 = _t33 & 0x00000001u;
|
|
/* 02980CF8 */ if (_t34) goto L_02980D00; else goto L_02980CFC;
|
|
L_02980CFC: ; // 0x2980cfc
|
|
/* 02980CFC */ cpu->r[10] = cpu->r[7] + cpu->r[8];
|
|
L_02980D00: ; // 0x2980d00
|
|
/* 02980D00 */ _t35 = cpu->r[1] + 0x00000008u;
|
|
/* 02980D00 */ rbrew_write32(cpu->mem, _t35, cpu->r[10]);
|
|
/* 02980D04 */ _t36 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980D04 */ rbrew_write32(cpu->mem, _t36, cpu->r[26]);
|
|
/* 02980D08 */ _t37 = cpu->r[9] + 0x00000014u;
|
|
/* 02980D08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02980D0C */ cpu->ctr = cpu->r[0];
|
|
/* 02980D10 */ cpu->r[3] = cpu->r[28];
|
|
/* 02980D14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980D18 */ _t38 = cpu->r[28] + 0x00000004u;
|
|
/* 02980D18 */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02980D1C */ _t39 = cpu->r[11] + 0x00000014u;
|
|
/* 02980D1C */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 02980D20 */ cpu->ctr = cpu->r[4];
|
|
/* 02980D24 */ cpu->r[3] = cpu->r[28];
|
|
/* 02980D28 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980D2C */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980D2C */ cpu->r[6] = rbrew_read32(cpu->mem, _t40);
|
|
/* 02980D30 */ _t41 = cpu->r[6] + 0x00000014u;
|
|
/* 02980D30 */ cpu->r[9] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02980D34 */ cpu->ctr = cpu->r[9];
|
|
/* 02980D38 */ _t42 = cpu->r[28] + 0x00000000u;
|
|
/* 02980D38 */ cpu->r[23] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02980D3C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02980D40 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980D44 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 02980D44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 02980D48 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[23], cpu->r[0]);
|
|
/* 02980D4C */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980D4C */ _t45 = _t44 & 0x00000001u;
|
|
/* 02980D4C */ if (_t45) goto L_02980D9C; else goto L_02980D50;
|
|
L_02980D50: ; // 0x2980d50
|
|
/* 02980D50 */ _t46 = cpu->r[28] + 0x00000000u;
|
|
/* 02980D50 */ cpu->r[7] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02980D54 */ _t47 = cpu->r[1] + 0x00000008u;
|
|
/* 02980D54 */ cpu->r[6] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02980D58 */ cpu->r[7] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 02980D5C */ cpu->ctr = cpu->r[25];
|
|
/* 02980D60 */ cpu->r[6] = cpu->r[6] + 0xFFFFFFFFu;
|
|
L_02980D64: ; // 0x2980d64
|
|
/* 02980D64 */ _t48 = cpu->r[7] + 0x00000001u;
|
|
/* 02980D64 */ cpu->r[0] = rbrew_read8(cpu->mem, _t48);
|
|
/* 02980D64 */ cpu->r[7] = _t48;
|
|
/* 02980D68 */ _t49 = cpu->r[6] + 0x00000001u;
|
|
/* 02980D68 */ cpu->r[12] = rbrew_read8(cpu->mem, _t49);
|
|
/* 02980D68 */ cpu->r[6] = _t49;
|
|
/* 02980D6C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02980D70 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980D70 */ _t51 = _t50 & 0x00000001u;
|
|
/* 02980D70 */ if (_t51) goto L_02980D74; else goto L_02980DB0;
|
|
L_02980D74: ; // 0x2980d74
|
|
/* 02980D74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 02980D78 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980D78 */ _t53 = _t52 & 0x00000001u;
|
|
/* 02980D78 */ if (_t53) goto L_02980D9C; else goto L_02980D7C;
|
|
L_02980D7C: ; // 0x2980d7c
|
|
/* 02980D7C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02980D7C */ _t54 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02980D7C */ _t55 = _t54 >> (0x00000002u & 31u);
|
|
/* 02980D7C */ _t56 = _t55 & 0x00000001u;
|
|
/* 02980D7C */ if (_t56) goto L_02980D64; else goto L_02980D80;
|
|
L_02980D80: ; // 0x2980d80
|
|
/* 02980D80 */ _t57 = cpu->r[21] + 0x00000000u;
|
|
/* 02980D80 */ cpu->r[8] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02980D84 */ _t58 = cpu->r[8] + 0x00000011u;
|
|
/* 02980D84 */ cpu->r[0] = rbrew_read8(cpu->mem, _t58);
|
|
/* 02980D88 */ cpu->r[22] = cpu->r[22] + 0x00000001u;
|
|
/* 02980D8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], cpu->r[0]);
|
|
/* 02980D90 */ cpu->r[24] = cpu->r[24] + 0x00000004u;
|
|
/* 02980D94 */ _t59 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980D94 */ _t60 = _t59 & 0x00000001u;
|
|
/* 02980D94 */ if (_t60) goto L_02980CDC; else goto L_02980D98;
|
|
L_02980D98: ; // 0x2980d98
|
|
/* 02980D98 */ goto L_02980DC8;
|
|
L_02980D9C: ; // 0x2980d9c
|
|
/* 02980D9C */ _t61 = cpu->r[21] + 0x0000002Cu;
|
|
/* 02980D9C */ cpu->r[4] = rbrew_read32(cpu->mem, _t61);
|
|
/* 02980DA0 */ _t62 = cpu->r[4] + cpu->r[24];
|
|
/* 02980DA0 */ rbrew_write32(cpu->mem, _t62, cpu->r[27]);
|
|
/* 02980DA4 */ _t63 = cpu->r[29] + 0x00000002u;
|
|
/* 02980DA4 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t63);
|
|
/* 02980DA8 */ cpu->r[3] = cpu->r[30];
|
|
/* 02980DAC */ Gambit_fn_02991DA8(cpu);
|
|
L_02980DB0: ; // 0x2980db0
|
|
/* 02980DB0 */ _t64 = cpu->r[21] + 0x00000000u;
|
|
/* 02980DB0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t64);
|
|
/* 02980DB4 */ _t65 = cpu->r[8] + 0x00000011u;
|
|
/* 02980DB4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t65);
|
|
/* 02980DB8 */ cpu->r[22] = cpu->r[22] + 0x00000001u;
|
|
/* 02980DBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], cpu->r[0]);
|
|
/* 02980DC0 */ cpu->r[24] = cpu->r[24] + 0x00000004u;
|
|
/* 02980DC4 */ _t66 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980DC4 */ _t67 = _t66 & 0x00000001u;
|
|
/* 02980DC4 */ if (_t67) goto L_02980CDC; else goto L_02980DC8;
|
|
L_02980DC8: ; // 0x2980dc8
|
|
/* 02980DC8 */ /* nop */
|
|
/* 02980DCC */ _t68 = cpu->r[1] + 0x00000044u;
|
|
/* 02980DCC */ cpu->r[0] = rbrew_read32(cpu->mem, _t68);
|
|
/* 02980DD0 */ cpu->lr = cpu->r[0];
|
|
/* 02980DD4 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 02980DD8 */ return;
|
|
}
|
|
|
|
// fn_02980DDC @ 0x2980ddc
|
|
void Gambit_fn_02980DDC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_02980DDC: ; // 0x2980ddc
|
|
/* 02980DDC */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 02980DDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980DDC */ cpu->r[1] = _t0;
|
|
/* 02980DE0 */ /* nop */
|
|
/* 02980DE4 */ cpu->r[0] = cpu->lr;
|
|
/* 02980DE8 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 02980DE8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02980DEC */ cpu->r[30] = cpu->r[3];
|
|
/* 02980DF0 */ _t2 = cpu->r[30] + 0x0000001Cu;
|
|
/* 02980DF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02980DF4 */ _t3 = cpu->r[30] + 0x00000024u;
|
|
/* 02980DF4 */ cpu->r[26] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02980DF8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980DFC */ cpu->r[31] = cpu->r[4];
|
|
/* 02980E00 */ cpu->r[27] = cpu->r[26] + cpu->r[0];
|
|
/* 02980E04 */ cpu->r[24] = cpu->r[5];
|
|
/* 02980E08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[27]);
|
|
/* 02980E0C */ cpu->r[25] = 0x00000000u;
|
|
/* 02980E10 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980E10 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02980E10 */ if (_t5) goto L_02980E70; else goto L_02980E14;
|
|
L_02980E14: ; // 0x2980e14
|
|
/* 02980E14 */ _t6 = cpu->r[26] + 0x00000000u;
|
|
/* 02980E14 */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02980E18 */ _t7 = cpu->r[9] + 0x00000000u;
|
|
/* 02980E18 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02980E1C */ _t8 = cpu->r[3] + 0x00000088u;
|
|
/* 02980E1C */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02980E20 */ _t9 = cpu->r[10] + 0x000000B4u;
|
|
/* 02980E20 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02980E24 */ cpu->ctr = cpu->r[12];
|
|
/* 02980E28 */ cpu->r[29] = 0x00000000u;
|
|
/* 02980E2C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980E30 */ cpu->r[28] = cpu->r[3];
|
|
/* 02980E30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02980E34 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980E34 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02980E34 */ if (_t11) goto L_02980E38; else goto L_02980E60;
|
|
L_02980E38: ; // 0x2980e38
|
|
/* 02980E38 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 02980E38 */ rbrew_write16(cpu->mem, _t12, (uint16_t)cpu->r[25]);
|
|
/* 02980E3C */ cpu->r[3] = cpu->r[30];
|
|
/* 02980E40 */ cpu->r[4] = cpu->r[31];
|
|
/* 02980E44 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 02980E48 */ cpu->r[5] = cpu->r[24];
|
|
/* 02980E4C */ _t13 = cpu->r[1] + 0x0000000Au;
|
|
/* 02980E4C */ rbrew_write16(cpu->mem, _t13, (uint16_t)cpu->r[29]);
|
|
/* 02980E50 */ Gambit_fn_02980C04(cpu);
|
|
/* 02980E54 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 02980E54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02980E58 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 02980E5C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980E5C */ _t15 = _t14 & 0x00000001u;
|
|
/* 02980E5C */ if (_t15) goto L_02980E60; else goto L_02980E38;
|
|
L_02980E60: ; // 0x2980e60
|
|
/* 02980E60 */ cpu->r[26] = cpu->r[26] + 0x00000004u;
|
|
/* 02980E64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], cpu->r[27]);
|
|
/* 02980E68 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 02980E6C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980E6C */ _t17 = _t16 & 0x00000001u;
|
|
/* 02980E6C */ if (_t17) goto L_02980E70; else goto L_02980E14;
|
|
L_02980E70: ; // 0x2980e70
|
|
/* 02980E70 */ /* nop */
|
|
/* 02980E74 */ _t18 = cpu->r[1] + 0x00000034u;
|
|
/* 02980E74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02980E78 */ cpu->lr = cpu->r[0];
|
|
/* 02980E7C */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 02980E80 */ return;
|
|
}
|
|
|
|
// fn_02980E84 @ 0x2980e84
|
|
void Gambit_fn_02980E84(CPUState* cpu) {
|
|
uint32_t _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_02980E84: ; // 0x2980e84
|
|
/* 02980E84 */ cpu->r[0] = cpu->lr;
|
|
/* 02980E88 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02980E88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980E88 */ cpu->r[1] = _t0;
|
|
/* 02980E8C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980E8C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02980E90 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02980E90 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 02980E94 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 02980E94 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 02980E98 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 02980E98 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02980E9C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980E9C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02980EA0 */ cpu->r[29] = cpu->r[5];
|
|
/* 02980EA4 */ cpu->r[30] = cpu->r[6];
|
|
/* 02980EA8 */ _t6 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980EA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02980EAC */ _t7 = cpu->r[30] + 0x00000000u;
|
|
/* 02980EAC */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t7);
|
|
/* 02980EB0 */ cpu->r[8] = 0x00000000u;
|
|
/* 02980EB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 02980EB8 */ cpu->r[28] = cpu->r[4];
|
|
/* 02980EBC */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980EBC */ _t9 = _t8 & 0x00000001u;
|
|
/* 02980EBC */ if (_t9) goto L_02980EC0; else goto L_02980ECC;
|
|
L_02980EC0: ; // 0x2980ec0
|
|
/* 02980EC0 */ _t10 = cpu->r[3] + 0x00000024u;
|
|
/* 02980EC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02980EC4 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980EC8 */ _t11 = cpu->r[6] + cpu->r[7];
|
|
/* 02980EC8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
L_02980ECC: ; // 0x2980ecc
|
|
/* 02980ECC */ cpu->r[12] = 0x101D0000u;
|
|
/* 02980ED0 */ _t12 = cpu->r[12] + 0xFFFFE218u;
|
|
/* 02980ED0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02980ED0 */ cpu->r[12] = _t12;
|
|
/* 02980ED4 */ cpu->r[4] = 0x101D0000u;
|
|
/* 02980ED8 */ _t13 = cpu->r[8] + 0x00000000u;
|
|
/* 02980ED8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02980EDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02980EE0 */ cpu->r[4] = cpu->r[4] + 0xFFFFEF88u;
|
|
/* 02980EE4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980EE4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02980EE4 */ if (_t15) goto L_02980EE8; else goto L_02980EFC;
|
|
L_02980EE8: ; // 0x2980ee8
|
|
/* 02980EE8 */ cpu->r[0] = 0x10150000u;
|
|
/* 02980EEC */ cpu->r[10] = 0x00000001u;
|
|
/* 02980EF0 */ cpu->r[0] = cpu->r[0] + 0xFFFFEC18u;
|
|
/* 02980EF4 */ _t16 = cpu->r[12] + 0x00000000u;
|
|
/* 02980EF4 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 02980EF8 */ _t17 = cpu->r[4] + 0x00000000u;
|
|
/* 02980EF8 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_02980EFC: ; // 0x2980efc
|
|
/* 02980EFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02980F00 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980F00 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02980F00 */ if (_t19) goto L_02980F4C; else goto L_02980F04;
|
|
L_02980F04: ; // 0x2980f04
|
|
/* 02980F04 */ _t20 = cpu->r[31] + 0x00000088u;
|
|
/* 02980F04 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02980F08 */ _t21 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02980F08 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02980F0C */ cpu->ctr = cpu->r[9];
|
|
/* 02980F10 */ cpu->r[3] = cpu->r[31];
|
|
/* 02980F14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980F18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02980F1C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980F1C */ _t23 = _t22 & 0x00000001u;
|
|
/* 02980F1C */ if (_t23) goto L_02980F4C; else goto L_02980F20;
|
|
L_02980F20: ; // 0x2980f20
|
|
/* 02980F20 */ cpu->r[3] = cpu->r[31];
|
|
/* 02980F20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02980F24 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980F24 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02980F24 */ if (_t25) goto L_02980F4C; else goto L_02980F28;
|
|
L_02980F28: ; // 0x2980f28
|
|
/* 02980F28 */ _t26 = cpu->r[30] + 0x00000002u;
|
|
/* 02980F28 */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t26);
|
|
/* 02980F2C */ _t27 = cpu->r[3] + 0x000000B4u;
|
|
/* 02980F2C */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02980F30 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x0000003Cu);
|
|
/* 02980F34 */ cpu->r[6] = cpu->r[8] + cpu->r[5];
|
|
/* 02980F38 */ _t28 = cpu->r[6] + 0x0000002Cu;
|
|
/* 02980F38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02980F3C */ cpu->r[10] = rbrew_rlwinm(cpu->r[29], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980F40 */ _t29 = cpu->r[10] + cpu->r[0];
|
|
/* 02980F40 */ rbrew_write32(cpu->mem, _t29, cpu->r[28]);
|
|
/* 02980F44 */ _t30 = cpu->r[30] + 0x00000002u;
|
|
/* 02980F44 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t30);
|
|
/* 02980F48 */ Gambit_fn_02991DA8(cpu);
|
|
L_02980F4C: ; // 0x2980f4c
|
|
/* 02980F4C */ _t31 = cpu->r[1] + 0x00000008u;
|
|
/* 02980F4C */ cpu->r[28] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02980F50 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980F50 */ cpu->r[29] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02980F54 */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980F54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02980F58 */ _t34 = cpu->r[1] + 0x00000010u;
|
|
/* 02980F58 */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02980F5C */ cpu->lr = cpu->r[0];
|
|
/* 02980F60 */ _t35 = cpu->r[1] + 0x00000014u;
|
|
/* 02980F60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02980F64 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02980F68 */ return;
|
|
}
|
|
|
|
// fn_02980E88 @ 0x2980e88
|
|
void Gambit_fn_02980E88(CPUState* cpu) {
|
|
uint32_t _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_02980E88: ; // 0x2980e88
|
|
/* 02980E88 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02980E88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980E88 */ cpu->r[1] = _t0;
|
|
/* 02980E8C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980E8C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02980E90 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02980E90 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 02980E94 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 02980E94 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 02980E98 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 02980E98 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02980E9C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980E9C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02980EA0 */ cpu->r[29] = cpu->r[5];
|
|
/* 02980EA4 */ cpu->r[30] = cpu->r[6];
|
|
/* 02980EA8 */ _t6 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02980EA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02980EAC */ _t7 = cpu->r[30] + 0x00000000u;
|
|
/* 02980EAC */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t7);
|
|
/* 02980EB0 */ cpu->r[8] = 0x00000000u;
|
|
/* 02980EB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 02980EB8 */ cpu->r[28] = cpu->r[4];
|
|
/* 02980EBC */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02980EBC */ _t9 = _t8 & 0x00000001u;
|
|
/* 02980EBC */ if (_t9) goto L_02980EC0; else goto L_02980ECC;
|
|
L_02980EC0: ; // 0x2980ec0
|
|
/* 02980EC0 */ _t10 = cpu->r[3] + 0x00000024u;
|
|
/* 02980EC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02980EC4 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980EC8 */ _t11 = cpu->r[6] + cpu->r[7];
|
|
/* 02980EC8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
L_02980ECC: ; // 0x2980ecc
|
|
/* 02980ECC */ cpu->r[12] = 0x101D0000u;
|
|
/* 02980ED0 */ _t12 = cpu->r[12] + 0xFFFFE218u;
|
|
/* 02980ED0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02980ED0 */ cpu->r[12] = _t12;
|
|
/* 02980ED4 */ cpu->r[4] = 0x101D0000u;
|
|
/* 02980ED8 */ _t13 = cpu->r[8] + 0x00000000u;
|
|
/* 02980ED8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02980EDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02980EE0 */ cpu->r[4] = cpu->r[4] + 0xFFFFEF88u;
|
|
/* 02980EE4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980EE4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02980EE4 */ if (_t15) goto L_02980EE8; else goto L_02980EFC;
|
|
L_02980EE8: ; // 0x2980ee8
|
|
/* 02980EE8 */ cpu->r[0] = 0x10150000u;
|
|
/* 02980EEC */ cpu->r[10] = 0x00000001u;
|
|
/* 02980EF0 */ cpu->r[0] = cpu->r[0] + 0xFFFFEC18u;
|
|
/* 02980EF4 */ _t16 = cpu->r[12] + 0x00000000u;
|
|
/* 02980EF4 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 02980EF8 */ _t17 = cpu->r[4] + 0x00000000u;
|
|
/* 02980EF8 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
L_02980EFC: ; // 0x2980efc
|
|
/* 02980EFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02980F00 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980F00 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02980F00 */ if (_t19) goto L_02980F4C; else goto L_02980F04;
|
|
L_02980F04: ; // 0x2980f04
|
|
/* 02980F04 */ _t20 = cpu->r[31] + 0x00000088u;
|
|
/* 02980F04 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02980F08 */ _t21 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02980F08 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02980F0C */ cpu->ctr = cpu->r[9];
|
|
/* 02980F10 */ cpu->r[3] = cpu->r[31];
|
|
/* 02980F14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980F18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02980F1C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980F1C */ _t23 = _t22 & 0x00000001u;
|
|
/* 02980F1C */ if (_t23) goto L_02980F4C; else goto L_02980F20;
|
|
L_02980F20: ; // 0x2980f20
|
|
/* 02980F20 */ cpu->r[3] = cpu->r[31];
|
|
/* 02980F20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02980F24 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980F24 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02980F24 */ if (_t25) goto L_02980F4C; else goto L_02980F28;
|
|
L_02980F28: ; // 0x2980f28
|
|
/* 02980F28 */ _t26 = cpu->r[30] + 0x00000002u;
|
|
/* 02980F28 */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t26);
|
|
/* 02980F2C */ _t27 = cpu->r[3] + 0x000000B4u;
|
|
/* 02980F2C */ cpu->r[8] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02980F30 */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x0000003Cu);
|
|
/* 02980F34 */ cpu->r[6] = cpu->r[8] + cpu->r[5];
|
|
/* 02980F38 */ _t28 = cpu->r[6] + 0x0000002Cu;
|
|
/* 02980F38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02980F3C */ cpu->r[10] = rbrew_rlwinm(cpu->r[29], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02980F40 */ _t29 = cpu->r[10] + cpu->r[0];
|
|
/* 02980F40 */ rbrew_write32(cpu->mem, _t29, cpu->r[28]);
|
|
/* 02980F44 */ _t30 = cpu->r[30] + 0x00000002u;
|
|
/* 02980F44 */ cpu->r[4] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t30);
|
|
/* 02980F48 */ Gambit_fn_02991DA8(cpu);
|
|
L_02980F4C: ; // 0x2980f4c
|
|
/* 02980F4C */ _t31 = cpu->r[1] + 0x00000008u;
|
|
/* 02980F4C */ cpu->r[28] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02980F50 */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02980F50 */ cpu->r[29] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02980F54 */ _t33 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980F54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02980F58 */ _t34 = cpu->r[1] + 0x00000010u;
|
|
/* 02980F58 */ cpu->r[30] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02980F5C */ cpu->lr = cpu->r[0];
|
|
/* 02980F60 */ _t35 = cpu->r[1] + 0x00000014u;
|
|
/* 02980F60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02980F64 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02980F68 */ return;
|
|
}
|
|
|
|
// fn_02980F6C @ 0x2980f6c
|
|
void Gambit_fn_02980F6C(CPUState* cpu) {
|
|
uint32_t _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_02980F6C: ; // 0x2980f6c
|
|
/* 02980F6C */ cpu->r[0] = cpu->lr;
|
|
/* 02980F70 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02980F70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980F70 */ cpu->r[1] = _t0;
|
|
/* 02980F74 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02980F74 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02980F78 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02980F78 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02980F7C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980F7C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02980F80 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02980F80 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02980F84 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 02980F84 */ cpu->r[12] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02980F88 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02980F88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02980F8C */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02980F8C */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02980F90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02980F94 */ cpu->r[29] = 0x00000000u;
|
|
/* 02980F98 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980F98 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02980F98 */ if (_t9) goto L_02980FB4; else goto L_02980F9C;
|
|
L_02980F9C: ; // 0x2980f9c
|
|
/* 02980F9C */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 02980FA0 */ cpu->r[31] = cpu->r[30] + cpu->r[8];
|
|
/* 02980FA4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02980FA8 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02980FA8 */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 02980FAC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980FAC */ _t12 = _t11 & 0x00000001u;
|
|
/* 02980FAC */ if (_t12) goto L_02980FEC; else goto L_02980FB0;
|
|
L_02980FB0: ; // 0x2980fb0
|
|
/* 02980FB0 */ goto L_02980FC8;
|
|
L_02980FB4: ; // 0x2980fb4
|
|
/* 02980FB4 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02980FB8 */ cpu->r[31] = cpu->r[30] + cpu->r[10];
|
|
/* 02980FBC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02980FC0 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02980FC0 */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
/* 02980FC4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980FC4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02980FC4 */ if (_t15) goto L_02980FEC; else goto L_02980FC8;
|
|
L_02980FC8: ; // 0x2980fc8
|
|
/* 02980FC8 */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 02980FC8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02980FCC */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 02980FCC */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02980FD0 */ _t18 = cpu->r[11] + 0x00000034u;
|
|
/* 02980FD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02980FD4 */ cpu->ctr = cpu->r[0];
|
|
/* 02980FD8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980FDC */ cpu->r[30] = cpu->r[30] + 0x0000001Cu;
|
|
/* 02980FE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02980FE4 */ cpu->r[29] = cpu->r[29] + cpu->r[3];
|
|
/* 02980FE8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980FE8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02980FE8 */ if (_t20) goto L_02980FEC; else goto L_02980FC8;
|
|
L_02980FEC: ; // 0x2980fec
|
|
/* 02980FEC */ cpu->r[3] = cpu->r[29];
|
|
/* 02980FF0 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 02980FF0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02980FF4 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 02980FF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02980FF8 */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 02980FF8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02980FFC */ cpu->lr = cpu->r[0];
|
|
/* 02981000 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981000 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02981004 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02981008 */ return;
|
|
}
|
|
|
|
// fn_02980F70 @ 0x2980f70
|
|
void Gambit_fn_02980F70(CPUState* cpu) {
|
|
uint32_t _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_02980F70: ; // 0x2980f70
|
|
/* 02980F70 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02980F70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02980F70 */ cpu->r[1] = _t0;
|
|
/* 02980F74 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02980F74 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02980F78 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02980F78 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02980F7C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02980F7C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02980F80 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02980F80 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02980F84 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 02980F84 */ cpu->r[12] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02980F88 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02980F88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02980F8C */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02980F8C */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02980F90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02980F94 */ cpu->r[29] = 0x00000000u;
|
|
/* 02980F98 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02980F98 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02980F98 */ if (_t9) goto L_02980FB4; else goto L_02980F9C;
|
|
L_02980F9C: ; // 0x2980f9c
|
|
/* 02980F9C */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 02980FA0 */ cpu->r[31] = cpu->r[30] + cpu->r[8];
|
|
/* 02980FA4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02980FA8 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02980FA8 */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 02980FAC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980FAC */ _t12 = _t11 & 0x00000001u;
|
|
/* 02980FAC */ if (_t12) goto L_02980FEC; else goto L_02980FB0;
|
|
L_02980FB0: ; // 0x2980fb0
|
|
/* 02980FB0 */ goto L_02980FC8;
|
|
L_02980FB4: ; // 0x2980fb4
|
|
/* 02980FB4 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02980FB8 */ cpu->r[31] = cpu->r[30] + cpu->r[10];
|
|
/* 02980FBC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02980FC0 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02980FC0 */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
/* 02980FC4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980FC4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02980FC4 */ if (_t15) goto L_02980FEC; else goto L_02980FC8;
|
|
L_02980FC8: ; // 0x2980fc8
|
|
/* 02980FC8 */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 02980FC8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02980FCC */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 02980FCC */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02980FD0 */ _t18 = cpu->r[11] + 0x00000034u;
|
|
/* 02980FD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02980FD4 */ cpu->ctr = cpu->r[0];
|
|
/* 02980FD8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02980FDC */ cpu->r[30] = cpu->r[30] + 0x0000001Cu;
|
|
/* 02980FE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02980FE4 */ cpu->r[29] = cpu->r[29] + cpu->r[3];
|
|
/* 02980FE8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02980FE8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02980FE8 */ if (_t20) goto L_02980FEC; else goto L_02980FC8;
|
|
L_02980FEC: ; // 0x2980fec
|
|
/* 02980FEC */ cpu->r[3] = cpu->r[29];
|
|
/* 02980FF0 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 02980FF0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02980FF4 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 02980FF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02980FF8 */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 02980FF8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02980FFC */ cpu->lr = cpu->r[0];
|
|
/* 02981000 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981000 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02981004 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02981008 */ return;
|
|
}
|
|
|
|
// fn_0298100C @ 0x298100c
|
|
void Gambit_fn_0298100C(CPUState* cpu) {
|
|
uint32_t _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_0298100C: ; // 0x298100c
|
|
/* 0298100C */ cpu->r[0] = cpu->lr;
|
|
/* 02981010 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981010 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981010 */ cpu->r[1] = _t0;
|
|
/* 02981014 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981014 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981018 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02981018 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298101C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298101C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981020 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02981020 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981024 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 02981024 */ cpu->r[11] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02981028 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02981028 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298102C */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 0298102C */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981030 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 02981034 */ cpu->r[30] = 0x00000000u;
|
|
/* 02981038 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981038 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981038 */ if (_t9) goto L_02981054; else goto L_0298103C;
|
|
L_0298103C: ; // 0x298103c
|
|
/* 0298103C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000001Cu);
|
|
/* 02981040 */ cpu->r[29] = cpu->r[31] + cpu->r[9];
|
|
/* 02981044 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981048 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981048 */ rbrew_write32(cpu->mem, _t10, cpu->r[29]);
|
|
/* 0298104C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298104C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298104C */ if (_t12) goto L_02981094; else goto L_02981050;
|
|
L_02981050: ; // 0x2981050
|
|
/* 02981050 */ goto L_02981068;
|
|
L_02981054: ; // 0x2981054
|
|
/* 02981054 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981058 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 0298105C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981060 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981060 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 02981064 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981064 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02981064 */ if (_t15) goto L_02981094; else goto L_02981068;
|
|
L_02981068: ; // 0x2981068
|
|
/* 02981068 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981068 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298106C */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 0298106C */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02981070 */ _t18 = cpu->r[12] + 0x00000034u;
|
|
/* 02981070 */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02981074 */ cpu->ctr = cpu->r[8];
|
|
/* 02981078 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298107C */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02981080 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], cpu->r[30]);
|
|
/* 02981084 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981084 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02981084 */ if (_t20) goto L_02981088; else goto L_0298108C;
|
|
L_02981088: ; // 0x2981088
|
|
/* 02981088 */ cpu->r[30] = cpu->r[3];
|
|
L_0298108C: ; // 0x298108c
|
|
/* 0298108C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981090 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981090 */ _t22 = _t21 & 0x00000001u;
|
|
/* 02981090 */ if (_t22) goto L_02981094; else goto L_02981068;
|
|
L_02981094: ; // 0x2981094
|
|
/* 02981094 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 02981094 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02981098 */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 02981098 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298109C */ cpu->r[3] = cpu->r[30];
|
|
/* 029810A0 */ _t25 = cpu->r[1] + 0x00000018u;
|
|
/* 029810A0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029810A4 */ cpu->lr = cpu->r[0];
|
|
/* 029810A8 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029810A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029810AC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029810B0 */ return;
|
|
}
|
|
|
|
// fn_02981010 @ 0x2981010
|
|
void Gambit_fn_02981010(CPUState* cpu) {
|
|
uint32_t _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_02981010: ; // 0x2981010
|
|
/* 02981010 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981010 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981010 */ cpu->r[1] = _t0;
|
|
/* 02981014 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981014 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981018 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02981018 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298101C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298101C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981020 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02981020 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981024 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 02981024 */ cpu->r[11] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02981028 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02981028 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298102C */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 0298102C */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981030 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 02981034 */ cpu->r[30] = 0x00000000u;
|
|
/* 02981038 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981038 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981038 */ if (_t9) goto L_02981054; else goto L_0298103C;
|
|
L_0298103C: ; // 0x298103c
|
|
/* 0298103C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000001Cu);
|
|
/* 02981040 */ cpu->r[29] = cpu->r[31] + cpu->r[9];
|
|
/* 02981044 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981048 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981048 */ rbrew_write32(cpu->mem, _t10, cpu->r[29]);
|
|
/* 0298104C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298104C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298104C */ if (_t12) goto L_02981094; else goto L_02981050;
|
|
L_02981050: ; // 0x2981050
|
|
/* 02981050 */ goto L_02981068;
|
|
L_02981054: ; // 0x2981054
|
|
/* 02981054 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981058 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 0298105C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981060 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981060 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 02981064 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981064 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02981064 */ if (_t15) goto L_02981094; else goto L_02981068;
|
|
L_02981068: ; // 0x2981068
|
|
/* 02981068 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981068 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298106C */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 0298106C */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02981070 */ _t18 = cpu->r[12] + 0x00000034u;
|
|
/* 02981070 */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02981074 */ cpu->ctr = cpu->r[8];
|
|
/* 02981078 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298107C */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02981080 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], cpu->r[30]);
|
|
/* 02981084 */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981084 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02981084 */ if (_t20) goto L_02981088; else goto L_0298108C;
|
|
L_02981088: ; // 0x2981088
|
|
/* 02981088 */ cpu->r[30] = cpu->r[3];
|
|
L_0298108C: ; // 0x298108c
|
|
/* 0298108C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981090 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981090 */ _t22 = _t21 & 0x00000001u;
|
|
/* 02981090 */ if (_t22) goto L_02981094; else goto L_02981068;
|
|
L_02981094: ; // 0x2981094
|
|
/* 02981094 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 02981094 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02981098 */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 02981098 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298109C */ cpu->r[3] = cpu->r[30];
|
|
/* 029810A0 */ _t25 = cpu->r[1] + 0x00000018u;
|
|
/* 029810A0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029810A4 */ cpu->lr = cpu->r[0];
|
|
/* 029810A8 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029810A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029810AC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029810B0 */ return;
|
|
}
|
|
|
|
// fn_029810B4 @ 0x29810b4
|
|
void Gambit_fn_029810B4(CPUState* cpu) {
|
|
uint32_t _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_029810B4: ; // 0x29810b4
|
|
/* 029810B4 */ cpu->r[0] = cpu->lr;
|
|
/* 029810B8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 029810B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029810B8 */ cpu->r[1] = _t0;
|
|
/* 029810BC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029810BC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029810C0 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 029810C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029810C4 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029810C4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029810C8 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 029810C8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029810CC */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 029810CC */ cpu->r[12] = rbrew_read16(cpu->mem, _t5);
|
|
/* 029810D0 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 029810D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029810D4 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 029810D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029810D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 029810DC */ cpu->r[29] = 0x00000000u;
|
|
/* 029810E0 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029810E0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029810E0 */ if (_t9) goto L_029810FC; else goto L_029810E4;
|
|
L_029810E4: ; // 0x29810e4
|
|
/* 029810E4 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 029810E8 */ cpu->r[31] = cpu->r[30] + cpu->r[8];
|
|
/* 029810EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 029810F0 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 029810F0 */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 029810F4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029810F4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029810F4 */ if (_t12) goto L_02981134; else goto L_029810F8;
|
|
L_029810F8: ; // 0x29810f8
|
|
/* 029810F8 */ goto L_02981110;
|
|
L_029810FC: ; // 0x29810fc
|
|
/* 029810FC */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981100 */ cpu->r[31] = cpu->r[30] + cpu->r[10];
|
|
/* 02981104 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02981108 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981108 */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
/* 0298110C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298110C */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298110C */ if (_t15) goto L_02981134; else goto L_02981110;
|
|
L_02981110: ; // 0x2981110
|
|
/* 02981110 */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 02981110 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02981114 */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 02981114 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02981118 */ _t18 = cpu->r[11] + 0x000000B4u;
|
|
/* 02981118 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298111C */ cpu->ctr = cpu->r[0];
|
|
/* 02981120 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02981124 */ cpu->r[30] = cpu->r[30] + 0x0000001Cu;
|
|
/* 02981128 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 0298112C */ cpu->r[29] = cpu->r[29] + cpu->r[3];
|
|
/* 02981130 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981130 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02981130 */ if (_t20) goto L_02981134; else goto L_02981110;
|
|
L_02981134: ; // 0x2981134
|
|
/* 02981134 */ cpu->r[3] = cpu->r[29];
|
|
/* 02981138 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 02981138 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298113C */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 0298113C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02981140 */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 02981140 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02981144 */ cpu->lr = cpu->r[0];
|
|
/* 02981148 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981148 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298114C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02981150 */ return;
|
|
}
|
|
|
|
// fn_029810B8 @ 0x29810b8
|
|
void Gambit_fn_029810B8(CPUState* cpu) {
|
|
uint32_t _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_029810B8: ; // 0x29810b8
|
|
/* 029810B8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 029810B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029810B8 */ cpu->r[1] = _t0;
|
|
/* 029810BC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029810BC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029810C0 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 029810C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029810C4 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029810C4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029810C8 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 029810C8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029810CC */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 029810CC */ cpu->r[12] = rbrew_read16(cpu->mem, _t5);
|
|
/* 029810D0 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 029810D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029810D4 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 029810D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029810D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 029810DC */ cpu->r[29] = 0x00000000u;
|
|
/* 029810E0 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029810E0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029810E0 */ if (_t9) goto L_029810FC; else goto L_029810E4;
|
|
L_029810E4: ; // 0x29810e4
|
|
/* 029810E4 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 029810E8 */ cpu->r[31] = cpu->r[30] + cpu->r[8];
|
|
/* 029810EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 029810F0 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 029810F0 */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 029810F4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029810F4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029810F4 */ if (_t12) goto L_02981134; else goto L_029810F8;
|
|
L_029810F8: ; // 0x29810f8
|
|
/* 029810F8 */ goto L_02981110;
|
|
L_029810FC: ; // 0x29810fc
|
|
/* 029810FC */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981100 */ cpu->r[31] = cpu->r[30] + cpu->r[10];
|
|
/* 02981104 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02981108 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981108 */ rbrew_write32(cpu->mem, _t13, cpu->r[31]);
|
|
/* 0298110C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298110C */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298110C */ if (_t15) goto L_02981134; else goto L_02981110;
|
|
L_02981110: ; // 0x2981110
|
|
/* 02981110 */ _t16 = cpu->r[30] + 0x00000000u;
|
|
/* 02981110 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02981114 */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 02981114 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02981118 */ _t18 = cpu->r[11] + 0x000000B4u;
|
|
/* 02981118 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298111C */ cpu->ctr = cpu->r[0];
|
|
/* 02981120 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02981124 */ cpu->r[30] = cpu->r[30] + 0x0000001Cu;
|
|
/* 02981128 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 0298112C */ cpu->r[29] = cpu->r[29] + cpu->r[3];
|
|
/* 02981130 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981130 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02981130 */ if (_t20) goto L_02981134; else goto L_02981110;
|
|
L_02981134: ; // 0x2981134
|
|
/* 02981134 */ cpu->r[3] = cpu->r[29];
|
|
/* 02981138 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 02981138 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298113C */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 0298113C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02981140 */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 02981140 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02981144 */ cpu->lr = cpu->r[0];
|
|
/* 02981148 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981148 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298114C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02981150 */ return;
|
|
}
|
|
|
|
// fn_02981154 @ 0x2981154
|
|
void Gambit_fn_02981154(CPUState* cpu) {
|
|
uint32_t _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_02981154: ; // 0x2981154
|
|
/* 02981154 */ cpu->r[0] = cpu->lr;
|
|
/* 02981158 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981158 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981158 */ cpu->r[1] = _t0;
|
|
/* 0298115C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 0298115C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981160 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02981160 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981164 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981164 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981168 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02981168 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298116C */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 0298116C */ cpu->r[11] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02981170 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02981170 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981174 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981174 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981178 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 0298117C */ cpu->r[30] = 0x00000000u;
|
|
/* 02981180 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981180 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981180 */ if (_t9) goto L_0298119C; else goto L_02981184;
|
|
L_02981184: ; // 0x2981184
|
|
/* 02981184 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000001Cu);
|
|
/* 02981188 */ cpu->r[29] = cpu->r[31] + cpu->r[9];
|
|
/* 0298118C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981190 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981190 */ rbrew_write32(cpu->mem, _t10, cpu->r[29]);
|
|
/* 02981194 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981194 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02981194 */ if (_t12) goto L_029811DC; else goto L_02981198;
|
|
L_02981198: ; // 0x2981198
|
|
/* 02981198 */ goto L_029811B0;
|
|
L_0298119C: ; // 0x298119c
|
|
/* 0298119C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029811A0 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 029811A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 029811A8 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 029811A8 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 029811AC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029811AC */ _t15 = _t14 & 0x00000001u;
|
|
/* 029811AC */ if (_t15) goto L_029811DC; else goto L_029811B0;
|
|
L_029811B0: ; // 0x29811b0
|
|
/* 029811B0 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 029811B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029811B4 */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 029811B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029811B8 */ _t18 = cpu->r[12] + 0x000000B4u;
|
|
/* 029811B8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 029811BC */ cpu->ctr = cpu->r[8];
|
|
/* 029811C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029811C4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029811C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], cpu->r[30]);
|
|
/* 029811CC */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029811CC */ _t20 = _t19 & 0x00000001u;
|
|
/* 029811CC */ if (_t20) goto L_029811D0; else goto L_029811D4;
|
|
L_029811D0: ; // 0x29811d0
|
|
/* 029811D0 */ cpu->r[30] = cpu->r[3];
|
|
L_029811D4: ; // 0x29811d4
|
|
/* 029811D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 029811D8 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029811D8 */ _t22 = _t21 & 0x00000001u;
|
|
/* 029811D8 */ if (_t22) goto L_029811DC; else goto L_029811B0;
|
|
L_029811DC: ; // 0x29811dc
|
|
/* 029811DC */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 029811DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029811E0 */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 029811E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029811E4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029811E8 */ _t25 = cpu->r[1] + 0x00000018u;
|
|
/* 029811E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029811EC */ cpu->lr = cpu->r[0];
|
|
/* 029811F0 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029811F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029811F4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029811F8 */ return;
|
|
}
|
|
|
|
// fn_02981158 @ 0x2981158
|
|
void Gambit_fn_02981158(CPUState* cpu) {
|
|
uint32_t _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_02981158: ; // 0x2981158
|
|
/* 02981158 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981158 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981158 */ cpu->r[1] = _t0;
|
|
/* 0298115C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 0298115C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981160 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02981160 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981164 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981164 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981168 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02981168 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298116C */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 0298116C */ cpu->r[11] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02981170 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02981170 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981174 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981174 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981178 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 0298117C */ cpu->r[30] = 0x00000000u;
|
|
/* 02981180 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981180 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981180 */ if (_t9) goto L_0298119C; else goto L_02981184;
|
|
L_02981184: ; // 0x2981184
|
|
/* 02981184 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000001Cu);
|
|
/* 02981188 */ cpu->r[29] = cpu->r[31] + cpu->r[9];
|
|
/* 0298118C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981190 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981190 */ rbrew_write32(cpu->mem, _t10, cpu->r[29]);
|
|
/* 02981194 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981194 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02981194 */ if (_t12) goto L_029811DC; else goto L_02981198;
|
|
L_02981198: ; // 0x2981198
|
|
/* 02981198 */ goto L_029811B0;
|
|
L_0298119C: ; // 0x298119c
|
|
/* 0298119C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029811A0 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 029811A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 029811A8 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 029811A8 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 029811AC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029811AC */ _t15 = _t14 & 0x00000001u;
|
|
/* 029811AC */ if (_t15) goto L_029811DC; else goto L_029811B0;
|
|
L_029811B0: ; // 0x29811b0
|
|
/* 029811B0 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 029811B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029811B4 */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 029811B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029811B8 */ _t18 = cpu->r[12] + 0x000000B4u;
|
|
/* 029811B8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t18);
|
|
/* 029811BC */ cpu->ctr = cpu->r[8];
|
|
/* 029811C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029811C4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029811C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], cpu->r[30]);
|
|
/* 029811CC */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029811CC */ _t20 = _t19 & 0x00000001u;
|
|
/* 029811CC */ if (_t20) goto L_029811D0; else goto L_029811D4;
|
|
L_029811D0: ; // 0x29811d0
|
|
/* 029811D0 */ cpu->r[30] = cpu->r[3];
|
|
L_029811D4: ; // 0x29811d4
|
|
/* 029811D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 029811D8 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029811D8 */ _t22 = _t21 & 0x00000001u;
|
|
/* 029811D8 */ if (_t22) goto L_029811DC; else goto L_029811B0;
|
|
L_029811DC: ; // 0x29811dc
|
|
/* 029811DC */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 029811DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029811E0 */ _t24 = cpu->r[1] + 0x00000024u;
|
|
/* 029811E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029811E4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029811E8 */ _t25 = cpu->r[1] + 0x00000018u;
|
|
/* 029811E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029811EC */ cpu->lr = cpu->r[0];
|
|
/* 029811F0 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029811F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029811F4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029811F8 */ return;
|
|
}
|
|
|
|
// fn_029811FC @ 0x29811fc
|
|
void Gambit_fn_029811FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_029811FC: ; // 0x29811fc
|
|
/* 029811FC */ cpu->r[0] = cpu->lr;
|
|
/* 02981200 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02981200 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981200 */ cpu->r[1] = _t0;
|
|
/* 02981204 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981204 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02981208 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298120C */ cpu->r[3] = cpu->r[4];
|
|
/* 02981210 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02981214 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02981214 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02981218 */ _t3 = cpu->r[31] + 0x0000007Cu;
|
|
/* 02981218 */ cpu->r[12] = rbrew_read8(cpu->mem, _t3);
|
|
/* 0298121C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298121C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298121C */ if (_t5) goto L_02981230; else goto L_02981220;
|
|
L_02981220: ; // 0x2981220
|
|
/* 02981220 */ cpu->r[12] = cpu->r[12] | 0x00000008u;
|
|
/* 02981224 */ _t6 = cpu->r[31] + 0x00000088u;
|
|
/* 02981224 */ rbrew_write32(cpu->mem, _t6, cpu->r[3]);
|
|
/* 02981228 */ _t7 = cpu->r[31] + 0x0000007Cu;
|
|
/* 02981228 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[12]);
|
|
/* 0298122C */ goto L_02981244;
|
|
L_02981230: ; // 0x2981230
|
|
/* 02981230 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 02981234 */ cpu->r[3] = cpu->r[31];
|
|
/* 02981238 */ _t8 = cpu->r[31] + 0x0000007Cu;
|
|
/* 02981238 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[0]);
|
|
/* 0298123C */ Gambit_fn_02980F6C(cpu);
|
|
/* 02981240 */ _t9 = cpu->r[31] + 0x00000088u;
|
|
/* 02981240 */ rbrew_write32(cpu->mem, _t9, cpu->r[3]);
|
|
L_02981244: ; // 0x2981244
|
|
/* 02981244 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 02981244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02981248 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981248 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298124C */ cpu->lr = cpu->r[0];
|
|
/* 02981250 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02981254 */ return;
|
|
}
|
|
|
|
// fn_02981200 @ 0x2981200
|
|
void Gambit_fn_02981200(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_02981200: ; // 0x2981200
|
|
/* 02981200 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02981200 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981200 */ cpu->r[1] = _t0;
|
|
/* 02981204 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981204 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02981208 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298120C */ cpu->r[3] = cpu->r[4];
|
|
/* 02981210 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02981214 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02981214 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02981218 */ _t3 = cpu->r[31] + 0x0000007Cu;
|
|
/* 02981218 */ cpu->r[12] = rbrew_read8(cpu->mem, _t3);
|
|
/* 0298121C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298121C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298121C */ if (_t5) goto L_02981230; else goto L_02981220;
|
|
L_02981220: ; // 0x2981220
|
|
/* 02981220 */ cpu->r[12] = cpu->r[12] | 0x00000008u;
|
|
/* 02981224 */ _t6 = cpu->r[31] + 0x00000088u;
|
|
/* 02981224 */ rbrew_write32(cpu->mem, _t6, cpu->r[3]);
|
|
/* 02981228 */ _t7 = cpu->r[31] + 0x0000007Cu;
|
|
/* 02981228 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[12]);
|
|
/* 0298122C */ goto L_02981244;
|
|
L_02981230: ; // 0x2981230
|
|
/* 02981230 */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Du, 0x0000001Bu);
|
|
/* 02981234 */ cpu->r[3] = cpu->r[31];
|
|
/* 02981238 */ _t8 = cpu->r[31] + 0x0000007Cu;
|
|
/* 02981238 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[0]);
|
|
/* 0298123C */ Gambit_fn_02980F6C(cpu);
|
|
/* 02981240 */ _t9 = cpu->r[31] + 0x00000088u;
|
|
/* 02981240 */ rbrew_write32(cpu->mem, _t9, cpu->r[3]);
|
|
L_02981244: ; // 0x2981244
|
|
/* 02981244 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 02981244 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02981248 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981248 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298124C */ cpu->lr = cpu->r[0];
|
|
/* 02981250 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02981254 */ return;
|
|
}
|
|
|
|
// fn_02981258 @ 0x2981258
|
|
void Gambit_fn_02981258(CPUState* cpu) {
|
|
uint32_t _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_02981258: ; // 0x2981258
|
|
/* 02981258 */ cpu->r[0] = cpu->lr;
|
|
/* 0298125C */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 0298125C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298125C */ cpu->r[1] = _t0;
|
|
/* 02981260 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 02981260 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 02981264 */ /* nop */
|
|
/* 02981268 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02981268 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 0298126C */ _t3 = cpu->r[1] + 0x00000028u;
|
|
/* 0298126C */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 02981270 */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 02981270 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 02981274 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981274 */ rbrew_write32(cpu->mem, _t5, cpu->r[31]);
|
|
/* 02981278 */ _t6 = cpu->r[1] + 0x00000034u;
|
|
/* 02981278 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298127C */ _t7 = cpu->r[4] + 0x00000000u;
|
|
/* 0298127C */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981280 */ /* nop */
|
|
/* 02981284 */ cpu->f[31] = cpu->f[1];
|
|
/* 02981288 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 0298128C */ cpu->r[29] = cpu->r[5];
|
|
/* 02981290 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981290 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981290 */ if (_t9) goto L_029812F4; else goto L_02981294;
|
|
L_02981294: ; // 0x2981294
|
|
/* 02981294 */ /* nop */
|
|
/* 02981298 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 0298129C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298129C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298129C */ if (_t11) goto L_029812F4; else goto L_029812A0;
|
|
L_029812A0: ; // 0x29812a0
|
|
/* 029812A0 */ _t12 = cpu->r[3] + 0x0000001Cu;
|
|
/* 029812A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029812A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 029812A8 */ cpu->r[9] = 0x00000000u;
|
|
/* 029812AC */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029812AC */ _t14 = _t13 & 0x00000001u;
|
|
/* 029812AC */ if (_t14) goto L_029812B0; else goto L_029812BC;
|
|
L_029812B0: ; // 0x29812b0
|
|
/* 029812B0 */ _t15 = cpu->r[3] + 0x00000024u;
|
|
/* 029812B0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t15);
|
|
/* 029812B4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029812B8 */ _t16 = cpu->r[12] + cpu->r[8];
|
|
/* 029812B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
L_029812BC: ; // 0x29812bc
|
|
/* 029812BC */ cpu->f[1] = cpu->f[31];
|
|
/* 029812C0 */ _t17 = cpu->r[9] + 0x00000000u;
|
|
/* 029812C0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029812C4 */ cpu->r[5] = cpu->r[29];
|
|
/* 029812C8 */ Gambit_fn_029DAE78(cpu);
|
|
/* 029812CC */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 029812CC */ cpu->r[29] = rbrew_read32(cpu->mem, _t18);
|
|
/* 029812D0 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 029812D0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 029812D4 */ _t20 = cpu->r[1] + 0x00000018u;
|
|
/* 029812D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029812D8 */ _t21 = cpu->r[1] + 0x00000020u;
|
|
/* 029812D8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t21);
|
|
/* 029812DC */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029812DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029812E0 */ _t23 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029812E0 */ _t24 = _t23 & 0x00000001u;
|
|
/* 029812E0 */ if (_t24) goto L_029812E4; // else: addr-0 trap, fall-through
|
|
L_029812E4: ; // 0x29812e4
|
|
/* 029812E4 */ _t25 = cpu->r[1] + 0x00000034u;
|
|
/* 029812E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029812E8 */ cpu->lr = cpu->r[0];
|
|
/* 029812EC */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 029812F0 */ return;
|
|
L_029812F4: ; // 0x29812f4
|
|
/* 029812F4 */ _t26 = cpu->r[3] + 0x00000014u;
|
|
/* 029812F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029812F8 */ _t27 = cpu->r[3] + 0x00000080u;
|
|
/* 029812F8 */ cpu->r[9] = rbrew_read16(cpu->mem, _t27);
|
|
/* 029812FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[11]);
|
|
/* 02981300 */ _t28 = cpu->r[3] + 0x00000018u;
|
|
/* 02981300 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02981304 */ _t29 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981304 */ _t30 = _t29 & 0x00000001u;
|
|
/* 02981304 */ if (_t30) goto L_02981320; else goto L_02981308;
|
|
L_02981308: ; // 0x2981308
|
|
/* 02981308 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000001Cu);
|
|
/* 0298130C */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981310 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981314 */ _t31 = cpu->r[1] + 0x00000008u;
|
|
/* 02981314 */ rbrew_write32(cpu->mem, _t31, cpu->r[30]);
|
|
/* 02981318 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981318 */ _t33 = _t32 & 0x00000001u;
|
|
/* 02981318 */ if (_t33) goto L_02981354; else goto L_0298131C;
|
|
L_0298131C: ; // 0x298131c
|
|
/* 0298131C */ goto L_02981334;
|
|
L_02981320: ; // 0x2981320
|
|
/* 02981320 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000001Cu);
|
|
/* 02981324 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 02981328 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298132C */ _t34 = cpu->r[1] + 0x00000008u;
|
|
/* 0298132C */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
/* 02981330 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981330 */ _t36 = _t35 & 0x00000001u;
|
|
/* 02981330 */ if (_t36) goto L_02981354; else goto L_02981334;
|
|
L_02981334: ; // 0x2981334
|
|
/* 02981334 */ _t37 = cpu->r[31] + 0x00000000u;
|
|
/* 02981334 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02981338 */ cpu->f[1] = cpu->f[31];
|
|
/* 0298133C */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 02981340 */ cpu->r[5] = cpu->r[29];
|
|
/* 02981344 */ Gambit_fn_029DAE78(cpu);
|
|
/* 02981348 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 0298134C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981350 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981350 */ _t39 = _t38 & 0x00000001u;
|
|
/* 02981350 */ if (_t39) goto L_02981354; else goto L_02981334;
|
|
L_02981354: ; // 0x2981354
|
|
/* 02981354 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 02981354 */ cpu->r[29] = rbrew_read32(cpu->mem, _t40);
|
|
/* 02981358 */ _t41 = cpu->r[1] + 0x00000028u;
|
|
/* 02981358 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 0298135C */ _t42 = cpu->r[1] + 0x00000018u;
|
|
/* 0298135C */ cpu->r[30] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02981360 */ _t43 = cpu->r[1] + 0x00000020u;
|
|
/* 02981360 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t43);
|
|
/* 02981364 */ _t44 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981364 */ cpu->r[31] = rbrew_read32(cpu->mem, _t44);
|
|
/* 02981368 */ _t45 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981368 */ _t46 = _t45 & 0x00000001u;
|
|
/* 02981368 */ if (_t46) goto L_0298136C; // else: addr-0 trap, fall-through
|
|
L_0298136C: ; // 0x298136c
|
|
/* 0298136C */ _t47 = cpu->r[1] + 0x00000034u;
|
|
/* 0298136C */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02981370 */ cpu->lr = cpu->r[0];
|
|
/* 02981374 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 02981378 */ return;
|
|
}
|
|
|
|
// fn_0298125C @ 0x298125c
|
|
void Gambit_fn_0298125C(CPUState* cpu) {
|
|
uint32_t _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_0298125C: ; // 0x298125c
|
|
/* 0298125C */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 0298125C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298125C */ cpu->r[1] = _t0;
|
|
/* 02981260 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 02981260 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 02981264 */ /* nop */
|
|
/* 02981268 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02981268 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 0298126C */ _t3 = cpu->r[1] + 0x00000028u;
|
|
/* 0298126C */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 02981270 */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 02981270 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 02981274 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981274 */ rbrew_write32(cpu->mem, _t5, cpu->r[31]);
|
|
/* 02981278 */ _t6 = cpu->r[1] + 0x00000034u;
|
|
/* 02981278 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298127C */ _t7 = cpu->r[4] + 0x00000000u;
|
|
/* 0298127C */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981280 */ /* nop */
|
|
/* 02981284 */ cpu->f[31] = cpu->f[1];
|
|
/* 02981288 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 0298128C */ cpu->r[29] = cpu->r[5];
|
|
/* 02981290 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981290 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981290 */ if (_t9) goto L_029812F4; else goto L_02981294;
|
|
L_02981294: ; // 0x2981294
|
|
/* 02981294 */ /* nop */
|
|
/* 02981298 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 0298129C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298129C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298129C */ if (_t11) goto L_029812F4; else goto L_029812A0;
|
|
L_029812A0: ; // 0x29812a0
|
|
/* 029812A0 */ _t12 = cpu->r[3] + 0x0000001Cu;
|
|
/* 029812A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029812A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 029812A8 */ cpu->r[9] = 0x00000000u;
|
|
/* 029812AC */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029812AC */ _t14 = _t13 & 0x00000001u;
|
|
/* 029812AC */ if (_t14) goto L_029812B0; else goto L_029812BC;
|
|
L_029812B0: ; // 0x29812b0
|
|
/* 029812B0 */ _t15 = cpu->r[3] + 0x00000024u;
|
|
/* 029812B0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t15);
|
|
/* 029812B4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029812B8 */ _t16 = cpu->r[12] + cpu->r[8];
|
|
/* 029812B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
L_029812BC: ; // 0x29812bc
|
|
/* 029812BC */ cpu->f[1] = cpu->f[31];
|
|
/* 029812C0 */ _t17 = cpu->r[9] + 0x00000000u;
|
|
/* 029812C0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029812C4 */ cpu->r[5] = cpu->r[29];
|
|
/* 029812C8 */ Gambit_fn_029DAE78(cpu);
|
|
/* 029812CC */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 029812CC */ cpu->r[29] = rbrew_read32(cpu->mem, _t18);
|
|
/* 029812D0 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 029812D0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 029812D4 */ _t20 = cpu->r[1] + 0x00000018u;
|
|
/* 029812D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029812D8 */ _t21 = cpu->r[1] + 0x00000020u;
|
|
/* 029812D8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t21);
|
|
/* 029812DC */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029812DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029812E0 */ _t23 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029812E0 */ _t24 = _t23 & 0x00000001u;
|
|
/* 029812E0 */ if (_t24) goto L_029812E4; // else: addr-0 trap, fall-through
|
|
L_029812E4: ; // 0x29812e4
|
|
/* 029812E4 */ _t25 = cpu->r[1] + 0x00000034u;
|
|
/* 029812E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029812E8 */ cpu->lr = cpu->r[0];
|
|
/* 029812EC */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 029812F0 */ return;
|
|
L_029812F4: ; // 0x29812f4
|
|
/* 029812F4 */ _t26 = cpu->r[3] + 0x00000014u;
|
|
/* 029812F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029812F8 */ _t27 = cpu->r[3] + 0x00000080u;
|
|
/* 029812F8 */ cpu->r[9] = rbrew_read16(cpu->mem, _t27);
|
|
/* 029812FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[11]);
|
|
/* 02981300 */ _t28 = cpu->r[3] + 0x00000018u;
|
|
/* 02981300 */ cpu->r[31] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02981304 */ _t29 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981304 */ _t30 = _t29 & 0x00000001u;
|
|
/* 02981304 */ if (_t30) goto L_02981320; else goto L_02981308;
|
|
L_02981308: ; // 0x2981308
|
|
/* 02981308 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000001Cu);
|
|
/* 0298130C */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981310 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981314 */ _t31 = cpu->r[1] + 0x00000008u;
|
|
/* 02981314 */ rbrew_write32(cpu->mem, _t31, cpu->r[30]);
|
|
/* 02981318 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981318 */ _t33 = _t32 & 0x00000001u;
|
|
/* 02981318 */ if (_t33) goto L_02981354; else goto L_0298131C;
|
|
L_0298131C: ; // 0x298131c
|
|
/* 0298131C */ goto L_02981334;
|
|
L_02981320: ; // 0x2981320
|
|
/* 02981320 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000001Cu);
|
|
/* 02981324 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 02981328 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298132C */ _t34 = cpu->r[1] + 0x00000008u;
|
|
/* 0298132C */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
/* 02981330 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981330 */ _t36 = _t35 & 0x00000001u;
|
|
/* 02981330 */ if (_t36) goto L_02981354; else goto L_02981334;
|
|
L_02981334: ; // 0x2981334
|
|
/* 02981334 */ _t37 = cpu->r[31] + 0x00000000u;
|
|
/* 02981334 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02981338 */ cpu->f[1] = cpu->f[31];
|
|
/* 0298133C */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 02981340 */ cpu->r[5] = cpu->r[29];
|
|
/* 02981344 */ Gambit_fn_029DAE78(cpu);
|
|
/* 02981348 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 0298134C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981350 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981350 */ _t39 = _t38 & 0x00000001u;
|
|
/* 02981350 */ if (_t39) goto L_02981354; else goto L_02981334;
|
|
L_02981354: ; // 0x2981354
|
|
/* 02981354 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 02981354 */ cpu->r[29] = rbrew_read32(cpu->mem, _t40);
|
|
/* 02981358 */ _t41 = cpu->r[1] + 0x00000028u;
|
|
/* 02981358 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 0298135C */ _t42 = cpu->r[1] + 0x00000018u;
|
|
/* 0298135C */ cpu->r[30] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02981360 */ _t43 = cpu->r[1] + 0x00000020u;
|
|
/* 02981360 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t43);
|
|
/* 02981364 */ _t44 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981364 */ cpu->r[31] = rbrew_read32(cpu->mem, _t44);
|
|
/* 02981368 */ _t45 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981368 */ _t46 = _t45 & 0x00000001u;
|
|
/* 02981368 */ if (_t46) goto L_0298136C; // else: addr-0 trap, fall-through
|
|
L_0298136C: ; // 0x298136c
|
|
/* 0298136C */ _t47 = cpu->r[1] + 0x00000034u;
|
|
/* 0298136C */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02981370 */ cpu->lr = cpu->r[0];
|
|
/* 02981374 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 02981378 */ return;
|
|
}
|
|
|
|
// fn_0298137C @ 0x298137c
|
|
void Gambit_fn_0298137C(CPUState* cpu) {
|
|
uint32_t _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_0298137C: ; // 0x298137c
|
|
/* 0298137C */ cpu->r[0] = cpu->lr;
|
|
/* 02981380 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981380 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981380 */ cpu->r[1] = _t0;
|
|
/* 02981384 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981384 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981388 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02981388 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298138C */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 0298138C */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 02981390 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981390 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02981394 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 02981394 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02981398 */ cpu->r[29] = cpu->r[5];
|
|
/* 0298139C */ _t6 = cpu->r[3] + 0x00000080u;
|
|
/* 0298139C */ cpu->r[0] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029813A0 */ _t7 = cpu->r[3] + 0x00000014u;
|
|
/* 029813A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029813A4 */ cpu->r[28] = cpu->r[4];
|
|
/* 029813A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 029813AC */ _t8 = cpu->r[3] + 0x00000018u;
|
|
/* 029813AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029813B0 */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029813B0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 029813B0 */ if (_t10) goto L_029813CC; else goto L_029813B4;
|
|
L_029813B4: ; // 0x29813b4
|
|
/* 029813B4 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029813B8 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 029813BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029813C0 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 029813C0 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 029813C4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029813C4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029813C4 */ if (_t13) goto L_02981400; else goto L_029813C8;
|
|
L_029813C8: ; // 0x29813c8
|
|
/* 029813C8 */ goto L_029813E0;
|
|
L_029813CC: ; // 0x29813cc
|
|
/* 029813CC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 029813D0 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 029813D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029813D8 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 029813D8 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 029813DC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029813DC */ _t16 = _t15 & 0x00000001u;
|
|
/* 029813DC */ if (_t16) goto L_02981400; else goto L_029813E0;
|
|
L_029813E0: ; // 0x29813e0
|
|
/* 029813E0 */ _t17 = cpu->r[31] + 0x00000000u;
|
|
/* 029813E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029813E4 */ cpu->r[4] = 0x00000000u;
|
|
/* 029813E8 */ cpu->r[6] = cpu->r[29];
|
|
/* 029813EC */ cpu->r[5] = cpu->r[28];
|
|
/* 029813F0 */ Gambit_fn_029DAC90(cpu);
|
|
/* 029813F4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029813F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029813FC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029813FC */ _t19 = _t18 & 0x00000001u;
|
|
/* 029813FC */ if (_t19) goto L_02981400; else goto L_029813E0;
|
|
L_02981400: ; // 0x2981400
|
|
/* 02981400 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 02981400 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02981404 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 02981404 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02981408 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 02981408 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298140C */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 0298140C */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02981410 */ cpu->lr = cpu->r[0];
|
|
/* 02981414 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981414 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02981418 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298141C */ return;
|
|
}
|
|
|
|
// fn_02981380 @ 0x2981380
|
|
void Gambit_fn_02981380(CPUState* cpu) {
|
|
uint32_t _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_02981380: ; // 0x2981380
|
|
/* 02981380 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981380 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981380 */ cpu->r[1] = _t0;
|
|
/* 02981384 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981384 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981388 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02981388 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298138C */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 0298138C */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 02981390 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981390 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02981394 */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 02981394 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02981398 */ cpu->r[29] = cpu->r[5];
|
|
/* 0298139C */ _t6 = cpu->r[3] + 0x00000080u;
|
|
/* 0298139C */ cpu->r[0] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029813A0 */ _t7 = cpu->r[3] + 0x00000014u;
|
|
/* 029813A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029813A4 */ cpu->r[28] = cpu->r[4];
|
|
/* 029813A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 029813AC */ _t8 = cpu->r[3] + 0x00000018u;
|
|
/* 029813AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029813B0 */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029813B0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 029813B0 */ if (_t10) goto L_029813CC; else goto L_029813B4;
|
|
L_029813B4: ; // 0x29813b4
|
|
/* 029813B4 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029813B8 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 029813BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029813C0 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 029813C0 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 029813C4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029813C4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029813C4 */ if (_t13) goto L_02981400; else goto L_029813C8;
|
|
L_029813C8: ; // 0x29813c8
|
|
/* 029813C8 */ goto L_029813E0;
|
|
L_029813CC: ; // 0x29813cc
|
|
/* 029813CC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 029813D0 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 029813D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029813D8 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 029813D8 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 029813DC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029813DC */ _t16 = _t15 & 0x00000001u;
|
|
/* 029813DC */ if (_t16) goto L_02981400; else goto L_029813E0;
|
|
L_029813E0: ; // 0x29813e0
|
|
/* 029813E0 */ _t17 = cpu->r[31] + 0x00000000u;
|
|
/* 029813E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029813E4 */ cpu->r[4] = 0x00000000u;
|
|
/* 029813E8 */ cpu->r[6] = cpu->r[29];
|
|
/* 029813EC */ cpu->r[5] = cpu->r[28];
|
|
/* 029813F0 */ Gambit_fn_029DAC90(cpu);
|
|
/* 029813F4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029813F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029813FC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029813FC */ _t19 = _t18 & 0x00000001u;
|
|
/* 029813FC */ if (_t19) goto L_02981400; else goto L_029813E0;
|
|
L_02981400: ; // 0x2981400
|
|
/* 02981400 */ _t20 = cpu->r[1] + 0x00000010u;
|
|
/* 02981400 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02981404 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 02981404 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02981408 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 02981408 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298140C */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 0298140C */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02981410 */ cpu->lr = cpu->r[0];
|
|
/* 02981414 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981414 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02981418 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298141C */ return;
|
|
}
|
|
|
|
// fn_02981420 @ 0x2981420
|
|
void Gambit_fn_02981420(CPUState* cpu) {
|
|
uint32_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_02981420: ; // 0x2981420
|
|
/* 02981420 */ cpu->r[0] = cpu->lr;
|
|
/* 02981424 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981424 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981424 */ cpu->r[1] = _t0;
|
|
/* 02981428 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981428 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298142C */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 0298142C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981430 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981430 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981434 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02981434 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981438 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298143C */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 0298143C */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02981440 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02981440 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981444 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02981448 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981448 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298144C */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298144C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298144C */ if (_t9) goto L_02981468; else goto L_02981450;
|
|
L_02981450: ; // 0x2981450
|
|
/* 02981450 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981454 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 02981458 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298145C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 0298145C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 02981460 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981460 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02981460 */ if (_t12) goto L_02981498; else goto L_02981464;
|
|
L_02981464: ; // 0x2981464
|
|
/* 02981464 */ goto L_0298147C;
|
|
L_02981468: ; // 0x2981468
|
|
/* 02981468 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 0298146C */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981470 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981474 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981474 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 02981478 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981478 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02981478 */ if (_t15) goto L_02981498; else goto L_0298147C;
|
|
L_0298147C: ; // 0x298147c
|
|
/* 0298147C */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 0298147C */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02981480 */ cpu->r[5] = cpu->r[29];
|
|
/* 02981484 */ cpu->r[4] = 0x00000000u;
|
|
/* 02981488 */ Gambit_fn_029DAD04(cpu);
|
|
/* 0298148C */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02981490 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981494 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981494 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02981494 */ if (_t18) goto L_02981498; else goto L_0298147C;
|
|
L_02981498: ; // 0x2981498
|
|
/* 02981498 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 02981498 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298149C */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 0298149C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029814A0 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 029814A0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029814A4 */ cpu->lr = cpu->r[0];
|
|
/* 029814A8 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029814A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029814AC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029814B0 */ return;
|
|
}
|
|
|
|
// fn_02981424 @ 0x2981424
|
|
void Gambit_fn_02981424(CPUState* cpu) {
|
|
uint32_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_02981424: ; // 0x2981424
|
|
/* 02981424 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981424 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981424 */ cpu->r[1] = _t0;
|
|
/* 02981428 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981428 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298142C */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 0298142C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981430 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981430 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981434 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02981434 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981438 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298143C */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 0298143C */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02981440 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02981440 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981444 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02981448 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981448 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298144C */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298144C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298144C */ if (_t9) goto L_02981468; else goto L_02981450;
|
|
L_02981450: ; // 0x2981450
|
|
/* 02981450 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981454 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 02981458 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298145C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 0298145C */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 02981460 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981460 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02981460 */ if (_t12) goto L_02981498; else goto L_02981464;
|
|
L_02981464: ; // 0x2981464
|
|
/* 02981464 */ goto L_0298147C;
|
|
L_02981468: ; // 0x2981468
|
|
/* 02981468 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 0298146C */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981470 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981474 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981474 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 02981478 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981478 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02981478 */ if (_t15) goto L_02981498; else goto L_0298147C;
|
|
L_0298147C: ; // 0x298147c
|
|
/* 0298147C */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 0298147C */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02981480 */ cpu->r[5] = cpu->r[29];
|
|
/* 02981484 */ cpu->r[4] = 0x00000000u;
|
|
/* 02981488 */ Gambit_fn_029DAD04(cpu);
|
|
/* 0298148C */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02981490 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981494 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981494 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02981494 */ if (_t18) goto L_02981498; else goto L_0298147C;
|
|
L_02981498: ; // 0x2981498
|
|
/* 02981498 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 02981498 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298149C */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 0298149C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029814A0 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 029814A0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029814A4 */ cpu->lr = cpu->r[0];
|
|
/* 029814A8 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029814A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029814AC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029814B0 */ return;
|
|
}
|
|
|
|
// fn_029814B4 @ 0x29814b4
|
|
void Gambit_fn_029814B4(CPUState* cpu) {
|
|
uint32_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_029814B4: ; // 0x29814b4
|
|
/* 029814B4 */ cpu->r[0] = cpu->lr;
|
|
/* 029814B8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 029814B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029814B8 */ cpu->r[1] = _t0;
|
|
/* 029814BC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029814BC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029814C0 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 029814C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029814C4 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029814C4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029814C8 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 029814C8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029814CC */ cpu->r[29] = cpu->r[4];
|
|
/* 029814D0 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 029814D0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 029814D4 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 029814D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029814D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 029814DC */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 029814DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029814E0 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029814E0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029814E0 */ if (_t9) goto L_029814FC; else goto L_029814E4;
|
|
L_029814E4: ; // 0x29814e4
|
|
/* 029814E4 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029814E8 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 029814EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029814F0 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 029814F0 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 029814F4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029814F4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029814F4 */ if (_t12) goto L_0298152C; else goto L_029814F8;
|
|
L_029814F8: ; // 0x29814f8
|
|
/* 029814F8 */ goto L_02981510;
|
|
L_029814FC: ; // 0x29814fc
|
|
/* 029814FC */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 02981500 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981504 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981508 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981508 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 0298150C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298150C */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298150C */ if (_t15) goto L_0298152C; else goto L_02981510;
|
|
L_02981510: ; // 0x2981510
|
|
/* 02981510 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981510 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02981514 */ cpu->r[5] = cpu->r[29];
|
|
/* 02981518 */ cpu->r[4] = 0x00000008u;
|
|
/* 0298151C */ Gambit_fn_029DA9F0(cpu);
|
|
/* 02981520 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02981524 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981528 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981528 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02981528 */ if (_t18) goto L_0298152C; else goto L_02981510;
|
|
L_0298152C: ; // 0x298152c
|
|
/* 0298152C */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 0298152C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02981530 */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 02981530 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02981534 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 02981534 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02981538 */ cpu->lr = cpu->r[0];
|
|
/* 0298153C */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298153C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02981540 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02981544 */ return;
|
|
}
|
|
|
|
// fn_029814B8 @ 0x29814b8
|
|
void Gambit_fn_029814B8(CPUState* cpu) {
|
|
uint32_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_029814B8: ; // 0x29814b8
|
|
/* 029814B8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 029814B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029814B8 */ cpu->r[1] = _t0;
|
|
/* 029814BC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029814BC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029814C0 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 029814C0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029814C4 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029814C4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029814C8 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 029814C8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029814CC */ cpu->r[29] = cpu->r[4];
|
|
/* 029814D0 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 029814D0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 029814D4 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 029814D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029814D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 029814DC */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 029814DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029814E0 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029814E0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029814E0 */ if (_t9) goto L_029814FC; else goto L_029814E4;
|
|
L_029814E4: ; // 0x29814e4
|
|
/* 029814E4 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029814E8 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 029814EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029814F0 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 029814F0 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 029814F4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029814F4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029814F4 */ if (_t12) goto L_0298152C; else goto L_029814F8;
|
|
L_029814F8: ; // 0x29814f8
|
|
/* 029814F8 */ goto L_02981510;
|
|
L_029814FC: ; // 0x29814fc
|
|
/* 029814FC */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 02981500 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981504 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981508 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981508 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 0298150C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298150C */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298150C */ if (_t15) goto L_0298152C; else goto L_02981510;
|
|
L_02981510: ; // 0x2981510
|
|
/* 02981510 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981510 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02981514 */ cpu->r[5] = cpu->r[29];
|
|
/* 02981518 */ cpu->r[4] = 0x00000008u;
|
|
/* 0298151C */ Gambit_fn_029DA9F0(cpu);
|
|
/* 02981520 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02981524 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981528 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981528 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02981528 */ if (_t18) goto L_0298152C; else goto L_02981510;
|
|
L_0298152C: ; // 0x298152c
|
|
/* 0298152C */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 0298152C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02981530 */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 02981530 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02981534 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 02981534 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02981538 */ cpu->lr = cpu->r[0];
|
|
/* 0298153C */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298153C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02981540 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02981544 */ return;
|
|
}
|
|
|
|
// fn_02981548 @ 0x2981548
|
|
void Gambit_fn_02981548(CPUState* cpu) {
|
|
uint32_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_02981548: ; // 0x2981548
|
|
/* 02981548 */ cpu->r[0] = cpu->lr;
|
|
/* 0298154C */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298154C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298154C */ cpu->r[1] = _t0;
|
|
/* 02981550 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981550 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981554 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02981554 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981558 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981558 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298155C */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 0298155C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981560 */ cpu->r[29] = cpu->r[4];
|
|
/* 02981564 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 02981564 */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02981568 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02981568 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298156C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02981570 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981570 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981574 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981574 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981574 */ if (_t9) goto L_02981590; else goto L_02981578;
|
|
L_02981578: ; // 0x2981578
|
|
/* 02981578 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 0298157C */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 02981580 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981584 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981584 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 02981588 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981588 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02981588 */ if (_t12) goto L_029815C0; else goto L_0298158C;
|
|
L_0298158C: ; // 0x298158c
|
|
/* 0298158C */ goto L_029815A4;
|
|
L_02981590: ; // 0x2981590
|
|
/* 02981590 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 02981594 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981598 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298159C */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 0298159C */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 029815A0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029815A0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 029815A0 */ if (_t15) goto L_029815C0; else goto L_029815A4;
|
|
L_029815A4: ; // 0x29815a4
|
|
/* 029815A4 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 029815A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029815A8 */ cpu->r[5] = cpu->r[29];
|
|
/* 029815AC */ cpu->r[4] = 0x00000006u;
|
|
/* 029815B0 */ Gambit_fn_029DA9F0(cpu);
|
|
/* 029815B4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029815B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029815BC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029815BC */ _t18 = _t17 & 0x00000001u;
|
|
/* 029815BC */ if (_t18) goto L_029815C0; else goto L_029815A4;
|
|
L_029815C0: ; // 0x29815c0
|
|
/* 029815C0 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 029815C0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029815C4 */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 029815C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029815C8 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 029815C8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029815CC */ cpu->lr = cpu->r[0];
|
|
/* 029815D0 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029815D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029815D4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029815D8 */ return;
|
|
}
|
|
|
|
// fn_0298154C @ 0x298154c
|
|
void Gambit_fn_0298154C(CPUState* cpu) {
|
|
uint32_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_0298154C: ; // 0x298154c
|
|
/* 0298154C */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298154C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298154C */ cpu->r[1] = _t0;
|
|
/* 02981550 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981550 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981554 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02981554 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981558 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981558 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298155C */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 0298155C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981560 */ cpu->r[29] = cpu->r[4];
|
|
/* 02981564 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 02981564 */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 02981568 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 02981568 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298156C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02981570 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981570 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981574 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981574 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981574 */ if (_t9) goto L_02981590; else goto L_02981578;
|
|
L_02981578: ; // 0x2981578
|
|
/* 02981578 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 0298157C */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 02981580 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981584 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981584 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 02981588 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981588 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02981588 */ if (_t12) goto L_029815C0; else goto L_0298158C;
|
|
L_0298158C: ; // 0x298158c
|
|
/* 0298158C */ goto L_029815A4;
|
|
L_02981590: ; // 0x2981590
|
|
/* 02981590 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 02981594 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981598 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298159C */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 0298159C */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 029815A0 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029815A0 */ _t15 = _t14 & 0x00000001u;
|
|
/* 029815A0 */ if (_t15) goto L_029815C0; else goto L_029815A4;
|
|
L_029815A4: ; // 0x29815a4
|
|
/* 029815A4 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 029815A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029815A8 */ cpu->r[5] = cpu->r[29];
|
|
/* 029815AC */ cpu->r[4] = 0x00000006u;
|
|
/* 029815B0 */ Gambit_fn_029DA9F0(cpu);
|
|
/* 029815B4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029815B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029815BC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029815BC */ _t18 = _t17 & 0x00000001u;
|
|
/* 029815BC */ if (_t18) goto L_029815C0; else goto L_029815A4;
|
|
L_029815C0: ; // 0x29815c0
|
|
/* 029815C0 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 029815C0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029815C4 */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 029815C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029815C8 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 029815C8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029815CC */ cpu->lr = cpu->r[0];
|
|
/* 029815D0 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029815D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029815D4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029815D8 */ return;
|
|
}
|
|
|
|
// fn_029815DC @ 0x29815dc
|
|
void Gambit_fn_029815DC(CPUState* cpu) {
|
|
uint32_t _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_029815DC: ; // 0x29815dc
|
|
/* 029815DC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029815DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029815DC */ cpu->r[1] = _t0;
|
|
/* 029815E0 */ _t1 = cpu->r[3] + 0x00000080u;
|
|
/* 029815E0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t1);
|
|
/* 029815E4 */ _t2 = cpu->r[3] + 0x00000014u;
|
|
/* 029815E4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 029815E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 029815EC */ _t3 = cpu->r[3] + 0x00000018u;
|
|
/* 029815EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029815F0 */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029815F0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029815F0 */ if (_t5) goto L_0298160C; else goto L_029815F4;
|
|
L_029815F4: ; // 0x29815f4
|
|
/* 029815F4 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029815F8 */ cpu->r[0] = cpu->r[12] + cpu->r[11];
|
|
/* 029815FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02981600 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 02981600 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 02981604 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981604 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02981604 */ if (_t8) goto L_02981670; else goto L_02981608;
|
|
L_02981608: ; // 0x2981608
|
|
/* 02981608 */ goto L_02981620;
|
|
L_0298160C: ; // 0x298160c
|
|
/* 0298160C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000001Cu);
|
|
/* 02981610 */ cpu->r[0] = cpu->r[12] + cpu->r[0];
|
|
/* 02981614 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02981618 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 02981618 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 0298161C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298161C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298161C */ if (_t11) goto L_02981670; else goto L_02981620;
|
|
L_02981620: ; // 0x2981620
|
|
/* 02981620 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02981624 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981624 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02981624 */ if (_t13) goto L_02981628; else goto L_02981654;
|
|
L_02981628: ; // 0x2981628
|
|
/* 02981628 */ cpu->r[4] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 0298162C */ _t14 = cpu->r[4] | cpu->r[4];
|
|
/* 0298162C */ cpu->r[10] = ~_t14;
|
|
L_02981630: ; // 0x2981630
|
|
/* 02981630 */ _t15 = cpu->r[12] + 0x00000000u;
|
|
/* 02981630 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02981634 */ _t16 = cpu->r[9] + 0x0000000Eu;
|
|
/* 02981634 */ cpu->r[7] = rbrew_read16(cpu->mem, _t16);
|
|
/* 02981638 */ cpu->r[12] = cpu->r[12] + 0x0000001Cu;
|
|
/* 0298163C */ cpu->r[7] = cpu->r[7] & cpu->r[10];
|
|
/* 02981640 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02981644 */ _t17 = cpu->r[9] + 0x0000000Eu;
|
|
/* 02981644 */ rbrew_write16(cpu->mem, _t17, (uint16_t)cpu->r[7]);
|
|
/* 02981648 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981648 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02981648 */ if (_t19) goto L_0298164C; else goto L_02981630;
|
|
L_0298164C: ; // 0x298164c
|
|
/* 0298164C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02981650 */ return;
|
|
L_02981654: ; // 0x2981654
|
|
/* 02981654 */ _t20 = cpu->r[12] + 0x00000000u;
|
|
/* 02981654 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02981658 */ _t21 = cpu->r[9] + 0x0000000Eu;
|
|
/* 02981658 */ cpu->r[10] = rbrew_read16(cpu->mem, _t21);
|
|
/* 0298165C */ cpu->r[12] = cpu->r[12] + 0x0000001Cu;
|
|
/* 02981660 */ cpu->r[10] = cpu->r[10] | cpu->r[4];
|
|
/* 02981664 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02981668 */ _t22 = cpu->r[9] + 0x0000000Eu;
|
|
/* 02981668 */ rbrew_write16(cpu->mem, _t22, (uint16_t)cpu->r[10]);
|
|
/* 0298166C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298166C */ _t24 = _t23 & 0x00000001u;
|
|
/* 0298166C */ if (_t24) goto L_02981670; else goto L_02981654;
|
|
L_02981670: ; // 0x2981670
|
|
/* 02981670 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02981674 */ return;
|
|
}
|
|
|
|
// fn_02981678 @ 0x2981678
|
|
void Gambit_fn_02981678(CPUState* cpu) {
|
|
uint32_t _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_02981678: ; // 0x2981678
|
|
/* 02981678 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 02981678 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981678 */ cpu->r[1] = _t0;
|
|
/* 0298167C */ /* nop */
|
|
/* 02981680 */ cpu->r[0] = cpu->lr;
|
|
/* 02981684 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02981684 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02981688 */ _t2 = cpu->r[3] + 0x00000080u;
|
|
/* 02981688 */ cpu->r[9] = rbrew_read16(cpu->mem, _t2);
|
|
/* 0298168C */ _t3 = cpu->r[3] + 0x00000014u;
|
|
/* 0298168C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02981690 */ cpu->r[27] = cpu->r[5];
|
|
/* 02981694 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[0]);
|
|
/* 02981698 */ _t4 = cpu->r[3] + 0x00000018u;
|
|
/* 02981698 */ cpu->r[30] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298169C */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298169C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298169C */ if (_t6) goto L_029816B8; else goto L_029816A0;
|
|
L_029816A0: ; // 0x29816a0
|
|
/* 029816A0 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000001Cu);
|
|
/* 029816A4 */ cpu->r[31] = cpu->r[30] + cpu->r[11];
|
|
/* 029816A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 029816AC */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 029816AC */ rbrew_write32(cpu->mem, _t7, cpu->r[31]);
|
|
/* 029816B0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029816B0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029816B0 */ if (_t9) goto L_029817C8; else goto L_029816B4;
|
|
L_029816B4: ; // 0x29816b4
|
|
/* 029816B4 */ goto L_029816CC;
|
|
L_029816B8: ; // 0x29816b8
|
|
/* 029816B8 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029816BC */ cpu->r[31] = cpu->r[30] + cpu->r[12];
|
|
/* 029816C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 029816C4 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 029816C4 */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 029816C8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029816C8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029816C8 */ if (_t12) goto L_029817C8; else goto L_029816CC;
|
|
L_029816CC: ; // 0x29816cc
|
|
/* 029816CC */ cpu->r[6] = 0x00000001u;
|
|
/* 029816D0 */ cpu->r[0] = cpu->r[4] + 0x00000008u;
|
|
/* 029816D4 */ /* nop */
|
|
/* 029816D8 */ cpu->r[29] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
L_029816DC: ; // 0x29816dc
|
|
/* 029816DC */ _t13 = cpu->r[30] + 0x00000000u;
|
|
/* 029816DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029816E0 */ _t14 = cpu->r[3] + 0x00000088u;
|
|
/* 029816E0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029816E4 */ _t15 = cpu->r[7] + 0x000000B4u;
|
|
/* 029816E4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 029816E8 */ cpu->ctr = cpu->r[10];
|
|
/* 029816EC */ cpu->r[28] = 0x00000000u;
|
|
/* 029816F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029816F4 */ cpu->r[23] = cpu->r[3];
|
|
/* 029816F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 029816F8 */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029816F8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 029816F8 */ if (_t17) goto L_029816FC; else goto L_029817BC;
|
|
L_029816FC: ; // 0x29816fc
|
|
/* 029816FC */ _t18 = cpu->r[29] | cpu->r[29];
|
|
/* 029816FC */ cpu->r[25] = ~_t18;
|
|
/* 02981700 */ cpu->r[24] = 0x00000000u;
|
|
L_02981704: ; // 0x2981704
|
|
/* 02981704 */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 02981704 */ cpu->r[26] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02981708 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298170C */ cpu->r[3] = cpu->r[26];
|
|
/* 02981710 */ Gambit_fn_029DA9EC(cpu);
|
|
/* 02981714 */ _t20 = cpu->r[26] + 0x00000040u;
|
|
/* 02981714 */ cpu->r[8] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02981718 */ cpu->r[7] = cpu->r[8] + cpu->r[24];
|
|
/* 0298171C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 02981720 */ _t21 = cpu->r[7] + 0x00000006u;
|
|
/* 02981720 */ cpu->r[0] = rbrew_read16(cpu->mem, _t21);
|
|
/* 02981724 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981724 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02981724 */ if (_t23) goto L_02981774; else goto L_02981728;
|
|
L_02981728: ; // 0x2981728
|
|
/* 02981728 */ cpu->r[0] = cpu->r[0] | cpu->r[29];
|
|
/* 0298172C */ _t24 = cpu->r[7] + 0x00000006u;
|
|
/* 0298172C */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[0]);
|
|
/* 02981730 */ _t25 = cpu->r[26] + 0x00000000u;
|
|
/* 02981730 */ cpu->r[12] = rbrew_read8(cpu->mem, _t25);
|
|
/* 02981734 */ cpu->r[3] = cpu->r[26];
|
|
/* 02981738 */ cpu->r[12] = cpu->r[12] | 0x00000004u;
|
|
/* 0298173C */ cpu->r[4] = cpu->r[28];
|
|
/* 02981740 */ _t26 = cpu->r[26] + 0x00000000u;
|
|
/* 02981740 */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[12]);
|
|
/* 02981744 */ Gambit_fn_029DA9EC(cpu);
|
|
/* 02981748 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0x0000000Cu);
|
|
/* 0298174C */ _t27 = cpu->r[26] + 0x00000040u;
|
|
/* 0298174C */ cpu->r[4] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02981750 */ cpu->r[10] = cpu->r[4] + cpu->r[0];
|
|
/* 02981754 */ _t28 = cpu->r[10] + 0x00000006u;
|
|
/* 02981754 */ cpu->r[0] = rbrew_read16(cpu->mem, _t28);
|
|
/* 02981758 */ cpu->r[23] = cpu->r[23] + 0xFFFFFFFFu;
|
|
/* 02981758 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 0298175C */ cpu->r[24] = cpu->r[24] + 0x0000000Cu;
|
|
/* 02981760 */ cpu->r[0] = cpu->r[0] | 0x00000004u;
|
|
/* 02981764 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 02981768 */ _t29 = cpu->r[10] + 0x00000006u;
|
|
/* 02981768 */ rbrew_write16(cpu->mem, _t29, (uint16_t)cpu->r[0]);
|
|
/* 0298176C */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298176C */ _t31 = _t30 & 0x00000001u;
|
|
/* 0298176C */ if (_t31) goto L_02981770; else goto L_02981704;
|
|
L_02981770: ; // 0x2981770
|
|
/* 02981770 */ goto L_029817BC;
|
|
L_02981774: ; // 0x2981774
|
|
/* 02981774 */ cpu->r[0] = cpu->r[0] & cpu->r[25];
|
|
/* 02981778 */ _t32 = cpu->r[7] + 0x00000006u;
|
|
/* 02981778 */ rbrew_write16(cpu->mem, _t32, (uint16_t)cpu->r[0]);
|
|
/* 0298177C */ _t33 = cpu->r[26] + 0x00000000u;
|
|
/* 0298177C */ cpu->r[12] = rbrew_read8(cpu->mem, _t33);
|
|
/* 02981780 */ cpu->r[3] = cpu->r[26];
|
|
/* 02981784 */ cpu->r[12] = cpu->r[12] | 0x00000004u;
|
|
/* 02981788 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298178C */ _t34 = cpu->r[26] + 0x00000000u;
|
|
/* 0298178C */ rbrew_write8(cpu->mem, _t34, (uint8_t)cpu->r[12]);
|
|
/* 02981790 */ Gambit_fn_029DA9EC(cpu);
|
|
/* 02981794 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0x0000000Cu);
|
|
/* 02981798 */ _t35 = cpu->r[26] + 0x00000040u;
|
|
/* 02981798 */ cpu->r[4] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298179C */ cpu->r[10] = cpu->r[4] + cpu->r[0];
|
|
/* 029817A0 */ _t36 = cpu->r[10] + 0x00000006u;
|
|
/* 029817A0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t36);
|
|
/* 029817A4 */ cpu->r[23] = cpu->r[23] + 0xFFFFFFFFu;
|
|
/* 029817A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 029817A8 */ cpu->r[24] = cpu->r[24] + 0x0000000Cu;
|
|
/* 029817AC */ cpu->r[0] = cpu->r[0] | 0x00000004u;
|
|
/* 029817B0 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 029817B4 */ _t37 = cpu->r[10] + 0x00000006u;
|
|
/* 029817B4 */ rbrew_write16(cpu->mem, _t37, (uint16_t)cpu->r[0]);
|
|
/* 029817B8 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029817B8 */ _t39 = _t38 & 0x00000001u;
|
|
/* 029817B8 */ if (_t39) goto L_029817BC; else goto L_02981704;
|
|
L_029817BC: ; // 0x29817bc
|
|
/* 029817BC */ cpu->r[30] = cpu->r[30] + 0x0000001Cu;
|
|
/* 029817C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 029817C4 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029817C4 */ _t41 = _t40 & 0x00000001u;
|
|
/* 029817C4 */ if (_t41) goto L_029817C8; else goto L_029816DC;
|
|
L_029817C8: ; // 0x29817c8
|
|
/* 029817C8 */ /* nop */
|
|
/* 029817CC */ _t42 = cpu->r[1] + 0x0000003Cu;
|
|
/* 029817CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 029817D0 */ cpu->lr = cpu->r[0];
|
|
/* 029817D4 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 029817D8 */ return;
|
|
}
|
|
|
|
// fn_029817DC @ 0x29817dc
|
|
void Gambit_fn_029817DC(CPUState* cpu) {
|
|
uint32_t _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_029817DC: ; // 0x29817dc
|
|
/* 029817DC */ cpu->r[0] = cpu->lr;
|
|
/* 029817E0 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 029817E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029817E0 */ cpu->r[1] = _t0;
|
|
/* 029817E4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029817E4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029817E8 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 029817E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029817EC */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029817EC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029817F0 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 029817F0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029817F4 */ cpu->r[29] = cpu->r[4];
|
|
/* 029817F8 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 029817F8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 029817FC */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 029817FC */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981800 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 02981804 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981804 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981808 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981808 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981808 */ if (_t9) goto L_02981824; else goto L_0298180C;
|
|
L_0298180C: ; // 0x298180c
|
|
/* 0298180C */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981810 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981814 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981818 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981818 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 0298181C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298181C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298181C */ if (_t12) goto L_02981860; else goto L_02981820;
|
|
L_02981820: ; // 0x2981820
|
|
/* 02981820 */ goto L_02981838;
|
|
L_02981824: ; // 0x2981824
|
|
/* 02981824 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000001Cu);
|
|
/* 02981828 */ cpu->r[30] = cpu->r[31] + cpu->r[11];
|
|
/* 0298182C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981830 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981830 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 02981834 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981834 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02981834 */ if (_t15) goto L_02981860; else goto L_02981838;
|
|
L_02981838: ; // 0x2981838
|
|
/* 02981838 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981838 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298183C */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 0298183C */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02981840 */ _t18 = cpu->r[12] + 0x0000020Cu;
|
|
/* 02981840 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02981844 */ cpu->ctr = cpu->r[0];
|
|
/* 02981848 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298184C */ cpu->r[4] = 0x00000000u;
|
|
/* 02981850 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02981854 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02981858 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298185C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298185C */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298185C */ if (_t20) goto L_02981860; else goto L_02981838;
|
|
L_02981860: ; // 0x2981860
|
|
/* 02981860 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 02981860 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02981864 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 02981864 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02981868 */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 02981868 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298186C */ cpu->lr = cpu->r[0];
|
|
/* 02981870 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981870 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02981874 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02981878 */ return;
|
|
}
|
|
|
|
// fn_029817E0 @ 0x29817e0
|
|
void Gambit_fn_029817E0(CPUState* cpu) {
|
|
uint32_t _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_029817E0: ; // 0x29817e0
|
|
/* 029817E0 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 029817E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029817E0 */ cpu->r[1] = _t0;
|
|
/* 029817E4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029817E4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029817E8 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 029817E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029817EC */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029817EC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029817F0 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 029817F0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029817F4 */ cpu->r[29] = cpu->r[4];
|
|
/* 029817F8 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 029817F8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 029817FC */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 029817FC */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981800 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 02981804 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981804 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981808 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981808 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981808 */ if (_t9) goto L_02981824; else goto L_0298180C;
|
|
L_0298180C: ; // 0x298180c
|
|
/* 0298180C */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981810 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 02981814 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981818 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981818 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 0298181C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298181C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298181C */ if (_t12) goto L_02981860; else goto L_02981820;
|
|
L_02981820: ; // 0x2981820
|
|
/* 02981820 */ goto L_02981838;
|
|
L_02981824: ; // 0x2981824
|
|
/* 02981824 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000001Cu);
|
|
/* 02981828 */ cpu->r[30] = cpu->r[31] + cpu->r[11];
|
|
/* 0298182C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981830 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981830 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 02981834 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981834 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02981834 */ if (_t15) goto L_02981860; else goto L_02981838;
|
|
L_02981838: ; // 0x2981838
|
|
/* 02981838 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981838 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298183C */ _t17 = cpu->r[3] + 0x00000088u;
|
|
/* 0298183C */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02981840 */ _t18 = cpu->r[12] + 0x0000020Cu;
|
|
/* 02981840 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02981844 */ cpu->ctr = cpu->r[0];
|
|
/* 02981848 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298184C */ cpu->r[4] = 0x00000000u;
|
|
/* 02981850 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02981854 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02981858 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298185C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298185C */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298185C */ if (_t20) goto L_02981860; else goto L_02981838;
|
|
L_02981860: ; // 0x2981860
|
|
/* 02981860 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 02981860 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02981864 */ _t22 = cpu->r[1] + 0x00000024u;
|
|
/* 02981864 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02981868 */ _t23 = cpu->r[1] + 0x00000018u;
|
|
/* 02981868 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298186C */ cpu->lr = cpu->r[0];
|
|
/* 02981870 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981870 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02981874 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02981878 */ return;
|
|
}
|
|
|
|
// fn_0298187C @ 0x298187c
|
|
void Gambit_fn_0298187C(CPUState* cpu) {
|
|
uint32_t _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_0298187C: ; // 0x298187c
|
|
/* 0298187C */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 0298187C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298187C */ cpu->r[1] = _t0;
|
|
/* 02981880 */ cpu->r[0] = cpu->lr;
|
|
/* 02981884 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 02981884 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 02981888 */ /* nop */
|
|
/* 0298188C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298188C */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 02981890 */ _t3 = cpu->r[1] + 0x00000028u;
|
|
/* 02981890 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 02981894 */ _t4 = cpu->r[1] + 0x00000018u;
|
|
/* 02981894 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 02981898 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 02981898 */ rbrew_write32(cpu->mem, _t5, cpu->r[29]);
|
|
/* 0298189C */ _t6 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298189C */ rbrew_write32(cpu->mem, _t6, cpu->r[31]);
|
|
/* 029818A0 */ _t7 = cpu->r[1] + 0x00000034u;
|
|
/* 029818A0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 029818A4 */ cpu->r[29] = cpu->r[4];
|
|
/* 029818A8 */ _t8 = cpu->r[3] + 0x00000080u;
|
|
/* 029818A8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t8);
|
|
/* 029818AC */ _t9 = cpu->r[3] + 0x00000014u;
|
|
/* 029818AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029818B0 */ cpu->r[28] = cpu->r[5];
|
|
/* 029818B4 */ cpu->f[31] = cpu->f[1];
|
|
/* 029818B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 029818BC */ _t10 = cpu->r[3] + 0x00000018u;
|
|
/* 029818BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029818C0 */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029818C0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029818C0 */ if (_t12) goto L_029818DC; else goto L_029818C4;
|
|
L_029818C4: ; // 0x29818c4
|
|
/* 029818C4 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029818C8 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 029818CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029818D0 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 029818D0 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 029818D4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029818D4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 029818D4 */ if (_t15) goto L_02981910; else goto L_029818D8;
|
|
L_029818D8: ; // 0x29818d8
|
|
/* 029818D8 */ goto L_029818F0;
|
|
L_029818DC: ; // 0x29818dc
|
|
/* 029818DC */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000001Cu);
|
|
/* 029818E0 */ cpu->r[30] = cpu->r[31] + cpu->r[12];
|
|
/* 029818E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029818E8 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 029818E8 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
/* 029818EC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029818EC */ _t18 = _t17 & 0x00000001u;
|
|
/* 029818EC */ if (_t18) goto L_02981910; else goto L_029818F0;
|
|
L_029818F0: ; // 0x29818f0
|
|
/* 029818F0 */ _t19 = cpu->r[31] + 0x00000000u;
|
|
/* 029818F0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029818F4 */ cpu->f[1] = cpu->f[31];
|
|
/* 029818F8 */ cpu->r[5] = cpu->r[28];
|
|
/* 029818FC */ cpu->r[4] = cpu->r[29];
|
|
/* 02981900 */ Gambit_fn_029DB28C(cpu);
|
|
/* 02981904 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02981908 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0298190C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298190C */ _t21 = _t20 & 0x00000001u;
|
|
/* 0298190C */ if (_t21) goto L_02981910; else goto L_029818F0;
|
|
L_02981910: ; // 0x2981910
|
|
/* 02981910 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 02981910 */ cpu->r[28] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02981914 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 02981914 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02981918 */ _t24 = cpu->r[1] + 0x00000028u;
|
|
/* 02981918 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0298191C */ _t25 = cpu->r[1] + 0x00000018u;
|
|
/* 0298191C */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02981920 */ _t26 = cpu->r[1] + 0x00000020u;
|
|
/* 02981920 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t26);
|
|
/* 02981924 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981924 */ cpu->r[31] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02981928 */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981928 */ _t29 = _t28 & 0x00000001u;
|
|
/* 02981928 */ if (_t29) goto L_0298192C; // else: addr-0 trap, fall-through
|
|
L_0298192C: ; // 0x298192c
|
|
/* 0298192C */ _t30 = cpu->r[1] + 0x00000034u;
|
|
/* 0298192C */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02981930 */ cpu->lr = cpu->r[0];
|
|
/* 02981934 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 02981938 */ return;
|
|
}
|
|
|
|
// fn_0298193C @ 0x298193c
|
|
void Gambit_fn_0298193C(CPUState* cpu) {
|
|
uint32_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_0298193C: ; // 0x298193c
|
|
/* 0298193C */ cpu->r[0] = cpu->lr;
|
|
/* 02981940 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981940 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981940 */ cpu->r[1] = _t0;
|
|
/* 02981944 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981944 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981948 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02981948 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298194C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298194C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981950 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02981950 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981954 */ cpu->r[29] = cpu->r[4];
|
|
/* 02981958 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 02981958 */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 0298195C */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 0298195C */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981960 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02981964 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981964 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981968 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981968 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981968 */ if (_t9) goto L_02981984; else goto L_0298196C;
|
|
L_0298196C: ; // 0x298196c
|
|
/* 0298196C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981970 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 02981974 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981978 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981978 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 0298197C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298197C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298197C */ if (_t12) goto L_029819B0; else goto L_02981980;
|
|
L_02981980: ; // 0x2981980
|
|
/* 02981980 */ goto L_02981998;
|
|
L_02981984: ; // 0x2981984
|
|
/* 02981984 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 02981988 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 0298198C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981990 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981990 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 02981994 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981994 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02981994 */ if (_t15) goto L_029819B0; else goto L_02981998;
|
|
L_02981998: ; // 0x2981998
|
|
/* 02981998 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981998 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298199C */ cpu->r[4] = cpu->r[29];
|
|
/* 029819A0 */ Gambit_fn_029DB204(cpu);
|
|
/* 029819A4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029819A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029819AC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029819AC */ _t18 = _t17 & 0x00000001u;
|
|
/* 029819AC */ if (_t18) goto L_029819B0; else goto L_02981998;
|
|
L_029819B0: ; // 0x29819b0
|
|
/* 029819B0 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 029819B0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029819B4 */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 029819B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029819B8 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 029819B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029819BC */ cpu->lr = cpu->r[0];
|
|
/* 029819C0 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029819C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029819C4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029819C8 */ return;
|
|
}
|
|
|
|
// fn_02981940 @ 0x2981940
|
|
void Gambit_fn_02981940(CPUState* cpu) {
|
|
uint32_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_02981940: ; // 0x2981940
|
|
/* 02981940 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02981940 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981940 */ cpu->r[1] = _t0;
|
|
/* 02981944 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981944 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981948 */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 02981948 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298194C */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298194C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981950 */ _t4 = cpu->r[1] + 0x00000024u;
|
|
/* 02981950 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981954 */ cpu->r[29] = cpu->r[4];
|
|
/* 02981958 */ _t5 = cpu->r[3] + 0x00000080u;
|
|
/* 02981958 */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 0298195C */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 0298195C */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981960 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02981964 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 02981964 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981968 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981968 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02981968 */ if (_t9) goto L_02981984; else goto L_0298196C;
|
|
L_0298196C: ; // 0x298196c
|
|
/* 0298196C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02981970 */ cpu->r[30] = cpu->r[31] + cpu->r[9];
|
|
/* 02981974 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981978 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02981978 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 0298197C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298197C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298197C */ if (_t12) goto L_029819B0; else goto L_02981980;
|
|
L_02981980: ; // 0x2981980
|
|
/* 02981980 */ goto L_02981998;
|
|
L_02981984: ; // 0x2981984
|
|
/* 02981984 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000001Cu);
|
|
/* 02981988 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 0298198C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02981990 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 02981990 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 02981994 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981994 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02981994 */ if (_t15) goto L_029819B0; else goto L_02981998;
|
|
L_02981998: ; // 0x2981998
|
|
/* 02981998 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981998 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298199C */ cpu->r[4] = cpu->r[29];
|
|
/* 029819A0 */ Gambit_fn_029DB204(cpu);
|
|
/* 029819A4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029819A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029819AC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029819AC */ _t18 = _t17 & 0x00000001u;
|
|
/* 029819AC */ if (_t18) goto L_029819B0; else goto L_02981998;
|
|
L_029819B0: ; // 0x29819b0
|
|
/* 029819B0 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 029819B0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029819B4 */ _t20 = cpu->r[1] + 0x00000024u;
|
|
/* 029819B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029819B8 */ _t21 = cpu->r[1] + 0x00000018u;
|
|
/* 029819B8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029819BC */ cpu->lr = cpu->r[0];
|
|
/* 029819C0 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029819C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029819C4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029819C8 */ return;
|
|
}
|
|
|
|
// fn_029819CC @ 0x29819cc
|
|
void Gambit_fn_029819CC(CPUState* cpu) {
|
|
uint32_t _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, _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;
|
|
double _ft33, _ft34;
|
|
|
|
L_029819CC: ; // 0x29819cc
|
|
/* 029819CC */ _t0 = cpu->r[1] + 0xFFFFFF70u;
|
|
/* 029819CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029819CC */ cpu->r[1] = _t0;
|
|
/* 029819D0 */ _t1 = cpu->r[3] + 0x00000028u;
|
|
/* 029819D0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 029819D4 */ _t2 = cpu->r[3] + 0x00000030u;
|
|
/* 029819D4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 029819D8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029819DC */ cpu->r[6] = cpu->r[8] + cpu->r[12];
|
|
/* 029819E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[6]);
|
|
/* 029819E4 */ cpu->r[7] = 0x00000000u;
|
|
/* 029819E8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029819E8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 029819E8 */ if (_t4) goto L_02981CA8; else goto L_029819EC;
|
|
L_029819EC: ; // 0x29819ec
|
|
/* 029819EC */ cpu->r[12] = 0x10150000u;
|
|
/* 029819F0 */ _t5 = cpu->r[12] + 0xFFFFECE4u;
|
|
/* 029819F0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 029819F4 */ cpu->r[12] = 0x10150000u;
|
|
/* 029819F8 */ cpu->f[5] = cpu->f[0];
|
|
/* 029819FC */ _t6 = cpu->r[12] + 0xFFFFECECu;
|
|
/* 029819FC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t6);
|
|
L_02981A00: ; // 0x2981a00
|
|
/* 02981A00 */ _t7 = cpu->r[8] + 0x00000000u;
|
|
/* 02981A00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981A04 */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 02981A04 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02981A08 */ _t9 = cpu->r[11] + 0x0000000Au;
|
|
/* 02981A08 */ cpu->r[12] = rbrew_read16(cpu->mem, _t9);
|
|
/* 02981A0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02981A10 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981A10 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02981A10 */ if (_t11) goto L_02981C9C; else goto L_02981A14;
|
|
L_02981A14: ; // 0x2981a14
|
|
/* 02981A14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02981A18 */ _t12 = cpu->r[11] + 0x00000034u;
|
|
/* 02981A18 */ cpu->r[5] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02981A1C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981A1C */ _t14 = _t13 & 0x00000001u;
|
|
/* 02981A1C */ if (_t14) goto L_02981A20; else goto L_02981A54;
|
|
L_02981A20: ; // 0x2981a20
|
|
/* 02981A20 */ _t15 = cpu->r[5] + 0x00000000u;
|
|
/* 02981A20 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 02981A24 */ _t16 = cpu->r[3] + 0x00000090u;
|
|
/* 02981A24 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[11]);
|
|
/* 02981A28 */ _t17 = cpu->r[5] + 0x00000004u;
|
|
/* 02981A28 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 02981A2C */ _t18 = cpu->r[3] + 0x00000094u;
|
|
/* 02981A2C */ rbrew_write_f32(cpu->mem, _t18, cpu->f[12]);
|
|
/* 02981A30 */ _t19 = cpu->r[5] + 0x00000008u;
|
|
/* 02981A30 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 02981A34 */ cpu->r[8] = cpu->r[8] + 0x00000004u;
|
|
/* 02981A38 */ _t20 = cpu->r[3] + 0x00000098u;
|
|
/* 02981A38 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[11]);
|
|
/* 02981A3C */ _t21 = cpu->r[5] + 0x0000000Cu;
|
|
/* 02981A3C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 02981A40 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[6]);
|
|
/* 02981A44 */ cpu->r[7] = cpu->r[3] + 0x00000090u;
|
|
/* 02981A48 */ _t22 = cpu->r[3] + 0x0000009Cu;
|
|
/* 02981A48 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[12]);
|
|
/* 02981A4C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981A4C */ _t24 = _t23 & 0x00000001u;
|
|
/* 02981A4C */ if (_t24) goto L_02981A50; else goto L_02981A00;
|
|
L_02981A50: ; // 0x2981a50
|
|
/* 02981A50 */ goto L_02981CA8;
|
|
L_02981A54: ; // 0x2981a54
|
|
/* 02981A54 */ /* nop */
|
|
/* 02981A58 */ /* nop */
|
|
/* 02981A5C */ /* nop */
|
|
/* 02981A60 */ /* nop */
|
|
/* 02981A64 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981A64 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 02981A68 */ _t26 = cpu->r[7] + 0x00000008u;
|
|
/* 02981A68 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 02981A6C */ cpu->f[11] = cpu->f[11] * cpu->f[11];
|
|
/* 02981A70 */ _t27 = cpu->r[5] + 0x00000008u;
|
|
/* 02981A70 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 02981A74 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 02981A74 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 02981A78 */ cpu->f[3] = cpu->f[9] - cpu->f[10];
|
|
/* 02981A7C */ cpu->f[10] = fma(cpu->f[4], cpu->f[4], cpu->f[11]);
|
|
/* 02981A80 */ cpu->f[11] = fma(cpu->f[3], cpu->f[3], cpu->f[10]);
|
|
/* 02981A84 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[13]);
|
|
/* 02981A88 */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 02981A88 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[3]);
|
|
/* 02981A8C */ _t30 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981A8C */ _t31 = _t30 & 0x00000001u;
|
|
/* 02981A8C */ if (_t31) goto L_02981A90; else goto L_02981AC8;
|
|
L_02981A90: ; // 0x2981a90
|
|
/* 02981A90 */ cpu->r[12] = 0x10150000u;
|
|
/* 02981A94 */ _t32 = cpu->r[12] + 0xFFFFECE8u;
|
|
/* 02981A94 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 02981A98 */ cpu->f[10] = cpu->f[12];
|
|
/* 02981A9C */ _ft33 = sqrt(cpu->f[11]);
|
|
/* 02981A9C */ _ft34 = (double)(int32_t)0x00000001u;
|
|
/* 02981A9C */ cpu->f[6] = _ft34 / _ft33;
|
|
/* 02981AA0 */ cpu->f[7] = cpu->f[6] * cpu->f[6];
|
|
/* 02981AA4 */ cpu->f[8] = cpu->f[6] * cpu->f[0];
|
|
/* 02981AA8 */ cpu->f[7] = -fma(cpu->f[7], cpu->f[11], -(cpu->f[10]));
|
|
/* 02981AAC */ cpu->f[6] = cpu->f[7] * cpu->f[8];
|
|
/* 02981AB0 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02981AB0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 02981AB4 */ cpu->f[11] = cpu->f[11] * cpu->f[6];
|
|
/* 02981AB8 */ /* nop */
|
|
/* 02981ABC */ cpu->f[3] = cpu->f[10] * cpu->f[6];
|
|
/* 02981AC0 */ /* nop */
|
|
/* 02981AC4 */ _t36 = cpu->r[1] + 0x00000010u;
|
|
/* 02981AC4 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[3]);
|
|
L_02981AC8: ; // 0x2981ac8
|
|
/* 02981AC8 */ _t37 = cpu->r[7] + 0x0000000Cu;
|
|
/* 02981AC8 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 02981ACC */ _t38 = cpu->r[5] + 0x0000000Cu;
|
|
/* 02981ACC */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 02981AD0 */ cpu->f[2] = cpu->f[4] - cpu->f[9];
|
|
/* 02981AD4 */ cpu->f[10] = fabs(cpu->f[2]);
|
|
/* 02981AD8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[11], cpu->f[10]);
|
|
/* 02981ADC */ _t39 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981ADC */ _t40 = _t39 & 0x00000001u;
|
|
/* 02981ADC */ if (_t40) goto L_02981AE0; else goto L_02981B18;
|
|
L_02981AE0: ; // 0x2981ae0
|
|
/* 02981AE0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[2], cpu->f[13]);
|
|
/* 02981AE4 */ _t41 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981AE4 */ _t42 = _t41 & 0x00000001u;
|
|
/* 02981AE4 */ if (_t42) goto L_02981AE8; else goto L_02981C9C;
|
|
L_02981AE8: ; // 0x2981ae8
|
|
/* 02981AE8 */ _t43 = cpu->r[5] + 0x00000000u;
|
|
/* 02981AE8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 02981AEC */ _t44 = cpu->r[7] + 0x00000000u;
|
|
/* 02981AEC */ rbrew_write_f32(cpu->mem, _t44, cpu->f[11]);
|
|
/* 02981AF0 */ _t45 = cpu->r[5] + 0x00000004u;
|
|
/* 02981AF0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 02981AF4 */ _t46 = cpu->r[7] + 0x00000004u;
|
|
/* 02981AF4 */ rbrew_write_f32(cpu->mem, _t46, cpu->f[12]);
|
|
/* 02981AF8 */ _t47 = cpu->r[5] + 0x00000008u;
|
|
/* 02981AF8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 02981AFC */ cpu->r[8] = cpu->r[8] + 0x00000004u;
|
|
/* 02981B00 */ _t48 = cpu->r[7] + 0x00000008u;
|
|
/* 02981B00 */ rbrew_write_f32(cpu->mem, _t48, cpu->f[11]);
|
|
/* 02981B04 */ _t49 = cpu->r[5] + 0x0000000Cu;
|
|
/* 02981B04 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 02981B08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[6]);
|
|
/* 02981B0C */ _t50 = cpu->r[7] + 0x0000000Cu;
|
|
/* 02981B0C */ rbrew_write_f32(cpu->mem, _t50, cpu->f[12]);
|
|
/* 02981B10 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981B10 */ _t52 = _t51 & 0x00000001u;
|
|
/* 02981B10 */ if (_t52) goto L_02981B14; else goto L_02981A00;
|
|
L_02981B14: ; // 0x2981b14
|
|
/* 02981B14 */ goto L_02981CA8;
|
|
L_02981B18: ; // 0x2981b18
|
|
/* 02981B18 */ /* nop */
|
|
/* 02981B1C */ /* nop */
|
|
/* 02981B20 */ _t53 = cpu->r[1] + 0x00000044u;
|
|
/* 02981B20 */ cpu->r[9] = rbrew_read32(cpu->mem, _t53);
|
|
/* 02981B24 */ cpu->f[10] = cpu->f[3] * cpu->f[4];
|
|
/* 02981B28 */ _t54 = cpu->r[1] + 0x00000048u;
|
|
/* 02981B28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02981B2C */ _t55 = cpu->r[1] + 0x00000014u;
|
|
/* 02981B2C */ rbrew_write32(cpu->mem, _t55, cpu->r[9]);
|
|
/* 02981B30 */ _t56 = cpu->r[1] + 0x0000004Cu;
|
|
/* 02981B30 */ rbrew_write_f32(cpu->mem, _t56, cpu->f[10]);
|
|
/* 02981B34 */ _t57 = cpu->r[1] + 0x0000004Cu;
|
|
/* 02981B34 */ cpu->r[11] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02981B38 */ _t58 = cpu->r[1] + 0x00000018u;
|
|
/* 02981B38 */ rbrew_write32(cpu->mem, _t58, cpu->r[10]);
|
|
/* 02981B3C */ /* nop */
|
|
/* 02981B40 */ _t59 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981B40 */ rbrew_write32(cpu->mem, _t59, cpu->r[11]);
|
|
/* 02981B44 */ /* nop */
|
|
/* 02981B48 */ /* nop */
|
|
/* 02981B4C */ _t60 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981B4C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 02981B50 */ /* nop */
|
|
/* 02981B54 */ _t61 = cpu->r[7] + 0x00000008u;
|
|
/* 02981B54 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 02981B58 */ cpu->f[4] = cpu->f[4] + cpu->f[10];
|
|
/* 02981B5C */ _t62 = cpu->r[1] + 0x00000050u;
|
|
/* 02981B5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t62);
|
|
/* 02981B60 */ _t63 = cpu->r[1] + 0x00000054u;
|
|
/* 02981B60 */ cpu->r[12] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02981B64 */ _t64 = cpu->r[1] + 0x00000058u;
|
|
/* 02981B64 */ rbrew_write_f32(cpu->mem, _t64, cpu->f[4]);
|
|
/* 02981B68 */ /* nop */
|
|
/* 02981B6C */ _t65 = cpu->r[1] + 0x00000020u;
|
|
/* 02981B6C */ rbrew_write32(cpu->mem, _t65, cpu->r[11]);
|
|
/* 02981B70 */ _t66 = cpu->r[1] + 0x00000020u;
|
|
/* 02981B70 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 02981B74 */ /* nop */
|
|
/* 02981B78 */ _t67 = cpu->r[1] + 0x0000005Cu;
|
|
/* 02981B78 */ cpu->r[10] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02981B7C */ _t68 = cpu->r[1] + 0x00000010u;
|
|
/* 02981B7C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 02981B80 */ _t69 = cpu->r[1] + 0x00000024u;
|
|
/* 02981B80 */ rbrew_write32(cpu->mem, _t69, cpu->r[12]);
|
|
/* 02981B84 */ _t70 = cpu->r[1] + 0x00000024u;
|
|
/* 02981B84 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 02981B88 */ cpu->f[12] = cpu->f[10] * cpu->f[9];
|
|
/* 02981B8C */ _t71 = cpu->r[1] + 0x00000058u;
|
|
/* 02981B8C */ cpu->r[12] = rbrew_read32(cpu->mem, _t71);
|
|
/* 02981B90 */ _t72 = cpu->r[1] + 0x00000020u;
|
|
/* 02981B90 */ rbrew_write32(cpu->mem, _t72, cpu->r[10]);
|
|
/* 02981B94 */ _t73 = cpu->r[1] + 0x00000064u;
|
|
/* 02981B94 */ rbrew_write_f32(cpu->mem, _t73, cpu->f[12]);
|
|
/* 02981B98 */ _t74 = cpu->r[1] + 0x00000060u;
|
|
/* 02981B98 */ cpu->r[11] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02981B9C */ _t75 = cpu->r[1] + 0x00000024u;
|
|
/* 02981B9C */ rbrew_write32(cpu->mem, _t75, cpu->r[11]);
|
|
/* 02981BA0 */ /* nop */
|
|
/* 02981BA4 */ _t76 = cpu->r[1] + 0x00000028u;
|
|
/* 02981BA4 */ rbrew_write32(cpu->mem, _t76, cpu->r[12]);
|
|
/* 02981BA8 */ _t77 = cpu->r[1] + 0x00000064u;
|
|
/* 02981BA8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02981BAC */ _t78 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02981BAC */ rbrew_write_f32(cpu->mem, _t78, cpu->f[2]);
|
|
/* 02981BB0 */ _t79 = cpu->r[1] + 0x00000028u;
|
|
/* 02981BB0 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t79);
|
|
/* 02981BB4 */ _t80 = cpu->r[1] + 0x00000028u;
|
|
/* 02981BB4 */ rbrew_write32(cpu->mem, _t80, cpu->r[12]);
|
|
/* 02981BB8 */ _t81 = cpu->r[1] + 0x00000034u;
|
|
/* 02981BB8 */ rbrew_write_f32(cpu->mem, _t81, cpu->f[2]);
|
|
/* 02981BBC */ _t82 = cpu->r[1] + 0x00000030u;
|
|
/* 02981BBC */ rbrew_write_f32(cpu->mem, _t82, cpu->f[3]);
|
|
/* 02981BC0 */ /* nop */
|
|
/* 02981BC4 */ /* nop */
|
|
/* 02981BC8 */ /* nop */
|
|
/* 02981BCC */ /* nop */
|
|
/* 02981BD0 */ _t83 = cpu->r[1] + 0x00000068u;
|
|
/* 02981BD0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t83);
|
|
/* 02981BD4 */ _t84 = cpu->r[1] + 0x00000028u;
|
|
/* 02981BD4 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t84);
|
|
/* 02981BD8 */ _t85 = cpu->r[5] + 0x00000008u;
|
|
/* 02981BD8 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t85);
|
|
/* 02981BDC */ _t86 = cpu->r[1] + 0x00000014u;
|
|
/* 02981BDC */ rbrew_write32(cpu->mem, _t86, cpu->r[10]);
|
|
/* 02981BE0 */ _t87 = cpu->r[1] + 0x0000006Cu;
|
|
/* 02981BE0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02981BE4 */ cpu->f[12] = cpu->f[10] - cpu->f[12];
|
|
/* 02981BE8 */ _t88 = cpu->r[1] + 0x00000014u;
|
|
/* 02981BE8 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t88);
|
|
/* 02981BEC */ _t89 = cpu->r[1] + 0x00000070u;
|
|
/* 02981BEC */ rbrew_write_f32(cpu->mem, _t89, cpu->f[12]);
|
|
/* 02981BF0 */ _t90 = cpu->r[1] + 0x00000070u;
|
|
/* 02981BF0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t90);
|
|
/* 02981BF4 */ _t91 = cpu->r[1] + 0x00000018u;
|
|
/* 02981BF4 */ rbrew_write32(cpu->mem, _t91, cpu->r[11]);
|
|
/* 02981BF8 */ _t92 = cpu->r[1] + 0x00000018u;
|
|
/* 02981BF8 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t92);
|
|
/* 02981BFC */ _t93 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981BFC */ rbrew_write32(cpu->mem, _t93, cpu->r[12]);
|
|
/* 02981C00 */ _t94 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981C00 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 02981C04 */ _t95 = cpu->r[1] + 0x00000038u;
|
|
/* 02981C04 */ rbrew_write_f32(cpu->mem, _t95, cpu->f[4]);
|
|
/* 02981C08 */ cpu->f[12] = cpu->f[2] + cpu->f[3];
|
|
/* 02981C0C */ _t96 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02981C0C */ rbrew_write_f32(cpu->mem, _t96, cpu->f[10]);
|
|
/* 02981C10 */ /* nop */
|
|
/* 02981C14 */ _t97 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02981C14 */ rbrew_write_f32(cpu->mem, _t97, cpu->f[12]);
|
|
/* 02981C18 */ /* nop */
|
|
/* 02981C1C */ _t98 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02981C1C */ cpu->r[11] = rbrew_read32(cpu->mem, _t98);
|
|
/* 02981C20 */ /* nop */
|
|
/* 02981C24 */ _t99 = cpu->r[1] + 0x00000074u;
|
|
/* 02981C24 */ cpu->r[10] = rbrew_read32(cpu->mem, _t99);
|
|
/* 02981C28 */ _t100 = cpu->r[1] + 0x00000078u;
|
|
/* 02981C28 */ cpu->r[12] = rbrew_read32(cpu->mem, _t100);
|
|
/* 02981C2C */ _t101 = cpu->r[1] + 0x00000020u;
|
|
/* 02981C2C */ rbrew_write32(cpu->mem, _t101, cpu->r[10]);
|
|
/* 02981C30 */ _t102 = cpu->r[1] + 0x00000024u;
|
|
/* 02981C30 */ rbrew_write32(cpu->mem, _t102, cpu->r[12]);
|
|
/* 02981C34 */ /* nop */
|
|
/* 02981C38 */ _t103 = cpu->r[1] + 0x00000040u;
|
|
/* 02981C38 */ rbrew_write_f32(cpu->mem, _t103, cpu->f[3]);
|
|
/* 02981C3C */ /* nop */
|
|
/* 02981C40 */ _t104 = cpu->r[1] + 0x00000028u;
|
|
/* 02981C40 */ rbrew_write32(cpu->mem, _t104, cpu->r[11]);
|
|
/* 02981C44 */ _t105 = cpu->r[1] + 0x00000028u;
|
|
/* 02981C44 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t105);
|
|
/* 02981C48 */ /* nop */
|
|
/* 02981C4C */ _t106 = cpu->r[1] + 0x00000084u;
|
|
/* 02981C4C */ cpu->r[11] = rbrew_read32(cpu->mem, _t106);
|
|
/* 02981C50 */ cpu->f[12] = cpu->f[12] * cpu->f[5];
|
|
/* 02981C54 */ _t107 = cpu->r[1] + 0x00000080u;
|
|
/* 02981C54 */ cpu->r[10] = rbrew_read32(cpu->mem, _t107);
|
|
/* 02981C58 */ _t108 = cpu->r[1] + 0x00000018u;
|
|
/* 02981C58 */ rbrew_write32(cpu->mem, _t108, cpu->r[11]);
|
|
/* 02981C5C */ _t109 = cpu->r[1] + 0x00000088u;
|
|
/* 02981C5C */ rbrew_write_f32(cpu->mem, _t109, cpu->f[12]);
|
|
/* 02981C60 */ _t110 = cpu->r[1] + 0x00000088u;
|
|
/* 02981C60 */ cpu->r[12] = rbrew_read32(cpu->mem, _t110);
|
|
/* 02981C64 */ _t111 = cpu->r[1] + 0x00000014u;
|
|
/* 02981C64 */ rbrew_write32(cpu->mem, _t111, cpu->r[10]);
|
|
/* 02981C68 */ _t112 = cpu->r[1] + 0x00000014u;
|
|
/* 02981C68 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t112);
|
|
/* 02981C6C */ _t113 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981C6C */ rbrew_write32(cpu->mem, _t113, cpu->r[12]);
|
|
/* 02981C70 */ _t114 = cpu->r[7] + 0x00000000u;
|
|
/* 02981C70 */ rbrew_write_f32(cpu->mem, _t114, cpu->f[12]);
|
|
/* 02981C74 */ _t115 = cpu->r[1] + 0x00000018u;
|
|
/* 02981C74 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t115);
|
|
/* 02981C78 */ _t116 = cpu->r[7] + 0x0000000Cu;
|
|
/* 02981C78 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t116);
|
|
/* 02981C7C */ _t117 = cpu->r[7] + 0x00000004u;
|
|
/* 02981C7C */ rbrew_write_f32(cpu->mem, _t117, cpu->f[10]);
|
|
/* 02981C80 */ _t118 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981C80 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t118);
|
|
/* 02981C84 */ cpu->f[11] = cpu->f[11] + cpu->f[12];
|
|
/* 02981C88 */ _t119 = cpu->r[7] + 0x00000008u;
|
|
/* 02981C88 */ rbrew_write_f32(cpu->mem, _t119, cpu->f[10]);
|
|
/* 02981C8C */ _t120 = cpu->r[5] + 0x0000000Cu;
|
|
/* 02981C8C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t120);
|
|
/* 02981C90 */ cpu->f[11] = cpu->f[11] + cpu->f[12];
|
|
/* 02981C94 */ cpu->f[12] = cpu->f[11] * cpu->f[5];
|
|
/* 02981C98 */ _t121 = cpu->r[7] + 0x0000000Cu;
|
|
/* 02981C98 */ rbrew_write_f32(cpu->mem, _t121, cpu->f[12]);
|
|
L_02981C9C: ; // 0x2981c9c
|
|
/* 02981C9C */ cpu->r[8] = cpu->r[8] + 0x00000004u;
|
|
/* 02981CA0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[6]);
|
|
/* 02981CA4 */ _t122 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981CA4 */ _t123 = _t122 & 0x00000001u;
|
|
/* 02981CA4 */ if (_t123) goto L_02981CA8; else goto L_02981A00;
|
|
L_02981CA8: ; // 0x2981ca8
|
|
/* 02981CA8 */ cpu->r[1] = cpu->r[1] + 0x00000090u;
|
|
/* 02981CAC */ return;
|
|
}
|
|
|
|
// fn_02981CB0 @ 0x2981cb0
|
|
void Gambit_fn_02981CB0(CPUState* cpu) {
|
|
uint32_t _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_02981CB0: ; // 0x2981cb0
|
|
/* 02981CB0 */ cpu->r[0] = cpu->lr;
|
|
/* 02981CB4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02981CB4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981CB4 */ cpu->r[1] = _t0;
|
|
/* 02981CB8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02981CB8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02981CBC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981CBC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02981CC0 */ cpu->r[30] = cpu->r[3];
|
|
/* 02981CC4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02981CC4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02981CC8 */ _t4 = cpu->r[30] + 0x000000A0u;
|
|
/* 02981CC8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02981CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02981CD0 */ cpu->r[31] = cpu->r[4];
|
|
/* 02981CD4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981CD4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02981CD4 */ if (_t6) goto L_02981CFC; else goto L_02981CD8;
|
|
L_02981CD8: ; // 0x2981cd8
|
|
/* 02981CD8 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 02981CD8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 02981CDC */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 02981CDC */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 02981CE0 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 02981CE0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 02981CE4 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 02981CE4 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 02981CE8 */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 02981CE8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 02981CEC */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 02981CEC */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 02981CF0 */ _t13 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02981CF0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 02981CF4 */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02981CF4 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[0]);
|
|
/* 02981CF8 */ goto L_02981D24;
|
|
L_02981CFC: ; // 0x2981cfc
|
|
/* 02981CFC */ cpu->r[3] = cpu->r[30];
|
|
/* 02981D00 */ Gambit_fn_029819CC(cpu);
|
|
/* 02981D04 */ _t15 = cpu->r[30] + 0x00000090u;
|
|
/* 02981D04 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 02981D08 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981D08 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 02981D0C */ _t17 = cpu->r[30] + 0x00000094u;
|
|
/* 02981D0C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 02981D10 */ _t18 = cpu->r[31] + 0x00000004u;
|
|
/* 02981D10 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
/* 02981D14 */ _t19 = cpu->r[30] + 0x00000098u;
|
|
/* 02981D14 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 02981D18 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 02981D18 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[0]);
|
|
/* 02981D1C */ _t21 = cpu->r[30] + 0x0000009Cu;
|
|
/* 02981D1C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 02981D20 */ _t22 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02981D20 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[0]);
|
|
L_02981D24: ; // 0x2981d24
|
|
/* 02981D24 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 02981D24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02981D28 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 02981D28 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02981D2C */ cpu->lr = cpu->r[0];
|
|
/* 02981D30 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981D30 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02981D34 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02981D38 */ return;
|
|
}
|
|
|
|
// fn_02981CB4 @ 0x2981cb4
|
|
void Gambit_fn_02981CB4(CPUState* cpu) {
|
|
uint32_t _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_02981CB4: ; // 0x2981cb4
|
|
/* 02981CB4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02981CB4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981CB4 */ cpu->r[1] = _t0;
|
|
/* 02981CB8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02981CB8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02981CBC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981CBC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02981CC0 */ cpu->r[30] = cpu->r[3];
|
|
/* 02981CC4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02981CC4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02981CC8 */ _t4 = cpu->r[30] + 0x000000A0u;
|
|
/* 02981CC8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02981CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02981CD0 */ cpu->r[31] = cpu->r[4];
|
|
/* 02981CD4 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981CD4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02981CD4 */ if (_t6) goto L_02981CFC; else goto L_02981CD8;
|
|
L_02981CD8: ; // 0x2981cd8
|
|
/* 02981CD8 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 02981CD8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 02981CDC */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 02981CDC */ rbrew_write_f32(cpu->mem, _t8, cpu->f[0]);
|
|
/* 02981CE0 */ _t9 = cpu->r[12] + 0x00000004u;
|
|
/* 02981CE0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 02981CE4 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 02981CE4 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 02981CE8 */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 02981CE8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 02981CEC */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 02981CEC */ rbrew_write_f32(cpu->mem, _t12, cpu->f[0]);
|
|
/* 02981CF0 */ _t13 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02981CF0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 02981CF4 */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02981CF4 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[0]);
|
|
/* 02981CF8 */ goto L_02981D24;
|
|
L_02981CFC: ; // 0x2981cfc
|
|
/* 02981CFC */ cpu->r[3] = cpu->r[30];
|
|
/* 02981D00 */ Gambit_fn_029819CC(cpu);
|
|
/* 02981D04 */ _t15 = cpu->r[30] + 0x00000090u;
|
|
/* 02981D04 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 02981D08 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 02981D08 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 02981D0C */ _t17 = cpu->r[30] + 0x00000094u;
|
|
/* 02981D0C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 02981D10 */ _t18 = cpu->r[31] + 0x00000004u;
|
|
/* 02981D10 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
/* 02981D14 */ _t19 = cpu->r[30] + 0x00000098u;
|
|
/* 02981D14 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 02981D18 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 02981D18 */ rbrew_write_f32(cpu->mem, _t20, cpu->f[0]);
|
|
/* 02981D1C */ _t21 = cpu->r[30] + 0x0000009Cu;
|
|
/* 02981D1C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 02981D20 */ _t22 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02981D20 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[0]);
|
|
L_02981D24: ; // 0x2981d24
|
|
/* 02981D24 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 02981D24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02981D28 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 02981D28 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02981D2C */ cpu->lr = cpu->r[0];
|
|
/* 02981D30 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981D30 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02981D34 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02981D38 */ return;
|
|
}
|
|
|
|
// fn_02981D3C @ 0x2981d3c
|
|
void Gambit_fn_02981D3C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_02981D3C: ; // 0x2981d3c
|
|
/* 02981D3C */ cpu->r[0] = cpu->lr;
|
|
/* 02981D40 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02981D40 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981D40 */ cpu->r[1] = _t0;
|
|
/* 02981D44 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981D44 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981D48 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02981D48 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981D4C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02981D4C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981D50 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981D50 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981D54 */ cpu->r[29] = cpu->r[4];
|
|
/* 02981D58 */ _t5 = cpu->r[3] + 0x00000028u;
|
|
/* 02981D58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02981D5C */ _t6 = cpu->r[3] + 0x00000030u;
|
|
/* 02981D5C */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981D60 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981D64 */ cpu->r[31] = cpu->r[30] + cpu->r[0];
|
|
/* 02981D68 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02981D6C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981D6C */ _t8 = _t7 & 0x00000001u;
|
|
/* 02981D6C */ if (_t8) goto L_02981D98; else goto L_02981D70;
|
|
L_02981D70: ; // 0x2981d70
|
|
/* 02981D70 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 02981D70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02981D74 */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 02981D74 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02981D78 */ _t11 = cpu->r[3] + 0x00000088u;
|
|
/* 02981D78 */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02981D7C */ _t12 = cpu->r[8] + 0x00000224u;
|
|
/* 02981D7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02981D80 */ cpu->ctr = cpu->r[0];
|
|
/* 02981D84 */ cpu->r[4] = cpu->r[29];
|
|
/* 02981D88 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02981D8C */ cpu->r[30] = cpu->r[30] + 0x00000004u;
|
|
/* 02981D90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02981D94 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981D94 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02981D94 */ if (_t14) goto L_02981D98; else goto L_02981D70;
|
|
L_02981D98: ; // 0x2981d98
|
|
/* 02981D98 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981D98 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02981D9C */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981D9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02981DA0 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 02981DA0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02981DA4 */ cpu->lr = cpu->r[0];
|
|
/* 02981DA8 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02981DA8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02981DAC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02981DB0 */ return;
|
|
}
|
|
|
|
// fn_02981D40 @ 0x2981d40
|
|
void Gambit_fn_02981D40(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_02981D40: ; // 0x2981d40
|
|
/* 02981D40 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02981D40 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981D40 */ cpu->r[1] = _t0;
|
|
/* 02981D44 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981D44 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02981D48 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02981D48 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981D4C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02981D4C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02981D50 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981D50 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02981D54 */ cpu->r[29] = cpu->r[4];
|
|
/* 02981D58 */ _t5 = cpu->r[3] + 0x00000028u;
|
|
/* 02981D58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02981D5C */ _t6 = cpu->r[3] + 0x00000030u;
|
|
/* 02981D5C */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981D60 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981D64 */ cpu->r[31] = cpu->r[30] + cpu->r[0];
|
|
/* 02981D68 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02981D6C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981D6C */ _t8 = _t7 & 0x00000001u;
|
|
/* 02981D6C */ if (_t8) goto L_02981D98; else goto L_02981D70;
|
|
L_02981D70: ; // 0x2981d70
|
|
/* 02981D70 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 02981D70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02981D74 */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 02981D74 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02981D78 */ _t11 = cpu->r[3] + 0x00000088u;
|
|
/* 02981D78 */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02981D7C */ _t12 = cpu->r[8] + 0x00000224u;
|
|
/* 02981D7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02981D80 */ cpu->ctr = cpu->r[0];
|
|
/* 02981D84 */ cpu->r[4] = cpu->r[29];
|
|
/* 02981D88 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02981D8C */ cpu->r[30] = cpu->r[30] + 0x00000004u;
|
|
/* 02981D90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02981D94 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981D94 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02981D94 */ if (_t14) goto L_02981D98; else goto L_02981D70;
|
|
L_02981D98: ; // 0x2981d98
|
|
/* 02981D98 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981D98 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02981D9C */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981D9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02981DA0 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 02981DA0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02981DA4 */ cpu->lr = cpu->r[0];
|
|
/* 02981DA8 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02981DA8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02981DAC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02981DB0 */ return;
|
|
}
|
|
|
|
// fn_02981DB4 @ 0x2981db4
|
|
void Gambit_fn_02981DB4(CPUState* cpu) {
|
|
uint32_t _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_02981DB4: ; // 0x2981db4
|
|
/* 02981DB4 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 02981DB4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981DB4 */ cpu->r[1] = _t0;
|
|
/* 02981DB8 */ /* nop */
|
|
/* 02981DBC */ cpu->r[0] = cpu->lr;
|
|
/* 02981DC0 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 02981DC0 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 02981DC4 */ _t2 = cpu->r[1] + 0x00000034u;
|
|
/* 02981DC4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02981DC8 */ /* nop */
|
|
/* 02981DCC */ _t3 = cpu->r[1] + 0x00000028u;
|
|
/* 02981DCC */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 02981DD0 */ _t4 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02981DD0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02981DD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[8]);
|
|
/* 02981DD8 */ cpu->r[12] = 0x00000000u;
|
|
/* 02981DDC */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981DDC */ _t6 = _t5 & 0x00000001u;
|
|
/* 02981DDC */ if (_t6) goto L_02981DE0; else goto L_02981DEC;
|
|
L_02981DE0: ; // 0x2981de0
|
|
/* 02981DE0 */ _t7 = cpu->r[3] + 0x00000024u;
|
|
/* 02981DE0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981DE4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981DE8 */ _t8 = cpu->r[11] + cpu->r[12];
|
|
/* 02981DE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
L_02981DEC: ; // 0x2981dec
|
|
/* 02981DEC */ _t9 = cpu->r[12] + 0x00000014u;
|
|
/* 02981DEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02981DF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02981DF4 */ cpu->r[11] = cpu->r[12] + 0x0000000Cu;
|
|
/* 02981DF8 */ _t10 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02981DF8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02981DF8 */ if (_t11) goto L_02981DFC; else goto L_02981E78;
|
|
L_02981DFC: ; // 0x2981dfc
|
|
/* 02981DFC */ _t12 = cpu->r[3] + 0x000000B8u;
|
|
/* 02981DFC */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02981E00 */ cpu->r[7] = 0x00000000u;
|
|
/* 02981E04 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[8]);
|
|
/* 02981E08 */ _t13 = cpu->r[9] + 0x00004CBCu;
|
|
/* 02981E08 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 02981E0C */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981E0C */ _t15 = _t14 & 0x00000001u;
|
|
/* 02981E0C */ if (_t15) goto L_02981E10; else goto L_02981E1C;
|
|
L_02981E10: ; // 0x2981e10
|
|
/* 02981E10 */ _t16 = cpu->r[3] + 0x00000024u;
|
|
/* 02981E10 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02981E14 */ cpu->r[6] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981E18 */ _t17 = cpu->r[6] + cpu->r[7];
|
|
/* 02981E18 */ cpu->r[7] = rbrew_read32(cpu->mem, _t17);
|
|
L_02981E1C: ; // 0x2981e1c
|
|
/* 02981E1C */ _t18 = cpu->r[7] + 0x00000000u;
|
|
/* 02981E1C */ cpu->r[27] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02981E20 */ _t19 = cpu->r[11] + 0x00000004u;
|
|
/* 02981E20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02981E24 */ _t20 = cpu->r[11] + 0x0000000Cu;
|
|
/* 02981E24 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02981E28 */ _t21 = cpu->r[9] + 0x00004FBCu;
|
|
/* 02981E28 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02981E2C */ cpu->r[31] = cpu->r[0] - cpu->r[30];
|
|
/* 02981E30 */ _t22 = cpu->r[27] + 0x0000000Au;
|
|
/* 02981E30 */ cpu->r[10] = rbrew_read16(cpu->mem, _t22);
|
|
/* 02981E34 */ cpu->r[29] = cpu->r[11] - cpu->r[30];
|
|
/* 02981E38 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981E3C */ cpu->r[28] = cpu->r[8] & cpu->r[10];
|
|
/* 02981E40 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981E40 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02981E40 */ if (_t24) goto L_02981E78; else goto L_02981E44;
|
|
L_02981E44: ; // 0x2981e44
|
|
/* 02981E44 */ _t25 = cpu->r[31] + 0x00000008u;
|
|
/* 02981E44 */ cpu->r[12] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02981E48 */ _t26 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02981E48 */ cpu->r[6] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02981E4C */ cpu->ctr = cpu->r[6];
|
|
/* 02981E50 */ cpu->r[4] = cpu->r[27];
|
|
/* 02981E54 */ cpu->r[5] = cpu->r[28];
|
|
/* 02981E58 */ cpu->r[3] = cpu->r[31];
|
|
/* 02981E5C */ cpu->f[1] = cpu->f[31];
|
|
/* 02981E60 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02981E64 */ cpu->r[9] = cpu->r[31] + cpu->r[30];
|
|
/* 02981E68 */ _t27 = cpu->r[9] + 0x00000004u;
|
|
/* 02981E68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02981E6C */ cpu->r[31] = cpu->r[0] - cpu->r[30];
|
|
/* 02981E70 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02981E74 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981E74 */ _t29 = _t28 & 0x00000001u;
|
|
/* 02981E74 */ if (_t29) goto L_02981E78; else goto L_02981E44;
|
|
L_02981E78: ; // 0x2981e78
|
|
/* 02981E78 */ /* nop */
|
|
/* 02981E7C */ _t30 = cpu->r[1] + 0x00000028u;
|
|
/* 02981E7C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 02981E80 */ _t31 = cpu->r[1] + 0x00000020u;
|
|
/* 02981E80 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t31);
|
|
/* 02981E84 */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981E84 */ _t33 = _t32 & 0x00000001u;
|
|
/* 02981E84 */ if (_t33) goto L_02981E88; // else: addr-0 trap, fall-through
|
|
L_02981E88: ; // 0x2981e88
|
|
/* 02981E88 */ _t34 = cpu->r[1] + 0x00000034u;
|
|
/* 02981E88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02981E8C */ cpu->lr = cpu->r[0];
|
|
/* 02981E90 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 02981E94 */ return;
|
|
}
|
|
|
|
// fn_02981E98 @ 0x2981e98
|
|
void Gambit_fn_02981E98(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_02981E98: ; // 0x2981e98
|
|
/* 02981E98 */ cpu->r[0] = cpu->lr;
|
|
/* 02981E9C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 02981E9C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 02981EA0 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02981EA0 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 02981EA0 */ cpu->r[1] = _t1;
|
|
/* 02981EA4 */ _t2 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02981EA4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02981EA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 02981EAC */ cpu->r[12] = 0x00000000u;
|
|
/* 02981EB0 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981EB0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02981EB0 */ if (_t4) goto L_02981EB4; else goto L_02981EC0;
|
|
L_02981EB4: ; // 0x2981eb4
|
|
/* 02981EB4 */ _t5 = cpu->r[3] + 0x00000024u;
|
|
/* 02981EB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02981EB8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981EBC */ _t6 = cpu->r[11] + cpu->r[0];
|
|
/* 02981EBC */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
L_02981EC0: ; // 0x2981ec0
|
|
/* 02981EC0 */ _t7 = cpu->r[12] + 0x00000018u;
|
|
/* 02981EC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981EC4 */ cpu->r[3] = cpu->r[12] + 0x0000000Cu;
|
|
/* 02981EC8 */ cpu->r[4] = cpu->r[5] + cpu->r[0];
|
|
/* 02981ECC */ Gambit_fn_02802290(cpu);
|
|
/* 02981ED0 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981ED0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02981ED4 */ _t9 = cpu->r[3] | cpu->r[3];
|
|
/* 02981ED4 */ cpu->r[10] = ~_t9;
|
|
/* 02981ED8 */ cpu->lr = cpu->r[0];
|
|
/* 02981EDC */ cpu->r[12] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 02981EE0 */ cpu->r[3] = cpu->r[10] - cpu->r[12];
|
|
/* 02981EE4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02981EE8 */ return;
|
|
}
|
|
|
|
// fn_02981EA0 @ 0x2981ea0
|
|
void Gambit_fn_02981EA0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_02981EA0: ; // 0x2981ea0
|
|
/* 02981EA0 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02981EA0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981EA0 */ cpu->r[1] = _t0;
|
|
/* 02981EA4 */ _t1 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02981EA4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02981EA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 02981EAC */ cpu->r[12] = 0x00000000u;
|
|
/* 02981EB0 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981EB0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02981EB0 */ if (_t3) goto L_02981EB4; else goto L_02981EC0;
|
|
L_02981EB4: ; // 0x2981eb4
|
|
/* 02981EB4 */ _t4 = cpu->r[3] + 0x00000024u;
|
|
/* 02981EB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02981EB8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981EBC */ _t5 = cpu->r[11] + cpu->r[0];
|
|
/* 02981EBC */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
L_02981EC0: ; // 0x2981ec0
|
|
/* 02981EC0 */ _t6 = cpu->r[12] + 0x00000018u;
|
|
/* 02981EC0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981EC4 */ cpu->r[3] = cpu->r[12] + 0x0000000Cu;
|
|
/* 02981EC8 */ cpu->r[4] = cpu->r[5] + cpu->r[0];
|
|
/* 02981ECC */ Gambit_fn_02802290(cpu);
|
|
/* 02981ED0 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981ED0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981ED4 */ _t8 = cpu->r[3] | cpu->r[3];
|
|
/* 02981ED4 */ cpu->r[10] = ~_t8;
|
|
/* 02981ED8 */ cpu->lr = cpu->r[0];
|
|
/* 02981EDC */ cpu->r[12] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 02981EE0 */ cpu->r[3] = cpu->r[10] - cpu->r[12];
|
|
/* 02981EE4 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02981EE8 */ return;
|
|
}
|
|
|
|
// fn_02981EEC @ 0x2981eec
|
|
void Gambit_fn_02981EEC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02981EEC: ; // 0x2981eec
|
|
/* 02981EEC */ cpu->r[0] = cpu->lr;
|
|
/* 02981EF0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02981EF0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981EF0 */ cpu->r[1] = _t0;
|
|
/* 02981EF4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981EF4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02981EF8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02981EF8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02981EFC */ _t3 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02981EFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02981F00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 02981F04 */ cpu->r[31] = 0x00000000u;
|
|
/* 02981F08 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981F08 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02981F08 */ if (_t5) goto L_02981F0C; else goto L_02981F18;
|
|
L_02981F0C: ; // 0x2981f0c
|
|
/* 02981F0C */ _t6 = cpu->r[3] + 0x00000024u;
|
|
/* 02981F0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981F10 */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981F14 */ _t7 = cpu->r[12] + cpu->r[0];
|
|
/* 02981F14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
L_02981F18: ; // 0x2981f18
|
|
/* 02981F18 */ _t8 = cpu->r[31] + 0x00000018u;
|
|
/* 02981F18 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02981F1C */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02981F20 */ cpu->r[4] = cpu->r[5] + cpu->r[11];
|
|
/* 02981F24 */ Gambit_fn_02801EBC(cpu);
|
|
/* 02981F28 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 02981F28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02981F2C */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 02981F30 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 02981F30 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 02981F34 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 02981F34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02981F38 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981F38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02981F3C */ cpu->lr = cpu->r[0];
|
|
/* 02981F40 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02981F44 */ return;
|
|
}
|
|
|
|
// fn_02981EF0 @ 0x2981ef0
|
|
void Gambit_fn_02981EF0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02981EF0: ; // 0x2981ef0
|
|
/* 02981EF0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02981EF0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981EF0 */ cpu->r[1] = _t0;
|
|
/* 02981EF4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981EF4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02981EF8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02981EF8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02981EFC */ _t3 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02981EFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02981F00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 02981F04 */ cpu->r[31] = 0x00000000u;
|
|
/* 02981F08 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981F08 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02981F08 */ if (_t5) goto L_02981F0C; else goto L_02981F18;
|
|
L_02981F0C: ; // 0x2981f0c
|
|
/* 02981F0C */ _t6 = cpu->r[3] + 0x00000024u;
|
|
/* 02981F0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981F10 */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981F14 */ _t7 = cpu->r[12] + cpu->r[0];
|
|
/* 02981F14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
L_02981F18: ; // 0x2981f18
|
|
/* 02981F18 */ _t8 = cpu->r[31] + 0x00000018u;
|
|
/* 02981F18 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02981F1C */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02981F20 */ cpu->r[4] = cpu->r[5] + cpu->r[11];
|
|
/* 02981F24 */ Gambit_fn_02801EBC(cpu);
|
|
/* 02981F28 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 02981F28 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02981F2C */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 02981F30 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 02981F30 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 02981F34 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 02981F34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02981F38 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981F38 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02981F3C */ cpu->lr = cpu->r[0];
|
|
/* 02981F40 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02981F44 */ return;
|
|
}
|
|
|
|
// fn_02981F48 @ 0x2981f48
|
|
void Gambit_fn_02981F48(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02981F48: ; // 0x2981f48
|
|
/* 02981F48 */ cpu->r[0] = cpu->lr;
|
|
/* 02981F4C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02981F4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981F4C */ cpu->r[1] = _t0;
|
|
/* 02981F50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981F50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02981F54 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02981F54 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02981F58 */ _t3 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02981F58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02981F5C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 02981F60 */ cpu->r[31] = 0x00000000u;
|
|
/* 02981F64 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981F64 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02981F64 */ if (_t5) goto L_02981F68; else goto L_02981F74;
|
|
L_02981F68: ; // 0x2981f68
|
|
/* 02981F68 */ _t6 = cpu->r[3] + 0x00000024u;
|
|
/* 02981F68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981F6C */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981F70 */ _t7 = cpu->r[12] + cpu->r[0];
|
|
/* 02981F70 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
L_02981F74: ; // 0x2981f74
|
|
/* 02981F74 */ _t8 = cpu->r[31] + 0x00000018u;
|
|
/* 02981F74 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02981F78 */ cpu->r[3] = cpu->r[5] + cpu->r[10];
|
|
/* 02981F7C */ Gambit_fn_02801EDC(cpu);
|
|
/* 02981F80 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 02981F80 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02981F84 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 02981F88 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 02981F88 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 02981F8C */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 02981F8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02981F90 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981F90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02981F94 */ cpu->lr = cpu->r[0];
|
|
/* 02981F98 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02981F9C */ cpu->r[3] = 0x00000001u;
|
|
/* 02981FA0 */ return;
|
|
}
|
|
|
|
// fn_02981F4C @ 0x2981f4c
|
|
void Gambit_fn_02981F4C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02981F4C: ; // 0x2981f4c
|
|
/* 02981F4C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02981F4C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981F4C */ cpu->r[1] = _t0;
|
|
/* 02981F50 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981F50 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02981F54 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02981F54 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02981F58 */ _t3 = cpu->r[3] + 0x0000001Cu;
|
|
/* 02981F58 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02981F5C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 02981F60 */ cpu->r[31] = 0x00000000u;
|
|
/* 02981F64 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02981F64 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02981F64 */ if (_t5) goto L_02981F68; else goto L_02981F74;
|
|
L_02981F68: ; // 0x2981f68
|
|
/* 02981F68 */ _t6 = cpu->r[3] + 0x00000024u;
|
|
/* 02981F68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981F6C */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02981F70 */ _t7 = cpu->r[12] + cpu->r[0];
|
|
/* 02981F70 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
L_02981F74: ; // 0x2981f74
|
|
/* 02981F74 */ _t8 = cpu->r[31] + 0x00000018u;
|
|
/* 02981F74 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02981F78 */ cpu->r[3] = cpu->r[5] + cpu->r[10];
|
|
/* 02981F7C */ Gambit_fn_02801EDC(cpu);
|
|
/* 02981F80 */ _t9 = cpu->r[31] + 0x00000014u;
|
|
/* 02981F80 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02981F84 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 02981F88 */ _t10 = cpu->r[31] + 0x00000014u;
|
|
/* 02981F88 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 02981F8C */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 02981F8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02981F90 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981F90 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02981F94 */ cpu->lr = cpu->r[0];
|
|
/* 02981F98 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02981F9C */ cpu->r[3] = 0x00000001u;
|
|
/* 02981FA0 */ return;
|
|
}
|
|
|
|
// fn_02981FA4 @ 0x2981fa4
|
|
void Gambit_fn_02981FA4(CPUState* cpu) {
|
|
uint32_t _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_0297F178: ; // 0x297f178
|
|
/* 0297F178 */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 0297F178 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0297F178 */ cpu->r[1] = _t0;
|
|
/* 0297F17C */ /* nop */
|
|
/* 0297F180 */ cpu->r[0] = cpu->lr;
|
|
/* 0297F184 */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 0297F184 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0297F188 */ cpu->r[27] = cpu->r[4];
|
|
/* 0297F18C */ _t2 = cpu->r[27] + 0x00000158u;
|
|
/* 0297F18C */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0297F190 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 0297F194 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297F194 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0297F194 */ if (_t4) goto L_0297F2D4; else goto L_0297F198;
|
|
L_0297F198: ; // 0x297f198
|
|
/* 0297F198 */ _t5 = cpu->r[3] + 0x00000014u;
|
|
/* 0297F198 */ cpu->r[6] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0297F19C */ _t6 = cpu->r[3] + 0x00000080u;
|
|
/* 0297F19C */ cpu->r[7] = rbrew_read16(cpu->mem, _t6);
|
|
/* 0297F1A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[6]);
|
|
/* 0297F1A4 */ _t7 = cpu->r[3] + 0x00000018u;
|
|
/* 0297F1A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0297F1A8 */ _t8 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0297F1A8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0297F1A8 */ if (_t9) goto L_0297F1C4; else goto L_0297F1AC;
|
|
L_0297F1AC: ; // 0x297f1ac
|
|
/* 0297F1AC */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x0000001Cu);
|
|
/* 0297F1B0 */ cpu->r[30] = cpu->r[31] + cpu->r[10];
|
|
/* 0297F1B4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0297F1B8 */ _t10 = cpu->r[1] + 0x00000010u;
|
|
/* 0297F1B8 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 0297F1BC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297F1BC */ _t12 = _t11 & 0x00000001u;
|
|
/* 0297F1BC */ if (_t12) goto L_0297F2D4; else goto L_0297F1C0;
|
|
L_0297F1C0: ; // 0x297f1c0
|
|
/* 0297F1C0 */ goto L_0297F1D8;
|
|
L_0297F1C4: ; // 0x297f1c4
|
|
/* 0297F1C4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 0297F1C8 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 0297F1CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0297F1D0 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 0297F1D0 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 0297F1D4 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297F1D4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0297F1D4 */ if (_t15) goto L_0297F2D4; else goto L_0297F1D8;
|
|
L_0297F1D8: ; // 0x297f1d8
|
|
/* 0297F1D8 */ _t16 = cpu->r[31] + 0x00000000u;
|
|
/* 0297F1D8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0297F1DC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[3]);
|
|
/* 0297F1E0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297F1E0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0297F1E0 */ if (_t18) goto L_0297F2C8; else goto L_0297F1E4;
|
|
L_0297F1E4: ; // 0x297f1e4
|
|
/* 0297F1E4 */ _t19 = cpu->r[3] + 0x00000088u;
|
|
/* 0297F1E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0297F1E8 */ _t20 = cpu->r[12] + 0x000000B4u;
|
|
/* 0297F1E8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0297F1EC */ cpu->ctr = cpu->r[5];
|
|
/* 0297F1F0 */ cpu->r[29] = cpu->r[3];
|
|
/* 0297F1F4 */ cpu->r[26] = 0x00000000u;
|
|
/* 0297F1F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0297F1FC */ cpu->r[28] = cpu->r[3];
|
|
/* 0297F1FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0297F200 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0297F200 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0297F200 */ if (_t22) goto L_0297F204; else goto L_0297F2C8;
|
|
L_0297F204: ; // 0x297f204
|
|
/* 0297F204 */ cpu->r[23] = 0x10150000u;
|
|
/* 0297F208 */ cpu->r[25] = 0x10150000u;
|
|
/* 0297F20C */ cpu->r[24] = 0x10150000u;
|
|
/* 0297F210 */ cpu->r[23] = cpu->r[23] + 0xFFFFEBC8u;
|
|
/* 0297F214 */ cpu->r[25] = cpu->r[25] + 0xFFFFECB8u;
|
|
/* 0297F218 */ cpu->r[24] = cpu->r[24] + 0xFFFFECD0u;
|
|
L_0297F21C: ; // 0x297f21c
|
|
/* 0297F21C */ _t23 = cpu->r[29] + 0x00000088u;
|
|
/* 0297F21C */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0297F220 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 0297F220 */ rbrew_write32(cpu->mem, _t24, cpu->r[24]);
|
|
/* 0297F224 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0297F224 */ rbrew_write32(cpu->mem, _t25, cpu->r[23]);
|
|
/* 0297F228 */ _t26 = cpu->r[4] + 0x000000CCu;
|
|
/* 0297F228 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0297F22C */ cpu->ctr = cpu->r[0];
|
|
/* 0297F230 */ cpu->r[4] = cpu->r[26];
|
|
/* 0297F234 */ cpu->r[3] = cpu->r[29];
|
|
/* 0297F238 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0297F23C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0297F240 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 0297F244 */ cpu->r[5] = cpu->r[3];
|
|
/* 0297F248 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297F248 */ _t28 = _t27 & 0x00000001u;
|
|
/* 0297F248 */ if (_t28) goto L_0297F26C; else goto L_0297F24C;
|
|
L_0297F24C: ; // 0x297f24c
|
|
/* 0297F24C */ _t29 = cpu->r[29] + 0x00000088u;
|
|
/* 0297F24C */ cpu->r[7] = rbrew_read32(cpu->mem, _t29);
|
|
/* 0297F250 */ _t30 = cpu->r[7] + 0x00000164u;
|
|
/* 0297F250 */ cpu->r[8] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0297F254 */ cpu->ctr = cpu->r[8];
|
|
/* 0297F258 */ _t31 = cpu->r[27] + 0x00000158u;
|
|
/* 0297F258 */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0297F25C */ cpu->r[6] = cpu->r[12] + 0x00000068u;
|
|
/* 0297F260 */ cpu->r[4] = cpu->r[26];
|
|
/* 0297F264 */ cpu->r[3] = cpu->r[29];
|
|
/* 0297F268 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0297F26C: ; // 0x297f26c
|
|
/* 0297F26C */ _t32 = cpu->r[29] + 0x00000088u;
|
|
/* 0297F26C */ cpu->r[9] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0297F270 */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 0297F270 */ rbrew_write32(cpu->mem, _t33, cpu->r[25]);
|
|
/* 0297F274 */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0297F274 */ rbrew_write32(cpu->mem, _t34, cpu->r[23]);
|
|
/* 0297F278 */ _t35 = cpu->r[9] + 0x000000CCu;
|
|
/* 0297F278 */ cpu->r[10] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0297F27C */ cpu->ctr = cpu->r[10];
|
|
/* 0297F280 */ cpu->r[3] = cpu->r[29];
|
|
/* 0297F284 */ cpu->r[4] = cpu->r[26];
|
|
/* 0297F288 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0297F28C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0297F290 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 0297F294 */ cpu->r[5] = cpu->r[3];
|
|
/* 0297F298 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297F298 */ _t37 = _t36 & 0x00000001u;
|
|
/* 0297F298 */ if (_t37) goto L_0297F2BC; else goto L_0297F29C;
|
|
L_0297F29C: ; // 0x297f29c
|
|
/* 0297F29C */ _t38 = cpu->r[29] + 0x00000088u;
|
|
/* 0297F29C */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 0297F2A0 */ _t39 = cpu->r[11] + 0x00000164u;
|
|
/* 0297F2A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 0297F2A4 */ cpu->ctr = cpu->r[12];
|
|
/* 0297F2A8 */ _t40 = cpu->r[27] + 0x00000158u;
|
|
/* 0297F2A8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0297F2AC */ cpu->r[6] = cpu->r[8] + 0x00000078u;
|
|
/* 0297F2B0 */ cpu->r[4] = cpu->r[26];
|
|
/* 0297F2B4 */ cpu->r[3] = cpu->r[29];
|
|
/* 0297F2B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0297F2BC: ; // 0x297f2bc
|
|
/* 0297F2BC */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 0297F2BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0297F2C0 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 0297F2C4 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297F2C4 */ _t42 = _t41 & 0x00000001u;
|
|
/* 0297F2C4 */ if (_t42) goto L_0297F2C8; else goto L_0297F21C;
|
|
L_0297F2C8: ; // 0x297f2c8
|
|
/* 0297F2C8 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 0297F2CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 0297F2D0 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0297F2D0 */ _t44 = _t43 & 0x00000001u;
|
|
/* 0297F2D0 */ if (_t44) goto L_0297F2D4; else goto L_0297F1D8;
|
|
L_0297F2D4: ; // 0x297f2d4
|
|
/* 0297F2D4 */ /* nop */
|
|
/* 0297F2D8 */ _t45 = cpu->r[1] + 0x00000044u;
|
|
/* 0297F2D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 0297F2DC */ cpu->lr = cpu->r[0];
|
|
/* 0297F2E0 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 0297F2E4 */ return;
|
|
L_02981FA4: ; // 0x2981fa4
|
|
/* 02981FA4 */ goto L_0297F178;
|
|
}
|
|
|
|
// fn_02981FA8 @ 0x2981fa8
|
|
void Gambit_fn_02981FA8(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_02981FA8: ; // 0x2981fa8
|
|
/* 02981FA8 */ cpu->r[0] = cpu->lr;
|
|
/* 02981FAC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02981FAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981FAC */ cpu->r[1] = _t0;
|
|
/* 02981FB0 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981FB0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02981FB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 02981FB8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02981FB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981FBC */ cpu->r[30] = cpu->r[31] + 0x000000E0u;
|
|
/* 02981FC0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981FC0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02981FC4 */ cpu->r[3] = cpu->r[30];
|
|
/* 02981FC8 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 02981FC8 */ rbrew_write32(cpu->mem, _t4, cpu->r[28]);
|
|
/* 02981FCC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981FCC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02981FD0 */ Gambit_fn_02836FFC(cpu);
|
|
/* 02981FD4 */ _t6 = cpu->r[31] + 0x00000128u;
|
|
/* 02981FD4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981FD8 */ _t7 = cpu->r[31] + 0x00000120u;
|
|
/* 02981FD8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981FDC */ cpu->r[31] = cpu->r[31] + 0x0000011Cu;
|
|
/* 02981FE0 */ cpu->r[0] = cpu->r[31] - cpu->r[29];
|
|
/* 02981FE4 */ cpu->r[3] = cpu->r[12] - cpu->r[29];
|
|
/* 02981FE8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 02981FEC */ _t8 = cpu->r[12] + 0x00000004u;
|
|
/* 02981FEC */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02981FF0 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981FF0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02981FF0 */ if (_t10) goto L_02982010; else goto L_02981FF4;
|
|
L_02981FF4: ; // 0x2981ff4
|
|
/* 02981FF4 */ Gambit_fn_02982654(cpu);
|
|
/* 02981FF8 */ _t11 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02981FF8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02981FFC */ cpu->r[3] = cpu->r[28] - cpu->r[29];
|
|
/* 02982000 */ cpu->r[0] = cpu->r[31] - cpu->r[10];
|
|
/* 02982004 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 02982008 */ _t12 = cpu->r[28] + 0x00000004u;
|
|
/* 02982008 */ cpu->r[28] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298200C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298200C */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298200C */ if (_t14) goto L_02982010; else goto L_02981FF4;
|
|
L_02982010: ; // 0x2982010
|
|
/* 02982010 */ cpu->r[3] = cpu->r[30];
|
|
/* 02982014 */ Gambit_fn_02837030(cpu);
|
|
/* 02982018 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 02982018 */ cpu->r[28] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298201C */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298201C */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02982020 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02982020 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02982024 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 02982024 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02982028 */ cpu->lr = cpu->r[0];
|
|
/* 0298202C */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 0298202C */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02982030 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02982034 */ return;
|
|
}
|
|
|
|
// fn_02981FAC @ 0x2981fac
|
|
void Gambit_fn_02981FAC(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_02981FAC: ; // 0x2981fac
|
|
/* 02981FAC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02981FAC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02981FAC */ cpu->r[1] = _t0;
|
|
/* 02981FB0 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02981FB0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02981FB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 02981FB8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02981FB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02981FBC */ cpu->r[30] = cpu->r[31] + 0x000000E0u;
|
|
/* 02981FC0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02981FC0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02981FC4 */ cpu->r[3] = cpu->r[30];
|
|
/* 02981FC8 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 02981FC8 */ rbrew_write32(cpu->mem, _t4, cpu->r[28]);
|
|
/* 02981FCC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02981FCC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02981FD0 */ Gambit_fn_02836FFC(cpu);
|
|
/* 02981FD4 */ _t6 = cpu->r[31] + 0x00000128u;
|
|
/* 02981FD4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02981FD8 */ _t7 = cpu->r[31] + 0x00000120u;
|
|
/* 02981FD8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02981FDC */ cpu->r[31] = cpu->r[31] + 0x0000011Cu;
|
|
/* 02981FE0 */ cpu->r[0] = cpu->r[31] - cpu->r[29];
|
|
/* 02981FE4 */ cpu->r[3] = cpu->r[12] - cpu->r[29];
|
|
/* 02981FE8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 02981FEC */ _t8 = cpu->r[12] + 0x00000004u;
|
|
/* 02981FEC */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02981FF0 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02981FF0 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02981FF0 */ if (_t10) goto L_02982010; else goto L_02981FF4;
|
|
L_02981FF4: ; // 0x2981ff4
|
|
/* 02981FF4 */ Gambit_fn_02982654(cpu);
|
|
/* 02981FF8 */ _t11 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02981FF8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02981FFC */ cpu->r[3] = cpu->r[28] - cpu->r[29];
|
|
/* 02982000 */ cpu->r[0] = cpu->r[31] - cpu->r[10];
|
|
/* 02982004 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 02982008 */ _t12 = cpu->r[28] + 0x00000004u;
|
|
/* 02982008 */ cpu->r[28] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298200C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298200C */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298200C */ if (_t14) goto L_02982010; else goto L_02981FF4;
|
|
L_02982010: ; // 0x2982010
|
|
/* 02982010 */ cpu->r[3] = cpu->r[30];
|
|
/* 02982014 */ Gambit_fn_02837030(cpu);
|
|
/* 02982018 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 02982018 */ cpu->r[28] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298201C */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298201C */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02982020 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02982020 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02982024 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 02982024 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02982028 */ cpu->lr = cpu->r[0];
|
|
/* 0298202C */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 0298202C */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02982030 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02982034 */ return;
|
|
}
|
|
|
|
// fn_02982038 @ 0x2982038
|
|
void Gambit_fn_02982038(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02982038: ; // 0x2982038
|
|
/* 02982038 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 02982038 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02982038 */ cpu->r[1] = _t0;
|
|
/* 0298203C */ cpu->r[0] = cpu->lr;
|
|
/* 02982040 */ /* nop */
|
|
/* 02982044 */ cpu->r[27] = cpu->r[3];
|
|
/* 02982044 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 02982048 */ cpu->r[28] = cpu->r[4];
|
|
/* 0298204C */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 0298204C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02982050 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982050 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02982050 */ if (_t3) goto L_02982290; else goto L_02982054;
|
|
L_02982054: ; // 0x2982054
|
|
/* 02982054 */ cpu->r[8] = 0x10150000u;
|
|
/* 02982058 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298205C */ cpu->r[8] = cpu->r[8] + 0xFFFFECF0u;
|
|
/* 02982060 */ cpu->r[11] = cpu->r[11] + 0xFFFFED00u;
|
|
/* 02982064 */ _t4 = cpu->r[27] + 0x0000000Cu;
|
|
/* 02982064 */ rbrew_write32(cpu->mem, _t4, cpu->r[8]);
|
|
/* 02982068 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298206C */ _t5 = cpu->r[27] + 0x00000010u;
|
|
/* 0298206C */ rbrew_write32(cpu->mem, _t5, cpu->r[11]);
|
|
/* 02982070 */ _t6 = cpu->r[3] + 0xFFFFA6B0u;
|
|
/* 02982070 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02982074 */ cpu->r[4] = cpu->r[27];
|
|
/* 02982078 */ Gambit_fn_0298FFD4(cpu);
|
|
/* 0298207C */ cpu->r[26] = 0x00000000u;
|
|
/* 02982080 */ cpu->r[3] = cpu->r[27];
|
|
/* 02982084 */ cpu->r[4] = cpu->r[26];
|
|
/* 02982088 */ Gambit_fn_0297FD44(cpu);
|
|
/* 0298208C */ _t7 = cpu->r[27] + 0x000000A4u;
|
|
/* 0298208C */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02982090 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982094 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982094 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02982094 */ if (_t9) goto L_0298209C; else goto L_02982098;
|
|
L_02982098: ; // 0x2982098
|
|
/* 02982098 */ Gambit_fn_02984BFC(cpu);
|
|
L_0298209C: ; // 0x298209c
|
|
/* 0298209C */ _t10 = cpu->r[27] + 0x00000014u;
|
|
/* 0298209C */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029820A0 */ _t11 = cpu->r[27] + 0x00000080u;
|
|
/* 029820A0 */ cpu->r[10] = rbrew_read16(cpu->mem, _t11);
|
|
/* 029820A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 029820A8 */ _t12 = cpu->r[27] + 0x00000018u;
|
|
/* 029820A8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029820AC */ _t13 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029820AC */ _t14 = _t13 & 0x00000001u;
|
|
/* 029820AC */ if (_t14) goto L_029820C8; else goto L_029820B0;
|
|
L_029820B0: ; // 0x29820b0
|
|
/* 029820B0 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x0000001Cu);
|
|
/* 029820B4 */ cpu->r[30] = cpu->r[31] + cpu->r[6];
|
|
/* 029820B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029820BC */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 029820BC */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 029820C0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029820C0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 029820C0 */ if (_t17) goto L_02982184; else goto L_029820C4;
|
|
L_029820C4: ; // 0x29820c4
|
|
/* 029820C4 */ goto L_029820DC;
|
|
L_029820C8: ; // 0x29820c8
|
|
/* 029820C8 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 029820CC */ cpu->r[30] = cpu->r[31] + cpu->r[7];
|
|
/* 029820D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029820D4 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 029820D4 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
/* 029820D8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029820D8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 029820D8 */ if (_t20) goto L_02982184; else goto L_029820DC;
|
|
L_029820DC: ; // 0x29820dc
|
|
/* 029820DC */ cpu->r[25] = 0x00000001u;
|
|
/* 029820E0 */ cpu->r[23] = 0x101D0000u;
|
|
/* 029820E4 */ cpu->r[24] = 0x101D0000u;
|
|
L_029820E8: ; // 0x29820e8
|
|
/* 029820E8 */ _t21 = cpu->r[23] + 0xFFFFE218u;
|
|
/* 029820E8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029820EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 029820F0 */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 029820F0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029820F4 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029820F4 */ _t24 = _t23 & 0x00000001u;
|
|
/* 029820F4 */ if (_t24) goto L_029820F8; else goto L_02982108;
|
|
L_029820F8: ; // 0x29820f8
|
|
/* 029820F8 */ cpu->r[9] = 0x10150000u;
|
|
/* 029820FC */ _t25 = cpu->r[23] + 0xFFFFE218u;
|
|
/* 029820FC */ rbrew_write32(cpu->mem, _t25, cpu->r[25]);
|
|
/* 02982100 */ cpu->r[9] = cpu->r[9] + 0xFFFFEC18u;
|
|
/* 02982104 */ _t26 = cpu->r[24] + 0xFFFFEF88u;
|
|
/* 02982104 */ rbrew_write32(cpu->mem, _t26, cpu->r[9]);
|
|
L_02982108: ; // 0x2982108
|
|
/* 02982108 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298210C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298210C */ _t28 = _t27 & 0x00000001u;
|
|
/* 0298210C */ if (_t28) goto L_02982140; else goto L_02982110;
|
|
L_02982110: ; // 0x2982110
|
|
/* 02982110 */ _t29 = cpu->r[29] + 0x00000088u;
|
|
/* 02982110 */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02982114 */ _t30 = cpu->r[11] + 0x0000000Cu;
|
|
/* 02982114 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02982118 */ cpu->ctr = cpu->r[12];
|
|
/* 0298211C */ cpu->r[3] = cpu->r[29];
|
|
/* 02982120 */ cpu->r[4] = cpu->r[24] + 0xFFFFEF88u;
|
|
/* 02982124 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02982128 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298212C */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298212C */ _t32 = _t31 & 0x00000001u;
|
|
/* 0298212C */ if (_t32) goto L_02982140; else goto L_02982130;
|
|
L_02982130: ; // 0x2982130
|
|
/* 02982130 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02982134 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982134 */ _t34 = _t33 & 0x00000001u;
|
|
/* 02982134 */ if (_t34) goto L_02982140; else goto L_02982138;
|
|
L_02982138: ; // 0x2982138
|
|
/* 02982138 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298213C */ Gambit_fn_029913A8(cpu);
|
|
L_02982140: ; // 0x2982140
|
|
/* 02982140 */ _t35 = cpu->r[31] + 0x0000000Au;
|
|
/* 02982140 */ cpu->r[6] = rbrew_read8(cpu->mem, _t35);
|
|
/* 02982144 */ cpu->r[8] = rbrew_rlwinm(cpu->r[6], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982144 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02982148 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982148 */ _t37 = _t36 & 0x00000001u;
|
|
/* 02982148 */ if (_t37) goto L_02982178; else goto L_0298214C;
|
|
L_0298214C: ; // 0x298214c
|
|
/* 0298214C */ _t38 = cpu->r[27] + 0x0000007Cu;
|
|
/* 0298214C */ cpu->r[9] = rbrew_read8(cpu->mem, _t38);
|
|
/* 02982150 */ cpu->r[10] = rbrew_rlwinm(cpu->r[9], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982150 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02982154 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982154 */ _t40 = _t39 & 0x00000001u;
|
|
/* 02982154 */ if (_t40) goto L_02982178; else goto L_02982158;
|
|
L_02982158: ; // 0x2982158
|
|
/* 02982158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298215C */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298215C */ _t42 = _t41 & 0x00000001u;
|
|
/* 0298215C */ if (_t42) goto L_02982178; else goto L_02982160;
|
|
L_02982160: ; // 0x2982160
|
|
/* 02982160 */ _t43 = cpu->r[29] + 0x00000088u;
|
|
/* 02982160 */ cpu->r[12] = rbrew_read32(cpu->mem, _t43);
|
|
/* 02982164 */ _t44 = cpu->r[12] + 0x0000001Cu;
|
|
/* 02982164 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 02982168 */ cpu->ctr = cpu->r[0];
|
|
/* 0298216C */ cpu->r[3] = cpu->r[29];
|
|
/* 02982170 */ cpu->r[4] = 0x00000003u;
|
|
/* 02982174 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02982178: ; // 0x2982178
|
|
/* 02982178 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 0298217C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02982180 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982180 */ _t46 = _t45 & 0x00000001u;
|
|
/* 02982180 */ if (_t46) goto L_02982184; else goto L_029820E8;
|
|
L_02982184: ; // 0x2982184
|
|
/* 02982184 */ cpu->r[3] = cpu->r[27];
|
|
/* 02982188 */ Gambit_fn_02981FA8(cpu);
|
|
/* 0298218C */ _t47 = cpu->r[27] + 0x0000007Cu;
|
|
/* 0298218C */ cpu->r[5] = rbrew_read8(cpu->mem, _t47);
|
|
/* 02982190 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982190 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02982194 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982194 */ _t49 = _t48 & 0x00000001u;
|
|
/* 02982194 */ if (_t49) goto L_02982240; else goto L_02982198;
|
|
L_02982198: ; // 0x2982198
|
|
/* 02982198 */ cpu->r[3] = cpu->r[27];
|
|
/* 0298219C */ Gambit_fn_0297FB6C(cpu);
|
|
/* 029821A0 */ _t50 = cpu->r[27] + 0x000000ACu;
|
|
/* 029821A0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t50);
|
|
/* 029821A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029821A8 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029821A8 */ _t52 = _t51 & 0x00000001u;
|
|
/* 029821A8 */ if (_t52) goto L_029821B0; else goto L_029821AC;
|
|
L_029821AC: ; // 0x29821ac
|
|
/* 029821AC */ Gambit_fn_02A00A9C(cpu);
|
|
L_029821B0: ; // 0x29821b0
|
|
/* 029821B0 */ _t53 = cpu->r[27] + 0x000000B0u;
|
|
/* 029821B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t53);
|
|
/* 029821B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029821B8 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029821B8 */ _t55 = _t54 & 0x00000001u;
|
|
/* 029821B8 */ if (_t55) goto L_029821C0; else goto L_029821BC;
|
|
L_029821BC: ; // 0x29821bc
|
|
/* 029821BC */ Gambit_fn_02993B4C(cpu);
|
|
L_029821C0: ; // 0x29821c0
|
|
/* 029821C0 */ _t56 = cpu->r[27] + 0x000000BCu;
|
|
/* 029821C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t56);
|
|
/* 029821C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029821C8 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029821C8 */ _t58 = _t57 & 0x00000001u;
|
|
/* 029821C8 */ if (_t58) goto L_029821F0; else goto L_029821CC;
|
|
L_029821CC: ; // 0x29821cc
|
|
/* 029821CC */ _t59 = cpu->r[31] + 0x00000000u;
|
|
/* 029821CC */ cpu->r[7] = rbrew_read32(cpu->mem, _t59);
|
|
/* 029821D0 */ _t60 = cpu->r[7] + 0x00000014u;
|
|
/* 029821D0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t60);
|
|
/* 029821D4 */ cpu->r[3] = cpu->r[31];
|
|
/* 029821D8 */ cpu->ctr = cpu->r[9];
|
|
/* 029821DC */ _t61 = cpu->r[31] + 0x00000018u;
|
|
/* 029821DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t61);
|
|
/* 029821E0 */ cpu->r[4] = 0x00000003u;
|
|
/* 029821E4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029821E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029821EC */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029821EC */ _t63 = _t62 & 0x00000001u;
|
|
/* 029821EC */ if (_t63) goto L_029821F0; else goto L_029821CC;
|
|
L_029821F0: ; // 0x29821f0
|
|
/* 029821F0 */ _t64 = cpu->r[27] + 0x00000018u;
|
|
/* 029821F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t64);
|
|
/* 029821F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029821F8 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029821F8 */ _t66 = _t65 & 0x00000001u;
|
|
/* 029821F8 */ if (_t66) goto L_02982230; else goto L_029821FC;
|
|
L_029821FC: ; // 0x29821fc
|
|
/* 029821FC */ _t67 = cpu->r[27] + 0x00000014u;
|
|
/* 029821FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02982200 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982204 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02982208 */ _t68 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02982208 */ cpu->r[3] = rbrew_read32(cpu->mem, _t68);
|
|
/* 0298220C */ cpu->r[4] = cpu->r[31];
|
|
/* 02982210 */ Gambit_fn_02826B90(cpu);
|
|
/* 02982214 */ _t69 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02982214 */ cpu->r[12] = rbrew_read32(cpu->mem, _t69);
|
|
/* 02982218 */ _t70 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02982218 */ cpu->r[5] = rbrew_read32(cpu->mem, _t70);
|
|
/* 0298221C */ cpu->ctr = cpu->r[5];
|
|
/* 02982220 */ _t71 = cpu->r[27] + 0x00000018u;
|
|
/* 02982220 */ cpu->r[4] = rbrew_read32(cpu->mem, _t71);
|
|
/* 02982224 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02982228 */ _t72 = cpu->r[27] + 0x00000014u;
|
|
/* 02982228 */ rbrew_write32(cpu->mem, _t72, cpu->r[26]);
|
|
/* 0298222C */ _t73 = cpu->r[27] + 0x00000018u;
|
|
/* 0298222C */ rbrew_write32(cpu->mem, _t73, cpu->r[26]);
|
|
L_02982230: ; // 0x2982230
|
|
/* 02982230 */ cpu->r[3] = cpu->r[27] + 0x0000001Cu;
|
|
/* 02982234 */ Gambit_fn_02802424(cpu);
|
|
/* 02982238 */ cpu->r[3] = cpu->r[27] + 0x00000028u;
|
|
/* 0298223C */ Gambit_fn_02802424(cpu);
|
|
L_02982240: ; // 0x2982240
|
|
/* 02982240 */ _t74 = cpu->r[27] + 0x000000DCu;
|
|
/* 02982240 */ cpu->r[3] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02982244 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982248 */ _t75 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982248 */ _t76 = _t75 & 0x00000001u;
|
|
/* 02982248 */ if (_t76) goto L_02982258; else goto L_0298224C;
|
|
L_0298224C: ; // 0x298224c
|
|
/* 0298224C */ cpu->r[4] = 0x00000003u;
|
|
/* 02982250 */ Gambit_fn_0298B6D0(cpu);
|
|
/* 02982254 */ _t77 = cpu->r[27] + 0x000000DCu;
|
|
/* 02982254 */ rbrew_write32(cpu->mem, _t77, cpu->r[26]);
|
|
L_02982258: ; // 0x2982258
|
|
/* 02982258 */ _t78 = cpu->r[27] + 0x000000D8u;
|
|
/* 02982258 */ cpu->r[12] = rbrew_read32(cpu->mem, _t78);
|
|
/* 0298225C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02982260 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982260 */ _t80 = _t79 & 0x00000001u;
|
|
/* 02982260 */ if (_t80) goto L_02982268; else goto L_02982264;
|
|
L_02982264: ; // 0x2982264
|
|
/* 02982264 */ _t81 = cpu->r[12] + 0x00000000u;
|
|
/* 02982264 */ rbrew_write32(cpu->mem, _t81, cpu->r[26]);
|
|
L_02982268: ; // 0x2982268
|
|
/* 02982268 */ cpu->r[3] = cpu->r[27] + 0x000000E0u;
|
|
/* 0298226C */ cpu->r[4] = 0x00000002u;
|
|
/* 02982270 */ Gambit_fn_02836FA8(cpu);
|
|
/* 02982274 */ cpu->r[3] = cpu->r[27];
|
|
/* 02982278 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298227C */ Gambit_fn_02821E68(cpu);
|
|
/* 02982280 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982280 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982284 */ _t82 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982284 */ _t83 = _t82 & 0x00000001u;
|
|
/* 02982284 */ if (_t83) goto L_02982290; else goto L_02982288;
|
|
L_02982288: ; // 0x2982288
|
|
/* 02982288 */ cpu->r[3] = cpu->r[27];
|
|
/* 0298228C */ Gambit_fn_02801BB0(cpu);
|
|
L_02982290: ; // 0x2982290
|
|
/* 02982290 */ /* nop */
|
|
/* 02982294 */ _t84 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02982294 */ cpu->r[0] = rbrew_read32(cpu->mem, _t84);
|
|
/* 02982298 */ cpu->lr = cpu->r[0];
|
|
/* 0298229C */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 029822A0 */ return;
|
|
}
|
|
|
|
// fn_029822A4 @ 0x29822a4
|
|
void Gambit_fn_029822A4(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_029822A4: ; // 0x29822a4
|
|
/* 029822A4 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 029822A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029822A4 */ cpu->r[1] = _t0;
|
|
/* 029822A8 */ /* nop */
|
|
/* 029822AC */ cpu->r[0] = cpu->lr;
|
|
/* 029822B0 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029822B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029822B4 */ cpu->r[26] = cpu->r[3];
|
|
/* 029822B8 */ _t2 = cpu->r[26] + 0x0000007Fu;
|
|
/* 029822B8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 029822BC */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029822BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029822C0 */ cpu->r[27] = cpu->r[4];
|
|
/* 029822C4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029822C4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 029822C4 */ if (_t4) goto L_029823E4; else goto L_029822C8;
|
|
L_029822C8: ; // 0x29822c8
|
|
/* 029822C8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029822C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029822CC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029822CC */ _t6 = _t5 & 0x00000001u;
|
|
/* 029822CC */ if (_t6) goto L_029823D0; else goto L_029822D0;
|
|
L_029822D0: ; // 0x29822d0
|
|
/* 029822D0 */ _t7 = cpu->r[26] + 0x000000A4u;
|
|
/* 029822D0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029822D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029822D8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029822D8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029822D8 */ if (_t9) goto L_029823EC; else goto L_029822DC;
|
|
L_029822DC: ; // 0x29822dc
|
|
/* 029822DC */ _t10 = cpu->r[26] + 0x000000A8u;
|
|
/* 029822DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029822E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 029822E4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029822E4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029822E4 */ if (_t12) goto L_0298230C; else goto L_029822E8;
|
|
L_029822E8: ; // 0x29822e8
|
|
/* 029822E8 */ cpu->r[3] = cpu->r[26];
|
|
/* 029822EC */ cpu->r[4] = cpu->r[27];
|
|
/* 029822F0 */ Gambit_fn_0297FE38(cpu);
|
|
/* 029822F4 */ _t13 = cpu->r[26] + 0x000000A8u;
|
|
/* 029822F4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029822F8 */ cpu->r[5] = cpu->r[27];
|
|
/* 029822FC */ cpu->r[3] = cpu->r[26];
|
|
/* 02982300 */ Gambit_fn_029801B8(cpu);
|
|
/* 02982304 */ _t14 = cpu->r[26] + 0x0000007Fu;
|
|
/* 02982304 */ cpu->r[0] = rbrew_read8(cpu->mem, _t14);
|
|
/* 02982308 */ goto L_02982400;
|
|
L_0298230C: ; // 0x298230c
|
|
/* 0298230C */ _t15 = cpu->r[26] + 0x00000028u;
|
|
/* 0298230C */ cpu->r[11] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02982310 */ _t16 = cpu->r[26] + 0x00000030u;
|
|
/* 02982310 */ cpu->r[25] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02982314 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02982318 */ cpu->r[24] = cpu->r[25] + cpu->r[10];
|
|
/* 0298231C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[25], cpu->r[24]);
|
|
/* 02982320 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982320 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02982320 */ if (_t18) goto L_029823C0; else goto L_02982324;
|
|
L_02982324: ; // 0x2982324
|
|
/* 02982324 */ cpu->r[30] = 0x00000001u;
|
|
/* 02982328 */ cpu->r[29] = 0x101D0000u;
|
|
/* 0298232C */ cpu->r[28] = 0x101D0000u;
|
|
L_02982330: ; // 0x2982330
|
|
/* 02982330 */ _t19 = cpu->r[29] + 0xFFFFE218u;
|
|
/* 02982330 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02982334 */ _t20 = cpu->r[25] + 0x00000000u;
|
|
/* 02982334 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02982338 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298233C */ _t21 = cpu->r[12] + 0x00000000u;
|
|
/* 0298233C */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02982340 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982340 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02982340 */ if (_t23) goto L_02982344; else goto L_02982354;
|
|
L_02982344: ; // 0x2982344
|
|
/* 02982344 */ cpu->r[8] = 0x10150000u;
|
|
/* 02982348 */ _t24 = cpu->r[29] + 0xFFFFE218u;
|
|
/* 02982348 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 0298234C */ cpu->r[8] = cpu->r[8] + 0xFFFFEC18u;
|
|
/* 02982350 */ _t25 = cpu->r[28] + 0xFFFFEF88u;
|
|
/* 02982350 */ rbrew_write32(cpu->mem, _t25, cpu->r[8]);
|
|
L_02982354: ; // 0x2982354
|
|
/* 02982354 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02982358 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982358 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02982358 */ if (_t27) goto L_029823A0; else goto L_0298235C;
|
|
L_0298235C: ; // 0x298235c
|
|
/* 0298235C */ _t28 = cpu->r[31] + 0x00000088u;
|
|
/* 0298235C */ cpu->r[9] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02982360 */ _t29 = cpu->r[9] + 0x0000000Cu;
|
|
/* 02982360 */ cpu->r[10] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02982364 */ cpu->ctr = cpu->r[10];
|
|
/* 02982368 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298236C */ cpu->r[4] = cpu->r[28] + 0xFFFFEF88u;
|
|
/* 02982370 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02982374 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982378 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982378 */ _t31 = _t30 & 0x00000001u;
|
|
/* 02982378 */ if (_t31) goto L_029823A0; else goto L_0298237C;
|
|
L_0298237C: ; // 0x298237c
|
|
/* 0298237C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02982380 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982380 */ _t33 = _t32 & 0x00000001u;
|
|
/* 02982380 */ if (_t33) goto L_029823A0; else goto L_02982384;
|
|
L_02982384: ; // 0x2982384
|
|
/* 02982384 */ _t34 = cpu->r[25] + 0x00000000u;
|
|
/* 02982384 */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02982388 */ _t35 = cpu->r[26] + 0x000000A4u;
|
|
/* 02982388 */ cpu->r[3] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298238C */ cpu->r[5] = cpu->r[31];
|
|
/* 02982390 */ _t36 = cpu->r[12] + 0x00000008u;
|
|
/* 02982390 */ cpu->r[4] = rbrew_read16(cpu->mem, _t36);
|
|
/* 02982394 */ cpu->r[7] = cpu->r[27];
|
|
/* 02982398 */ cpu->r[6] = 0x00000001u;
|
|
/* 0298239C */ Gambit_fn_029847A4(cpu);
|
|
L_029823A0: ; // 0x29823a0
|
|
/* 029823A0 */ _t37 = cpu->r[25] + 0x00000000u;
|
|
/* 029823A0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t37);
|
|
/* 029823A4 */ cpu->r[5] = cpu->r[27];
|
|
/* 029823A8 */ cpu->r[3] = cpu->r[26];
|
|
/* 029823AC */ Gambit_fn_0297FF18(cpu);
|
|
/* 029823B0 */ cpu->r[25] = cpu->r[25] + 0x00000004u;
|
|
/* 029823B4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[25], cpu->r[24]);
|
|
/* 029823B8 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029823B8 */ _t39 = _t38 & 0x00000001u;
|
|
/* 029823B8 */ if (_t39) goto L_029823BC; else goto L_02982330;
|
|
L_029823BC: ; // 0x29823bc
|
|
/* 029823BC */ _t40 = cpu->r[26] + 0x000000A4u;
|
|
/* 029823BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t40);
|
|
L_029823C0: ; // 0x29823c0
|
|
/* 029823C0 */ cpu->r[4] = cpu->r[26];
|
|
/* 029823C4 */ Gambit_fn_029848B0(cpu);
|
|
/* 029823C8 */ _t41 = cpu->r[26] + 0x0000007Fu;
|
|
/* 029823C8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t41);
|
|
/* 029823CC */ goto L_02982400;
|
|
L_029823D0: ; // 0x29823d0
|
|
/* 029823D0 */ cpu->r[3] = cpu->r[26];
|
|
/* 029823D4 */ cpu->r[4] = cpu->r[27];
|
|
/* 029823D8 */ Gambit_fn_0297FE38(cpu);
|
|
/* 029823DC */ _t42 = cpu->r[26] + 0x0000007Fu;
|
|
/* 029823DC */ cpu->r[0] = rbrew_read8(cpu->mem, _t42);
|
|
/* 029823E0 */ goto L_02982400;
|
|
L_029823E4: ; // 0x29823e4
|
|
/* 029823E4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029823E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 029823E8 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029823E8 */ _t44 = _t43 & 0x00000001u;
|
|
/* 029823E8 */ if (_t44) goto L_02982400; else goto L_029823EC;
|
|
L_029823EC: ; // 0x29823ec
|
|
/* 029823EC */ _t45 = cpu->r[26] + 0x000000A8u;
|
|
/* 029823EC */ cpu->r[4] = rbrew_read32(cpu->mem, _t45);
|
|
/* 029823F0 */ cpu->r[5] = cpu->r[27];
|
|
/* 029823F4 */ cpu->r[3] = cpu->r[26];
|
|
/* 029823F8 */ Gambit_fn_029801B8(cpu);
|
|
/* 029823FC */ _t46 = cpu->r[26] + 0x0000007Fu;
|
|
/* 029823FC */ cpu->r[0] = rbrew_read8(cpu->mem, _t46);
|
|
L_02982400: ; // 0x2982400
|
|
/* 02982400 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982400 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982404 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982404 */ _t48 = _t47 & 0x00000001u;
|
|
/* 02982404 */ if (_t48) goto L_02982414; else goto L_02982408;
|
|
L_02982408: ; // 0x2982408
|
|
/* 02982408 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298240C */ cpu->r[4] = cpu->r[27];
|
|
/* 02982410 */ Gambit_fn_02981D3C(cpu);
|
|
L_02982414: ; // 0x2982414
|
|
/* 02982414 */ /* nop */
|
|
/* 02982418 */ _t49 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02982418 */ cpu->r[0] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298241C */ cpu->lr = cpu->r[0];
|
|
/* 02982420 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02982424 */ return;
|
|
}
|
|
|
|
// fn_02982428 @ 0x2982428
|
|
void Gambit_fn_02982428(CPUState* cpu) {
|
|
uint32_t _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_02982428: ; // 0x2982428
|
|
/* 02982428 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 02982428 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02982428 */ cpu->r[1] = _t0;
|
|
/* 0298242C */ /* nop */
|
|
/* 02982430 */ cpu->r[0] = cpu->lr;
|
|
/* 02982434 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 02982434 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02982438 */ _t2 = cpu->r[3] + 0x00000080u;
|
|
/* 02982438 */ cpu->r[6] = rbrew_read16(cpu->mem, _t2);
|
|
/* 0298243C */ _t3 = cpu->r[3] + 0x00000014u;
|
|
/* 0298243C */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02982440 */ cpu->r[27] = cpu->r[4];
|
|
/* 02982444 */ cpu->r[28] = cpu->r[5];
|
|
/* 02982448 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[0]);
|
|
/* 0298244C */ _t4 = cpu->r[3] + 0x00000018u;
|
|
/* 0298244C */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02982450 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02982450 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02982450 */ if (_t6) goto L_0298246C; else goto L_02982454;
|
|
L_02982454: ; // 0x2982454
|
|
/* 02982454 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 02982458 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 0298245C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02982460 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 02982460 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 02982464 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982464 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02982464 */ if (_t9) goto L_029824F8; else goto L_02982468;
|
|
L_02982468: ; // 0x2982468
|
|
/* 02982468 */ goto L_02982480;
|
|
L_0298246C: ; // 0x298246c
|
|
/* 0298246C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02982470 */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 02982474 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02982478 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02982478 */ rbrew_write32(cpu->mem, _t10, cpu->r[30]);
|
|
/* 0298247C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298247C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298247C */ if (_t12) goto L_029824F8; else goto L_02982480;
|
|
L_02982480: ; // 0x2982480
|
|
/* 02982480 */ cpu->r[26] = 0x00000001u;
|
|
/* 02982484 */ cpu->r[25] = 0x101D0000u;
|
|
/* 02982488 */ cpu->r[24] = 0x101D0000u;
|
|
L_0298248C: ; // 0x298248c
|
|
/* 0298248C */ _t13 = cpu->r[25] + 0xFFFFE218u;
|
|
/* 0298248C */ cpu->r[7] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02982490 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02982494 */ _t14 = cpu->r[31] + 0x00000000u;
|
|
/* 02982494 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02982498 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982498 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02982498 */ if (_t16) goto L_0298249C; else goto L_029824AC;
|
|
L_0298249C: ; // 0x298249c
|
|
/* 0298249C */ cpu->r[8] = 0x10150000u;
|
|
/* 029824A0 */ _t17 = cpu->r[25] + 0xFFFFE218u;
|
|
/* 029824A0 */ rbrew_write32(cpu->mem, _t17, cpu->r[26]);
|
|
/* 029824A4 */ cpu->r[8] = cpu->r[8] + 0xFFFFEC18u;
|
|
/* 029824A8 */ _t18 = cpu->r[24] + 0xFFFFEF88u;
|
|
/* 029824A8 */ rbrew_write32(cpu->mem, _t18, cpu->r[8]);
|
|
L_029824AC: ; // 0x29824ac
|
|
/* 029824AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 029824B0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029824B0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 029824B0 */ if (_t20) goto L_029824EC; else goto L_029824B4;
|
|
L_029824B4: ; // 0x29824b4
|
|
/* 029824B4 */ _t21 = cpu->r[29] + 0x00000088u;
|
|
/* 029824B4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029824B8 */ _t22 = cpu->r[9] + 0x0000000Cu;
|
|
/* 029824B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029824BC */ cpu->ctr = cpu->r[0];
|
|
/* 029824C0 */ cpu->r[3] = cpu->r[29];
|
|
/* 029824C4 */ cpu->r[4] = cpu->r[24] + 0xFFFFEF88u;
|
|
/* 029824C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029824CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029824D0 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029824D0 */ _t24 = _t23 & 0x00000001u;
|
|
/* 029824D0 */ if (_t24) goto L_029824EC; else goto L_029824D4;
|
|
L_029824D4: ; // 0x29824d4
|
|
/* 029824D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 029824D8 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029824D8 */ _t26 = _t25 & 0x00000001u;
|
|
/* 029824D8 */ if (_t26) goto L_029824EC; else goto L_029824DC;
|
|
L_029824DC: ; // 0x29824dc
|
|
/* 029824DC */ cpu->r[5] = cpu->r[28];
|
|
/* 029824E0 */ cpu->r[4] = cpu->r[27];
|
|
/* 029824E4 */ cpu->r[3] = cpu->r[29];
|
|
/* 029824E8 */ Gambit_fn_029912E4(cpu);
|
|
L_029824EC: ; // 0x29824ec
|
|
/* 029824EC */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029824F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029824F4 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029824F4 */ _t28 = _t27 & 0x00000001u;
|
|
/* 029824F4 */ if (_t28) goto L_029824F8; else goto L_0298248C;
|
|
L_029824F8: ; // 0x29824f8
|
|
/* 029824F8 */ /* nop */
|
|
/* 029824FC */ _t29 = cpu->r[1] + 0x00000034u;
|
|
/* 029824FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02982500 */ cpu->lr = cpu->r[0];
|
|
/* 02982504 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 02982508 */ return;
|
|
}
|
|
|
|
// fn_0298250C @ 0x298250c
|
|
void Gambit_fn_0298250C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_0298250C: ; // 0x298250c
|
|
/* 0298250C */ cpu->r[0] = cpu->lr;
|
|
/* 02982510 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02982510 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02982510 */ cpu->r[1] = _t0;
|
|
/* 02982514 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982514 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02982518 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02982518 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298251C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298251C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02982520 */ cpu->r[30] = cpu->r[3];
|
|
/* 02982524 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02982524 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02982528 */ cpu->r[29] = cpu->r[30] + 0x000000E0u;
|
|
/* 0298252C */ cpu->r[3] = cpu->r[29];
|
|
/* 02982530 */ cpu->r[31] = cpu->r[4];
|
|
/* 02982534 */ Gambit_fn_02836FFC(cpu);
|
|
/* 02982538 */ _t5 = cpu->r[30] + 0x00000128u;
|
|
/* 02982538 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298253C */ cpu->r[3] = cpu->r[31] + cpu->r[0];
|
|
/* 02982540 */ Gambit_fn_02801EDC(cpu);
|
|
/* 02982544 */ _t6 = cpu->r[30] + 0x00000124u;
|
|
/* 02982544 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02982548 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 0298254C */ cpu->r[3] = cpu->r[29];
|
|
/* 02982550 */ _t7 = cpu->r[30] + 0x00000124u;
|
|
/* 02982550 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 02982554 */ Gambit_fn_02837030(cpu);
|
|
/* 02982558 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982558 */ cpu->r[29] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298255C */ _t9 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298255C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02982560 */ _t10 = cpu->r[1] + 0x00000010u;
|
|
/* 02982560 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02982564 */ cpu->lr = cpu->r[0];
|
|
/* 02982568 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 02982568 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298256C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02982570 */ return;
|
|
}
|
|
|
|
// fn_02982510 @ 0x2982510
|
|
void Gambit_fn_02982510(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_02982510: ; // 0x2982510
|
|
/* 02982510 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02982510 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02982510 */ cpu->r[1] = _t0;
|
|
/* 02982514 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982514 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02982518 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02982518 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298251C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298251C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02982520 */ cpu->r[30] = cpu->r[3];
|
|
/* 02982524 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02982524 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02982528 */ cpu->r[29] = cpu->r[30] + 0x000000E0u;
|
|
/* 0298252C */ cpu->r[3] = cpu->r[29];
|
|
/* 02982530 */ cpu->r[31] = cpu->r[4];
|
|
/* 02982534 */ Gambit_fn_02836FFC(cpu);
|
|
/* 02982538 */ _t5 = cpu->r[30] + 0x00000128u;
|
|
/* 02982538 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298253C */ cpu->r[3] = cpu->r[31] + cpu->r[0];
|
|
/* 02982540 */ Gambit_fn_02801EDC(cpu);
|
|
/* 02982544 */ _t6 = cpu->r[30] + 0x00000124u;
|
|
/* 02982544 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02982548 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 0298254C */ cpu->r[3] = cpu->r[29];
|
|
/* 02982550 */ _t7 = cpu->r[30] + 0x00000124u;
|
|
/* 02982550 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 02982554 */ Gambit_fn_02837030(cpu);
|
|
/* 02982558 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982558 */ cpu->r[29] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298255C */ _t9 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298255C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02982560 */ _t10 = cpu->r[1] + 0x00000010u;
|
|
/* 02982560 */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02982564 */ cpu->lr = cpu->r[0];
|
|
/* 02982568 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 02982568 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298256C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02982570 */ return;
|
|
}
|
|
|
|
// fn_02982574 @ 0x2982574
|
|
void Gambit_fn_02982574(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02982574: ; // 0x2982574
|
|
/* 02982574 */ cpu->r[0] = cpu->lr;
|
|
/* 02982578 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 02982578 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 0298257C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982580 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02982580 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 02982580 */ cpu->r[1] = _t1;
|
|
/* 02982584 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982584 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02982584 */ if (_t3) goto L_02982588; else goto L_02982598;
|
|
L_02982588: ; // 0x2982588
|
|
/* 02982588 */ cpu->r[3] = 0x00000014u;
|
|
/* 0298258C */ Gambit_fn_02801A78(cpu);
|
|
/* 02982590 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982594 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982594 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02982594 */ if (_t5) goto L_029825C0; else goto L_02982598;
|
|
L_02982598: ; // 0x2982598
|
|
/* 02982598 */ cpu->r[0] = 0x00000040u;
|
|
/* 0298259C */ cpu->r[11] = 0x00000001u;
|
|
/* 029825A0 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 029825A0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 029825A4 */ cpu->r[9] = 0x00000004u;
|
|
/* 029825A8 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029825A8 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[11]);
|
|
/* 029825AC */ cpu->r[12] = 0x00000000u;
|
|
/* 029825B0 */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 029825B0 */ rbrew_write32(cpu->mem, _t8, cpu->r[9]);
|
|
/* 029825B4 */ _t9 = cpu->r[3] + 0x00000010u;
|
|
/* 029825B4 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 029825B8 */ _t10 = cpu->r[3] + 0x00000004u;
|
|
/* 029825B8 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 029825BC */ _t11 = cpu->r[3] + 0x0000000Du;
|
|
/* 029825BC */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[11]);
|
|
L_029825C0: ; // 0x29825c0
|
|
/* 029825C0 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029825C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029825C4 */ cpu->lr = cpu->r[0];
|
|
/* 029825C8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 029825CC */ return;
|
|
}
|
|
|
|
// fn_02982580 @ 0x2982580
|
|
void Gambit_fn_02982580(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_02982580: ; // 0x2982580
|
|
/* 02982580 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02982580 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02982580 */ cpu->r[1] = _t0;
|
|
/* 02982584 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982584 */ _t2 = _t1 & 0x00000001u;
|
|
/* 02982584 */ if (_t2) goto L_02982588; else goto L_02982598;
|
|
L_02982588: ; // 0x2982588
|
|
/* 02982588 */ cpu->r[3] = 0x00000014u;
|
|
/* 0298258C */ Gambit_fn_02801A78(cpu);
|
|
/* 02982590 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982594 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982594 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02982594 */ if (_t4) goto L_029825C0; else goto L_02982598;
|
|
L_02982598: ; // 0x2982598
|
|
/* 02982598 */ cpu->r[0] = 0x00000040u;
|
|
/* 0298259C */ cpu->r[11] = 0x00000001u;
|
|
/* 029825A0 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 029825A0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029825A4 */ cpu->r[9] = 0x00000004u;
|
|
/* 029825A8 */ _t6 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029825A8 */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[11]);
|
|
/* 029825AC */ cpu->r[12] = 0x00000000u;
|
|
/* 029825B0 */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 029825B0 */ rbrew_write32(cpu->mem, _t7, cpu->r[9]);
|
|
/* 029825B4 */ _t8 = cpu->r[3] + 0x00000010u;
|
|
/* 029825B4 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 029825B8 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 029825B8 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 029825BC */ _t10 = cpu->r[3] + 0x0000000Du;
|
|
/* 029825BC */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[11]);
|
|
L_029825C0: ; // 0x29825c0
|
|
/* 029825C0 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029825C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029825C4 */ cpu->lr = cpu->r[0];
|
|
/* 029825C8 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 029825CC */ return;
|
|
}
|
|
|
|
// fn_029825D0 @ 0x29825d0
|
|
void Gambit_fn_029825D0(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_029825D0: ; // 0x29825d0
|
|
/* 029825D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029825D4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029825D4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 029825D4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029825D4 */ goto L_029825D8;
|
|
L_029825D8: ; // 0x29825d8
|
|
/* 029825D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029825D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029825DC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029825DC */ _t19 = _t18 & 0x00000001u;
|
|
/* 029825DC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029825DC */ goto L_029825E0;
|
|
L_029825E0: ; // 0x29825e0
|
|
/* 029825E0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_029825E4 @ 0x29825e4
|
|
void Gambit_fn_029825E4(CPUState* cpu) {
|
|
L_029825E4: ; // 0x29825e4
|
|
/* 029825E4 */ return;
|
|
}
|
|
|
|
// fn_029825E8 @ 0x29825e8
|
|
void Gambit_fn_029825E8(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_029825E8: ; // 0x29825e8
|
|
/* 029825E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029825EC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029825EC */ _t17 = _t16 & 0x00000001u;
|
|
/* 029825EC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029825EC */ goto L_029825F0;
|
|
L_029825F0: ; // 0x29825f0
|
|
/* 029825F0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029825F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029825F4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029825F4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 029825F4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029825F4 */ goto L_029825F8;
|
|
L_029825F8: ; // 0x29825f8
|
|
/* 029825F8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_029825FC @ 0x29825fc
|
|
void Gambit_fn_029825FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_029825FC: ; // 0x29825fc
|
|
/* 029825FC */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 029825FC */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02982600 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 02982600 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02982604 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 02982608 */ cpu->r[11] = 0x10110000u;
|
|
/* 0298260C */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 0298260C */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 02982610 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 02982610 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 02982614 */ return;
|
|
}
|
|
|
|
// fn_02982618 @ 0x2982618
|
|
void Gambit_fn_02982618(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_02982618: ; // 0x2982618
|
|
/* 02982618 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298261C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298261C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298261C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298261C */ goto L_02982620;
|
|
L_02982620: ; // 0x2982620
|
|
/* 02982620 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982620 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982624 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982624 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02982624 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02982624 */ goto L_02982628;
|
|
L_02982628: ; // 0x2982628
|
|
/* 02982628 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298262C @ 0x298262c
|
|
void Gambit_fn_0298262C(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_0298262C: ; // 0x298262c
|
|
/* 0298262C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982630 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982630 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02982630 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02982630 */ goto L_02982634;
|
|
L_02982634: ; // 0x2982634
|
|
/* 02982634 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982634 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982638 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982638 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02982638 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02982638 */ goto L_0298263C;
|
|
L_0298263C: ; // 0x298263c
|
|
/* 0298263C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_02982640 @ 0x2982640
|
|
void Gambit_fn_02982640(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_02982640: ; // 0x2982640
|
|
/* 02982640 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982644 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982644 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02982644 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02982644 */ goto L_02982648;
|
|
L_02982648: ; // 0x2982648
|
|
/* 02982648 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982648 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298264C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298264C */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298264C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298264C */ goto L_02982650;
|
|
L_02982650: ; // 0x2982650
|
|
/* 02982650 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_02982654 @ 0x2982654
|
|
void Gambit_fn_02982654(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_02982654: ; // 0x2982654
|
|
/* 02982654 */ cpu->r[0] = cpu->lr;
|
|
/* 02982658 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02982658 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02982658 */ cpu->r[1] = _t0;
|
|
/* 0298265C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298265C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02982660 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02982660 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02982664 */ cpu->r[31] = cpu->r[3];
|
|
/* 02982668 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02982668 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298266C */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 0298266C */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02982670 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02982674 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982674 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02982674 */ if (_t6) goto L_029826CC; else goto L_02982678;
|
|
L_02982678: ; // 0x2982678
|
|
/* 02982678 */ cpu->r[30] = cpu->r[9] + 0x000000E0u;
|
|
/* 0298267C */ cpu->r[3] = cpu->r[30];
|
|
/* 02982680 */ Gambit_fn_02836FFC(cpu);
|
|
/* 02982684 */ _t7 = cpu->r[31] + 0x00000010u;
|
|
/* 02982684 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02982688 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298268C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298268C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298268C */ if (_t9) goto L_02982690; else goto L_0298269C;
|
|
L_02982690: ; // 0x2982690
|
|
/* 02982690 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02982690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02982694 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982698 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982698 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02982698 */ if (_t12) goto L_029826C4; else goto L_0298269C;
|
|
L_0298269C: ; // 0x298269c
|
|
/* 0298269C */ _t13 = cpu->r[31] + 0x00000008u;
|
|
/* 0298269C */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029826A0 */ cpu->r[4] = cpu->r[31];
|
|
/* 029826A4 */ Gambit_fn_0298250C(cpu);
|
|
/* 029826A8 */ _t14 = cpu->r[31] + 0x00000014u;
|
|
/* 029826A8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029826AC */ cpu->r[10] = 0x00000000u;
|
|
/* 029826B0 */ _t15 = cpu->r[31] + 0x00000008u;
|
|
/* 029826B0 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 029826B4 */ _t16 = cpu->r[11] + 0x0000001Cu;
|
|
/* 029826B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029826B8 */ cpu->ctr = cpu->r[12];
|
|
/* 029826BC */ cpu->r[3] = cpu->r[31];
|
|
/* 029826C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_029826C4: ; // 0x29826c4
|
|
/* 029826C4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029826C8 */ Gambit_fn_02837030(cpu);
|
|
L_029826CC: ; // 0x29826cc
|
|
/* 029826CC */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 029826CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029826D0 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 029826D0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 029826D4 */ cpu->lr = cpu->r[0];
|
|
/* 029826D8 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029826D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029826DC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029826E0 */ return;
|
|
}
|
|
|
|
// fn_02982658 @ 0x2982658
|
|
void Gambit_fn_02982658(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_02982658: ; // 0x2982658
|
|
/* 02982658 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02982658 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02982658 */ cpu->r[1] = _t0;
|
|
/* 0298265C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298265C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02982660 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02982660 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02982664 */ cpu->r[31] = cpu->r[3];
|
|
/* 02982668 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02982668 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298266C */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 0298266C */ cpu->r[9] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02982670 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02982674 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982674 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02982674 */ if (_t6) goto L_029826CC; else goto L_02982678;
|
|
L_02982678: ; // 0x2982678
|
|
/* 02982678 */ cpu->r[30] = cpu->r[9] + 0x000000E0u;
|
|
/* 0298267C */ cpu->r[3] = cpu->r[30];
|
|
/* 02982680 */ Gambit_fn_02836FFC(cpu);
|
|
/* 02982684 */ _t7 = cpu->r[31] + 0x00000010u;
|
|
/* 02982684 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02982688 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298268C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298268C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298268C */ if (_t9) goto L_02982690; else goto L_0298269C;
|
|
L_02982690: ; // 0x2982690
|
|
/* 02982690 */ _t10 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02982690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02982694 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982698 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982698 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02982698 */ if (_t12) goto L_029826C4; else goto L_0298269C;
|
|
L_0298269C: ; // 0x298269c
|
|
/* 0298269C */ _t13 = cpu->r[31] + 0x00000008u;
|
|
/* 0298269C */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029826A0 */ cpu->r[4] = cpu->r[31];
|
|
/* 029826A4 */ Gambit_fn_0298250C(cpu);
|
|
/* 029826A8 */ _t14 = cpu->r[31] + 0x00000014u;
|
|
/* 029826A8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029826AC */ cpu->r[10] = 0x00000000u;
|
|
/* 029826B0 */ _t15 = cpu->r[31] + 0x00000008u;
|
|
/* 029826B0 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 029826B4 */ _t16 = cpu->r[11] + 0x0000001Cu;
|
|
/* 029826B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029826B8 */ cpu->ctr = cpu->r[12];
|
|
/* 029826BC */ cpu->r[3] = cpu->r[31];
|
|
/* 029826C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_029826C4: ; // 0x29826c4
|
|
/* 029826C4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029826C8 */ Gambit_fn_02837030(cpu);
|
|
L_029826CC: ; // 0x29826cc
|
|
/* 029826CC */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 029826CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029826D0 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 029826D0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 029826D4 */ cpu->lr = cpu->r[0];
|
|
/* 029826D8 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029826D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029826DC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029826E0 */ return;
|
|
}
|
|
|
|
// fn_029826E4 @ 0x29826e4
|
|
void Gambit_fn_029826E4(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_029826E4: ; // 0x29826e4
|
|
/* 029826E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029826E8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029826E8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 029826E8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029826E8 */ goto L_029826EC;
|
|
L_029826EC: ; // 0x29826ec
|
|
/* 029826EC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029826EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029826F0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029826F0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 029826F0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029826F0 */ goto L_029826F4;
|
|
L_029826F4: ; // 0x29826f4
|
|
/* 029826F4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_029826F8 @ 0x29826f8
|
|
void Gambit_fn_029826F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_029826F8: ; // 0x29826f8
|
|
/* 029826F8 */ cpu->r[0] = cpu->lr;
|
|
/* 029826FC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029826FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029826FC */ cpu->r[1] = _t0;
|
|
/* 02982700 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982700 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02982704 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02982704 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02982708 */ cpu->r[30] = cpu->r[3];
|
|
/* 02982708 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298270C */ cpu->r[31] = cpu->r[4];
|
|
/* 02982710 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02982710 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02982714 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982714 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02982714 */ if (_t5) goto L_02982754; else goto L_02982718;
|
|
L_02982718: ; // 0x2982718
|
|
/* 02982718 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298271C */ cpu->r[12] = 0x10150000u;
|
|
/* 02982720 */ cpu->r[0] = cpu->r[0] + 0xFFFFED28u;
|
|
/* 02982724 */ cpu->r[12] = cpu->r[12] + 0xFFFFED48u;
|
|
/* 02982728 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 02982728 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298272C */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 02982730 */ _t7 = cpu->r[30] + 0x00000018u;
|
|
/* 02982730 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 02982734 */ Gambit_fn_02982654(cpu);
|
|
/* 02982738 */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 0298273C */ cpu->r[4] = 0x00000000u;
|
|
/* 02982740 */ Gambit_fn_029826E4(cpu);
|
|
/* 02982744 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982744 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982748 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982748 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02982748 */ if (_t9) goto L_02982754; else goto L_0298274C;
|
|
L_0298274C: ; // 0x298274c
|
|
/* 0298274C */ cpu->r[3] = cpu->r[30];
|
|
/* 02982750 */ Gambit_fn_02801BB0(cpu);
|
|
L_02982754: ; // 0x2982754
|
|
/* 02982754 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 02982754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02982758 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 02982758 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298275C */ cpu->lr = cpu->r[0];
|
|
/* 02982760 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982760 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02982764 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02982768 */ return;
|
|
}
|
|
|
|
// fn_029826FC @ 0x29826fc
|
|
void Gambit_fn_029826FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_029826FC: ; // 0x29826fc
|
|
/* 029826FC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029826FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029826FC */ cpu->r[1] = _t0;
|
|
/* 02982700 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982700 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02982704 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02982704 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02982708 */ cpu->r[30] = cpu->r[3];
|
|
/* 02982708 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298270C */ cpu->r[31] = cpu->r[4];
|
|
/* 02982710 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02982710 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02982714 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982714 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02982714 */ if (_t5) goto L_02982754; else goto L_02982718;
|
|
L_02982718: ; // 0x2982718
|
|
/* 02982718 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298271C */ cpu->r[12] = 0x10150000u;
|
|
/* 02982720 */ cpu->r[0] = cpu->r[0] + 0xFFFFED28u;
|
|
/* 02982724 */ cpu->r[12] = cpu->r[12] + 0xFFFFED48u;
|
|
/* 02982728 */ _t6 = cpu->r[30] + 0x0000001Cu;
|
|
/* 02982728 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298272C */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 02982730 */ _t7 = cpu->r[30] + 0x00000018u;
|
|
/* 02982730 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 02982734 */ Gambit_fn_02982654(cpu);
|
|
/* 02982738 */ cpu->r[3] = cpu->r[30] + 0x00000004u;
|
|
/* 0298273C */ cpu->r[4] = 0x00000000u;
|
|
/* 02982740 */ Gambit_fn_029826E4(cpu);
|
|
/* 02982744 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982744 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982748 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982748 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02982748 */ if (_t9) goto L_02982754; else goto L_0298274C;
|
|
L_0298274C: ; // 0x298274c
|
|
/* 0298274C */ cpu->r[3] = cpu->r[30];
|
|
/* 02982750 */ Gambit_fn_02801BB0(cpu);
|
|
L_02982754: ; // 0x2982754
|
|
/* 02982754 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 02982754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02982758 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 02982758 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298275C */ cpu->lr = cpu->r[0];
|
|
/* 02982760 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982760 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02982764 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02982768 */ return;
|
|
}
|
|
|
|
// fn_0298276C @ 0x298276c
|
|
void Gambit_fn_0298276C(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_0298276C: ; // 0x298276c
|
|
/* 0298276C */ cpu->r[3] = cpu->r[3] + 0xFFFFFFFCu;
|
|
/* 02982770 */ goto L_02982788;
|
|
L_02982788: ; // 0x2982788
|
|
/* 02982788 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
/* 0298278C */ _t0 = cpu->r[3] + 0x00000002u;
|
|
/* 0298278C */ rbrew_write16(cpu->mem, _t0, (uint16_t)cpu->r[12]);
|
|
/* 02982790 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 02982790 */ rbrew_write16(cpu->mem, _t1, (uint16_t)cpu->r[12]);
|
|
/* 02982794 */ return;
|
|
}
|
|
|
|
// fn_02982774 @ 0x2982774
|
|
void Gambit_fn_02982774(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_02982774: ; // 0x2982774
|
|
/* 02982774 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982778 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982778 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02982778 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02982778 */ goto L_0298277C;
|
|
L_0298277C: ; // 0x298277c
|
|
/* 0298277C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298277C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02982780 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982780 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02982780 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02982780 */ goto L_02982784;
|
|
L_02982784: ; // 0x2982784
|
|
/* 02982784 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_02982788 @ 0x2982788
|
|
void Gambit_fn_02982788(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_02982788: ; // 0x2982788
|
|
/* 02982788 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
/* 0298278C */ _t0 = cpu->r[3] + 0x00000002u;
|
|
/* 0298278C */ rbrew_write16(cpu->mem, _t0, (uint16_t)cpu->r[12]);
|
|
/* 02982790 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 02982790 */ rbrew_write16(cpu->mem, _t1, (uint16_t)cpu->r[12]);
|
|
/* 02982794 */ return;
|
|
}
|
|
|
|
// fn_02982798 @ 0x2982798
|
|
void Gambit_fn_02982798(CPUState* cpu) {
|
|
L_02982798: ; // 0x2982798
|
|
/* 02982798 */ return;
|
|
}
|
|
|
|
// fn_0298279C @ 0x298279c
|
|
void Gambit_fn_0298279C(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298279C: ; // 0x298279c
|
|
/* 0298279C */ cpu->r[0] = cpu->lr;
|
|
/* 029827A0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029827A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029827A0 */ cpu->r[1] = _t0;
|
|
/* 029827A4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029827A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029827A8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029827A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029827AC */ cpu->r[31] = cpu->r[3];
|
|
/* 029827AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029827B0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029827B0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029827B4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029827B4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029827B4 */ if (_t5) goto L_029827B8; else goto L_029827C8;
|
|
L_029827B8: ; // 0x29827b8
|
|
/* 029827B8 */ cpu->r[3] = 0x00000098u;
|
|
/* 029827BC */ Gambit_fn_02801A78(cpu);
|
|
/* 029827C0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029827C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029827C4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029827C4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029827C4 */ if (_t7) goto L_029829B4; else goto L_029827C8;
|
|
L_029827C8: ; // 0x29827c8
|
|
/* 029827C8 */ cpu->r[0] = 0x10150000u;
|
|
/* 029827CC */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 029827CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029827D0 */ cpu->r[0] = cpu->r[0] + 0xFFFFEE44u;
|
|
/* 029827D4 */ cpu->r[12] = 0x10150000u;
|
|
/* 029827D8 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 029827D8 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 029827DC */ cpu->r[12] = cpu->r[12] + 0xFFFFEE5Cu;
|
|
/* 029827E0 */ cpu->r[30] = 0x00000000u;
|
|
/* 029827E4 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 029827E4 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 029827E8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029827E8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 029827E8 */ if (_t11) goto L_029827EC; else goto L_029827FC;
|
|
L_029827EC: ; // 0x29827ec
|
|
/* 029827EC */ cpu->r[3] = 0x00000008u;
|
|
/* 029827F0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029827F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029827F8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029827F8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029827F8 */ if (_t13) goto L_02982804; else goto L_029827FC;
|
|
L_029827FC: ; // 0x29827fc
|
|
/* 029827FC */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 029827FC */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 02982800 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 02982800 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_02982804: ; // 0x2982804
|
|
/* 02982804 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 02982804 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982808 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982808 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02982808 */ if (_t17) goto L_0298280C; else goto L_0298281C;
|
|
L_0298280C: ; // 0x298280c
|
|
/* 0298280C */ cpu->r[3] = 0x00000018u;
|
|
/* 02982810 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982818 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982818 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02982818 */ if (_t19) goto L_02982824; else goto L_0298281C;
|
|
L_0298281C: ; // 0x298281c
|
|
/* 0298281C */ _t20 = cpu->r[3] + 0x00000014u;
|
|
/* 0298281C */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 02982820 */ _t21 = cpu->r[3] + 0x00000010u;
|
|
/* 02982820 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
L_02982824: ; // 0x2982824
|
|
/* 02982824 */ cpu->r[3] = cpu->r[31] + 0x00000028u;
|
|
/* 02982824 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982828 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982828 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02982828 */ if (_t23) goto L_0298282C; else goto L_0298283C;
|
|
L_0298282C: ; // 0x298282c
|
|
/* 0298282C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982830 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982834 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982838 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982838 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02982838 */ if (_t25) goto L_02982844; else goto L_0298283C;
|
|
L_0298283C: ; // 0x298283c
|
|
/* 0298283C */ _t26 = cpu->r[3] + 0x00000004u;
|
|
/* 0298283C */ rbrew_write32(cpu->mem, _t26, cpu->r[30]);
|
|
/* 02982840 */ _t27 = cpu->r[3] + 0x00000000u;
|
|
/* 02982840 */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
L_02982844: ; // 0x2982844
|
|
/* 02982844 */ cpu->r[3] = cpu->r[31] + 0x00000030u;
|
|
/* 02982844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982848 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982848 */ _t29 = _t28 & 0x00000001u;
|
|
/* 02982848 */ if (_t29) goto L_0298284C; else goto L_0298285C;
|
|
L_0298284C: ; // 0x298284c
|
|
/* 0298284C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982850 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982854 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982858 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982858 */ _t31 = _t30 & 0x00000001u;
|
|
/* 02982858 */ if (_t31) goto L_02982864; else goto L_0298285C;
|
|
L_0298285C: ; // 0x298285c
|
|
/* 0298285C */ _t32 = cpu->r[3] + 0x00000004u;
|
|
/* 0298285C */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 02982860 */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 02982860 */ rbrew_write32(cpu->mem, _t33, cpu->r[30]);
|
|
L_02982864: ; // 0x2982864
|
|
/* 02982864 */ cpu->r[3] = cpu->r[31] + 0x00000038u;
|
|
/* 02982864 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982868 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982868 */ _t35 = _t34 & 0x00000001u;
|
|
/* 02982868 */ if (_t35) goto L_0298286C; else goto L_0298287C;
|
|
L_0298286C: ; // 0x298286c
|
|
/* 0298286C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982870 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982874 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982878 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982878 */ _t37 = _t36 & 0x00000001u;
|
|
/* 02982878 */ if (_t37) goto L_02982884; else goto L_0298287C;
|
|
L_0298287C: ; // 0x298287c
|
|
/* 0298287C */ _t38 = cpu->r[3] + 0x00000004u;
|
|
/* 0298287C */ rbrew_write32(cpu->mem, _t38, cpu->r[30]);
|
|
/* 02982880 */ _t39 = cpu->r[3] + 0x00000000u;
|
|
/* 02982880 */ rbrew_write32(cpu->mem, _t39, cpu->r[30]);
|
|
L_02982884: ; // 0x2982884
|
|
/* 02982884 */ cpu->r[3] = cpu->r[31] + 0x00000040u;
|
|
/* 02982884 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982888 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982888 */ _t41 = _t40 & 0x00000001u;
|
|
/* 02982888 */ if (_t41) goto L_0298288C; else goto L_0298289C;
|
|
L_0298288C: ; // 0x298288c
|
|
/* 0298288C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982890 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982898 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982898 */ _t43 = _t42 & 0x00000001u;
|
|
/* 02982898 */ if (_t43) goto L_029828A4; else goto L_0298289C;
|
|
L_0298289C: ; // 0x298289c
|
|
/* 0298289C */ _t44 = cpu->r[3] + 0x00000004u;
|
|
/* 0298289C */ rbrew_write32(cpu->mem, _t44, cpu->r[30]);
|
|
/* 029828A0 */ _t45 = cpu->r[3] + 0x00000000u;
|
|
/* 029828A0 */ rbrew_write32(cpu->mem, _t45, cpu->r[30]);
|
|
L_029828A4: ; // 0x29828a4
|
|
/* 029828A4 */ cpu->r[3] = cpu->r[31] + 0x00000048u;
|
|
/* 029828A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828A8 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828A8 */ _t47 = _t46 & 0x00000001u;
|
|
/* 029828A8 */ if (_t47) goto L_029828AC; else goto L_029828BC;
|
|
L_029828AC: ; // 0x29828ac
|
|
/* 029828AC */ cpu->r[3] = 0x00000008u;
|
|
/* 029828B0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029828B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828B8 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828B8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 029828B8 */ if (_t49) goto L_029828C4; else goto L_029828BC;
|
|
L_029828BC: ; // 0x29828bc
|
|
/* 029828BC */ _t50 = cpu->r[3] + 0x00000004u;
|
|
/* 029828BC */ rbrew_write32(cpu->mem, _t50, cpu->r[30]);
|
|
/* 029828C0 */ _t51 = cpu->r[3] + 0x00000000u;
|
|
/* 029828C0 */ rbrew_write32(cpu->mem, _t51, cpu->r[30]);
|
|
L_029828C4: ; // 0x29828c4
|
|
/* 029828C4 */ cpu->r[3] = cpu->r[31] + 0x00000050u;
|
|
/* 029828C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828C8 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828C8 */ _t53 = _t52 & 0x00000001u;
|
|
/* 029828C8 */ if (_t53) goto L_029828CC; else goto L_029828DC;
|
|
L_029828CC: ; // 0x29828cc
|
|
/* 029828CC */ cpu->r[3] = 0x00000008u;
|
|
/* 029828D0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029828D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828D8 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828D8 */ _t55 = _t54 & 0x00000001u;
|
|
/* 029828D8 */ if (_t55) goto L_029828E4; else goto L_029828DC;
|
|
L_029828DC: ; // 0x29828dc
|
|
/* 029828DC */ _t56 = cpu->r[3] + 0x00000004u;
|
|
/* 029828DC */ rbrew_write32(cpu->mem, _t56, cpu->r[30]);
|
|
/* 029828E0 */ _t57 = cpu->r[3] + 0x00000000u;
|
|
/* 029828E0 */ rbrew_write32(cpu->mem, _t57, cpu->r[30]);
|
|
L_029828E4: ; // 0x29828e4
|
|
/* 029828E4 */ cpu->r[3] = cpu->r[31] + 0x00000058u;
|
|
/* 029828E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828E8 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828E8 */ _t59 = _t58 & 0x00000001u;
|
|
/* 029828E8 */ if (_t59) goto L_029828EC; else goto L_029828FC;
|
|
L_029828EC: ; // 0x29828ec
|
|
/* 029828EC */ cpu->r[3] = 0x00000008u;
|
|
/* 029828F0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029828F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828F8 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828F8 */ _t61 = _t60 & 0x00000001u;
|
|
/* 029828F8 */ if (_t61) goto L_02982904; else goto L_029828FC;
|
|
L_029828FC: ; // 0x29828fc
|
|
/* 029828FC */ _t62 = cpu->r[3] + 0x00000004u;
|
|
/* 029828FC */ rbrew_write32(cpu->mem, _t62, cpu->r[30]);
|
|
/* 02982900 */ _t63 = cpu->r[3] + 0x00000000u;
|
|
/* 02982900 */ rbrew_write32(cpu->mem, _t63, cpu->r[30]);
|
|
L_02982904: ; // 0x2982904
|
|
/* 02982904 */ cpu->r[3] = cpu->r[31] + 0x00000060u;
|
|
/* 02982904 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982908 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982908 */ _t65 = _t64 & 0x00000001u;
|
|
/* 02982908 */ if (_t65) goto L_0298290C; else goto L_0298291C;
|
|
L_0298290C: ; // 0x298290c
|
|
/* 0298290C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982910 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982914 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982918 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982918 */ _t67 = _t66 & 0x00000001u;
|
|
/* 02982918 */ if (_t67) goto L_02982924; else goto L_0298291C;
|
|
L_0298291C: ; // 0x298291c
|
|
/* 0298291C */ _t68 = cpu->r[3] + 0x00000004u;
|
|
/* 0298291C */ rbrew_write32(cpu->mem, _t68, cpu->r[30]);
|
|
/* 02982920 */ _t69 = cpu->r[3] + 0x00000000u;
|
|
/* 02982920 */ rbrew_write32(cpu->mem, _t69, cpu->r[30]);
|
|
L_02982924: ; // 0x2982924
|
|
/* 02982924 */ cpu->r[3] = cpu->r[31] + 0x00000068u;
|
|
/* 02982924 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982928 */ _t70 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982928 */ _t71 = _t70 & 0x00000001u;
|
|
/* 02982928 */ if (_t71) goto L_0298292C; else goto L_0298293C;
|
|
L_0298292C: ; // 0x298292c
|
|
/* 0298292C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982930 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982934 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982938 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982938 */ _t73 = _t72 & 0x00000001u;
|
|
/* 02982938 */ if (_t73) goto L_02982944; else goto L_0298293C;
|
|
L_0298293C: ; // 0x298293c
|
|
/* 0298293C */ _t74 = cpu->r[3] + 0x00000004u;
|
|
/* 0298293C */ rbrew_write32(cpu->mem, _t74, cpu->r[30]);
|
|
/* 02982940 */ _t75 = cpu->r[3] + 0x00000000u;
|
|
/* 02982940 */ rbrew_write32(cpu->mem, _t75, cpu->r[30]);
|
|
L_02982944: ; // 0x2982944
|
|
/* 02982944 */ cpu->r[3] = cpu->r[31] + 0x00000074u;
|
|
/* 02982944 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982948 */ _t76 = cpu->r[31] + 0x00000070u;
|
|
/* 02982948 */ rbrew_write32(cpu->mem, _t76, cpu->r[30]);
|
|
/* 0298294C */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298294C */ _t78 = _t77 & 0x00000001u;
|
|
/* 0298294C */ if (_t78) goto L_02982950; else goto L_02982960;
|
|
L_02982950: ; // 0x2982950
|
|
/* 02982950 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02982954 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982958 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298295C */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298295C */ _t80 = _t79 & 0x00000001u;
|
|
/* 0298295C */ if (_t80) goto L_02982984; else goto L_02982960;
|
|
L_02982960: ; // 0x2982960
|
|
/* 02982960 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982964 */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982964 */ _t82 = _t81 & 0x00000001u;
|
|
/* 02982964 */ if (_t82) goto L_02982968; else goto L_02982978;
|
|
L_02982968: ; // 0x2982968
|
|
/* 02982968 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298296C */ Gambit_fn_02801A78(cpu);
|
|
/* 02982970 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982974 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982974 */ _t84 = _t83 & 0x00000001u;
|
|
/* 02982974 */ if (_t84) goto L_02982984; else goto L_02982978;
|
|
L_02982978: ; // 0x2982978
|
|
/* 02982978 */ _t85 = cpu->r[3] + 0x00000004u;
|
|
/* 02982978 */ rbrew_write32(cpu->mem, _t85, cpu->r[30]);
|
|
/* 0298297C */ _t86 = cpu->r[3] + 0x00000000u;
|
|
/* 0298297C */ rbrew_write32(cpu->mem, _t86, cpu->r[30]);
|
|
/* 02982980 */ _t87 = cpu->r[3] + 0x00000008u;
|
|
/* 02982980 */ rbrew_write32(cpu->mem, _t87, cpu->r[30]);
|
|
L_02982984: ; // 0x2982984
|
|
/* 02982984 */ _t88 = cpu->r[31] + 0x00000080u;
|
|
/* 02982984 */ rbrew_write32(cpu->mem, _t88, cpu->r[30]);
|
|
/* 02982988 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 0298298C */ _t89 = cpu->r[31] + 0x00000094u;
|
|
/* 0298298C */ rbrew_write32(cpu->mem, _t89, cpu->r[30]);
|
|
/* 02982990 */ cpu->r[5] = 0x00000001u;
|
|
/* 02982994 */ _t90 = cpu->r[31] + 0x00000084u;
|
|
/* 02982994 */ rbrew_write32(cpu->mem, _t90, cpu->r[30]);
|
|
/* 02982998 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298299C */ _t91 = cpu->r[31] + 0x00000088u;
|
|
/* 0298299C */ rbrew_write16(cpu->mem, _t91, (uint16_t)cpu->r[30]);
|
|
/* 029829A0 */ _t92 = cpu->r[31] + 0x0000008Eu;
|
|
/* 029829A0 */ rbrew_write8(cpu->mem, _t92, (uint8_t)cpu->r[30]);
|
|
/* 029829A4 */ _t93 = cpu->r[31] + 0x0000008Cu;
|
|
/* 029829A4 */ rbrew_write16(cpu->mem, _t93, (uint16_t)cpu->r[30]);
|
|
/* 029829A8 */ _t94 = cpu->r[31] + 0x0000008Au;
|
|
/* 029829A8 */ rbrew_write16(cpu->mem, _t94, (uint16_t)cpu->r[30]);
|
|
/* 029829AC */ _t95 = cpu->r[31] + 0x00000090u;
|
|
/* 029829AC */ rbrew_write32(cpu->mem, _t95, cpu->r[30]);
|
|
/* 029829B0 */ Gambit_fn_02A11408(cpu);
|
|
L_029829B4: ; // 0x29829b4
|
|
/* 029829B4 */ _t96 = cpu->r[1] + 0x00000014u;
|
|
/* 029829B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t96);
|
|
/* 029829B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029829BC */ _t97 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029829BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t97);
|
|
/* 029829C0 */ cpu->lr = cpu->r[0];
|
|
/* 029829C4 */ _t98 = cpu->r[1] + 0x00000008u;
|
|
/* 029829C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t98);
|
|
/* 029829C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029829CC */ return;
|
|
}
|
|
|
|
// fn_029827A0 @ 0x29827a0
|
|
void Gambit_fn_029827A0(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_029827A0: ; // 0x29827a0
|
|
/* 029827A0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029827A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029827A0 */ cpu->r[1] = _t0;
|
|
/* 029827A4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029827A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029827A8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029827A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029827AC */ cpu->r[31] = cpu->r[3];
|
|
/* 029827AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029827B0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029827B0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029827B4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029827B4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029827B4 */ if (_t5) goto L_029827B8; else goto L_029827C8;
|
|
L_029827B8: ; // 0x29827b8
|
|
/* 029827B8 */ cpu->r[3] = 0x00000098u;
|
|
/* 029827BC */ Gambit_fn_02801A78(cpu);
|
|
/* 029827C0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029827C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029827C4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029827C4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029827C4 */ if (_t7) goto L_029829B4; else goto L_029827C8;
|
|
L_029827C8: ; // 0x29827c8
|
|
/* 029827C8 */ cpu->r[0] = 0x10150000u;
|
|
/* 029827CC */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 029827CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029827D0 */ cpu->r[0] = cpu->r[0] + 0xFFFFEE44u;
|
|
/* 029827D4 */ cpu->r[12] = 0x10150000u;
|
|
/* 029827D8 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 029827D8 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 029827DC */ cpu->r[12] = cpu->r[12] + 0xFFFFEE5Cu;
|
|
/* 029827E0 */ cpu->r[30] = 0x00000000u;
|
|
/* 029827E4 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 029827E4 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 029827E8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029827E8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 029827E8 */ if (_t11) goto L_029827EC; else goto L_029827FC;
|
|
L_029827EC: ; // 0x29827ec
|
|
/* 029827EC */ cpu->r[3] = 0x00000008u;
|
|
/* 029827F0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029827F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029827F8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029827F8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029827F8 */ if (_t13) goto L_02982804; else goto L_029827FC;
|
|
L_029827FC: ; // 0x29827fc
|
|
/* 029827FC */ _t14 = cpu->r[3] + 0x00000004u;
|
|
/* 029827FC */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 02982800 */ _t15 = cpu->r[3] + 0x00000000u;
|
|
/* 02982800 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_02982804: ; // 0x2982804
|
|
/* 02982804 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 02982804 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982808 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982808 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02982808 */ if (_t17) goto L_0298280C; else goto L_0298281C;
|
|
L_0298280C: ; // 0x298280c
|
|
/* 0298280C */ cpu->r[3] = 0x00000018u;
|
|
/* 02982810 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982818 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982818 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02982818 */ if (_t19) goto L_02982824; else goto L_0298281C;
|
|
L_0298281C: ; // 0x298281c
|
|
/* 0298281C */ _t20 = cpu->r[3] + 0x00000014u;
|
|
/* 0298281C */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 02982820 */ _t21 = cpu->r[3] + 0x00000010u;
|
|
/* 02982820 */ rbrew_write32(cpu->mem, _t21, cpu->r[30]);
|
|
L_02982824: ; // 0x2982824
|
|
/* 02982824 */ cpu->r[3] = cpu->r[31] + 0x00000028u;
|
|
/* 02982824 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982828 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982828 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02982828 */ if (_t23) goto L_0298282C; else goto L_0298283C;
|
|
L_0298282C: ; // 0x298282c
|
|
/* 0298282C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982830 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982834 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982838 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982838 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02982838 */ if (_t25) goto L_02982844; else goto L_0298283C;
|
|
L_0298283C: ; // 0x298283c
|
|
/* 0298283C */ _t26 = cpu->r[3] + 0x00000004u;
|
|
/* 0298283C */ rbrew_write32(cpu->mem, _t26, cpu->r[30]);
|
|
/* 02982840 */ _t27 = cpu->r[3] + 0x00000000u;
|
|
/* 02982840 */ rbrew_write32(cpu->mem, _t27, cpu->r[30]);
|
|
L_02982844: ; // 0x2982844
|
|
/* 02982844 */ cpu->r[3] = cpu->r[31] + 0x00000030u;
|
|
/* 02982844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982848 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982848 */ _t29 = _t28 & 0x00000001u;
|
|
/* 02982848 */ if (_t29) goto L_0298284C; else goto L_0298285C;
|
|
L_0298284C: ; // 0x298284c
|
|
/* 0298284C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982850 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982854 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982858 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982858 */ _t31 = _t30 & 0x00000001u;
|
|
/* 02982858 */ if (_t31) goto L_02982864; else goto L_0298285C;
|
|
L_0298285C: ; // 0x298285c
|
|
/* 0298285C */ _t32 = cpu->r[3] + 0x00000004u;
|
|
/* 0298285C */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 02982860 */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 02982860 */ rbrew_write32(cpu->mem, _t33, cpu->r[30]);
|
|
L_02982864: ; // 0x2982864
|
|
/* 02982864 */ cpu->r[3] = cpu->r[31] + 0x00000038u;
|
|
/* 02982864 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982868 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982868 */ _t35 = _t34 & 0x00000001u;
|
|
/* 02982868 */ if (_t35) goto L_0298286C; else goto L_0298287C;
|
|
L_0298286C: ; // 0x298286c
|
|
/* 0298286C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982870 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982874 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982878 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982878 */ _t37 = _t36 & 0x00000001u;
|
|
/* 02982878 */ if (_t37) goto L_02982884; else goto L_0298287C;
|
|
L_0298287C: ; // 0x298287c
|
|
/* 0298287C */ _t38 = cpu->r[3] + 0x00000004u;
|
|
/* 0298287C */ rbrew_write32(cpu->mem, _t38, cpu->r[30]);
|
|
/* 02982880 */ _t39 = cpu->r[3] + 0x00000000u;
|
|
/* 02982880 */ rbrew_write32(cpu->mem, _t39, cpu->r[30]);
|
|
L_02982884: ; // 0x2982884
|
|
/* 02982884 */ cpu->r[3] = cpu->r[31] + 0x00000040u;
|
|
/* 02982884 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982888 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982888 */ _t41 = _t40 & 0x00000001u;
|
|
/* 02982888 */ if (_t41) goto L_0298288C; else goto L_0298289C;
|
|
L_0298288C: ; // 0x298288c
|
|
/* 0298288C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982890 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982898 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982898 */ _t43 = _t42 & 0x00000001u;
|
|
/* 02982898 */ if (_t43) goto L_029828A4; else goto L_0298289C;
|
|
L_0298289C: ; // 0x298289c
|
|
/* 0298289C */ _t44 = cpu->r[3] + 0x00000004u;
|
|
/* 0298289C */ rbrew_write32(cpu->mem, _t44, cpu->r[30]);
|
|
/* 029828A0 */ _t45 = cpu->r[3] + 0x00000000u;
|
|
/* 029828A0 */ rbrew_write32(cpu->mem, _t45, cpu->r[30]);
|
|
L_029828A4: ; // 0x29828a4
|
|
/* 029828A4 */ cpu->r[3] = cpu->r[31] + 0x00000048u;
|
|
/* 029828A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828A8 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828A8 */ _t47 = _t46 & 0x00000001u;
|
|
/* 029828A8 */ if (_t47) goto L_029828AC; else goto L_029828BC;
|
|
L_029828AC: ; // 0x29828ac
|
|
/* 029828AC */ cpu->r[3] = 0x00000008u;
|
|
/* 029828B0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029828B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828B8 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828B8 */ _t49 = _t48 & 0x00000001u;
|
|
/* 029828B8 */ if (_t49) goto L_029828C4; else goto L_029828BC;
|
|
L_029828BC: ; // 0x29828bc
|
|
/* 029828BC */ _t50 = cpu->r[3] + 0x00000004u;
|
|
/* 029828BC */ rbrew_write32(cpu->mem, _t50, cpu->r[30]);
|
|
/* 029828C0 */ _t51 = cpu->r[3] + 0x00000000u;
|
|
/* 029828C0 */ rbrew_write32(cpu->mem, _t51, cpu->r[30]);
|
|
L_029828C4: ; // 0x29828c4
|
|
/* 029828C4 */ cpu->r[3] = cpu->r[31] + 0x00000050u;
|
|
/* 029828C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828C8 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828C8 */ _t53 = _t52 & 0x00000001u;
|
|
/* 029828C8 */ if (_t53) goto L_029828CC; else goto L_029828DC;
|
|
L_029828CC: ; // 0x29828cc
|
|
/* 029828CC */ cpu->r[3] = 0x00000008u;
|
|
/* 029828D0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029828D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828D8 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828D8 */ _t55 = _t54 & 0x00000001u;
|
|
/* 029828D8 */ if (_t55) goto L_029828E4; else goto L_029828DC;
|
|
L_029828DC: ; // 0x29828dc
|
|
/* 029828DC */ _t56 = cpu->r[3] + 0x00000004u;
|
|
/* 029828DC */ rbrew_write32(cpu->mem, _t56, cpu->r[30]);
|
|
/* 029828E0 */ _t57 = cpu->r[3] + 0x00000000u;
|
|
/* 029828E0 */ rbrew_write32(cpu->mem, _t57, cpu->r[30]);
|
|
L_029828E4: ; // 0x29828e4
|
|
/* 029828E4 */ cpu->r[3] = cpu->r[31] + 0x00000058u;
|
|
/* 029828E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828E8 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828E8 */ _t59 = _t58 & 0x00000001u;
|
|
/* 029828E8 */ if (_t59) goto L_029828EC; else goto L_029828FC;
|
|
L_029828EC: ; // 0x29828ec
|
|
/* 029828EC */ cpu->r[3] = 0x00000008u;
|
|
/* 029828F0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029828F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029828F8 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029828F8 */ _t61 = _t60 & 0x00000001u;
|
|
/* 029828F8 */ if (_t61) goto L_02982904; else goto L_029828FC;
|
|
L_029828FC: ; // 0x29828fc
|
|
/* 029828FC */ _t62 = cpu->r[3] + 0x00000004u;
|
|
/* 029828FC */ rbrew_write32(cpu->mem, _t62, cpu->r[30]);
|
|
/* 02982900 */ _t63 = cpu->r[3] + 0x00000000u;
|
|
/* 02982900 */ rbrew_write32(cpu->mem, _t63, cpu->r[30]);
|
|
L_02982904: ; // 0x2982904
|
|
/* 02982904 */ cpu->r[3] = cpu->r[31] + 0x00000060u;
|
|
/* 02982904 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982908 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982908 */ _t65 = _t64 & 0x00000001u;
|
|
/* 02982908 */ if (_t65) goto L_0298290C; else goto L_0298291C;
|
|
L_0298290C: ; // 0x298290c
|
|
/* 0298290C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982910 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982914 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982918 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982918 */ _t67 = _t66 & 0x00000001u;
|
|
/* 02982918 */ if (_t67) goto L_02982924; else goto L_0298291C;
|
|
L_0298291C: ; // 0x298291c
|
|
/* 0298291C */ _t68 = cpu->r[3] + 0x00000004u;
|
|
/* 0298291C */ rbrew_write32(cpu->mem, _t68, cpu->r[30]);
|
|
/* 02982920 */ _t69 = cpu->r[3] + 0x00000000u;
|
|
/* 02982920 */ rbrew_write32(cpu->mem, _t69, cpu->r[30]);
|
|
L_02982924: ; // 0x2982924
|
|
/* 02982924 */ cpu->r[3] = cpu->r[31] + 0x00000068u;
|
|
/* 02982924 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982928 */ _t70 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982928 */ _t71 = _t70 & 0x00000001u;
|
|
/* 02982928 */ if (_t71) goto L_0298292C; else goto L_0298293C;
|
|
L_0298292C: ; // 0x298292c
|
|
/* 0298292C */ cpu->r[3] = 0x00000008u;
|
|
/* 02982930 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982934 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982938 */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982938 */ _t73 = _t72 & 0x00000001u;
|
|
/* 02982938 */ if (_t73) goto L_02982944; else goto L_0298293C;
|
|
L_0298293C: ; // 0x298293c
|
|
/* 0298293C */ _t74 = cpu->r[3] + 0x00000004u;
|
|
/* 0298293C */ rbrew_write32(cpu->mem, _t74, cpu->r[30]);
|
|
/* 02982940 */ _t75 = cpu->r[3] + 0x00000000u;
|
|
/* 02982940 */ rbrew_write32(cpu->mem, _t75, cpu->r[30]);
|
|
L_02982944: ; // 0x2982944
|
|
/* 02982944 */ cpu->r[3] = cpu->r[31] + 0x00000074u;
|
|
/* 02982944 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982948 */ _t76 = cpu->r[31] + 0x00000070u;
|
|
/* 02982948 */ rbrew_write32(cpu->mem, _t76, cpu->r[30]);
|
|
/* 0298294C */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298294C */ _t78 = _t77 & 0x00000001u;
|
|
/* 0298294C */ if (_t78) goto L_02982950; else goto L_02982960;
|
|
L_02982950: ; // 0x2982950
|
|
/* 02982950 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02982954 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982958 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298295C */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298295C */ _t80 = _t79 & 0x00000001u;
|
|
/* 0298295C */ if (_t80) goto L_02982984; else goto L_02982960;
|
|
L_02982960: ; // 0x2982960
|
|
/* 02982960 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982964 */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982964 */ _t82 = _t81 & 0x00000001u;
|
|
/* 02982964 */ if (_t82) goto L_02982968; else goto L_02982978;
|
|
L_02982968: ; // 0x2982968
|
|
/* 02982968 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298296C */ Gambit_fn_02801A78(cpu);
|
|
/* 02982970 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982974 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982974 */ _t84 = _t83 & 0x00000001u;
|
|
/* 02982974 */ if (_t84) goto L_02982984; else goto L_02982978;
|
|
L_02982978: ; // 0x2982978
|
|
/* 02982978 */ _t85 = cpu->r[3] + 0x00000004u;
|
|
/* 02982978 */ rbrew_write32(cpu->mem, _t85, cpu->r[30]);
|
|
/* 0298297C */ _t86 = cpu->r[3] + 0x00000000u;
|
|
/* 0298297C */ rbrew_write32(cpu->mem, _t86, cpu->r[30]);
|
|
/* 02982980 */ _t87 = cpu->r[3] + 0x00000008u;
|
|
/* 02982980 */ rbrew_write32(cpu->mem, _t87, cpu->r[30]);
|
|
L_02982984: ; // 0x2982984
|
|
/* 02982984 */ _t88 = cpu->r[31] + 0x00000080u;
|
|
/* 02982984 */ rbrew_write32(cpu->mem, _t88, cpu->r[30]);
|
|
/* 02982988 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 0298298C */ _t89 = cpu->r[31] + 0x00000094u;
|
|
/* 0298298C */ rbrew_write32(cpu->mem, _t89, cpu->r[30]);
|
|
/* 02982990 */ cpu->r[5] = 0x00000001u;
|
|
/* 02982994 */ _t90 = cpu->r[31] + 0x00000084u;
|
|
/* 02982994 */ rbrew_write32(cpu->mem, _t90, cpu->r[30]);
|
|
/* 02982998 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298299C */ _t91 = cpu->r[31] + 0x00000088u;
|
|
/* 0298299C */ rbrew_write16(cpu->mem, _t91, (uint16_t)cpu->r[30]);
|
|
/* 029829A0 */ _t92 = cpu->r[31] + 0x0000008Eu;
|
|
/* 029829A0 */ rbrew_write8(cpu->mem, _t92, (uint8_t)cpu->r[30]);
|
|
/* 029829A4 */ _t93 = cpu->r[31] + 0x0000008Cu;
|
|
/* 029829A4 */ rbrew_write16(cpu->mem, _t93, (uint16_t)cpu->r[30]);
|
|
/* 029829A8 */ _t94 = cpu->r[31] + 0x0000008Au;
|
|
/* 029829A8 */ rbrew_write16(cpu->mem, _t94, (uint16_t)cpu->r[30]);
|
|
/* 029829AC */ _t95 = cpu->r[31] + 0x00000090u;
|
|
/* 029829AC */ rbrew_write32(cpu->mem, _t95, cpu->r[30]);
|
|
/* 029829B0 */ Gambit_fn_02A11408(cpu);
|
|
L_029829B4: ; // 0x29829b4
|
|
/* 029829B4 */ _t96 = cpu->r[1] + 0x00000014u;
|
|
/* 029829B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t96);
|
|
/* 029829B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029829BC */ _t97 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029829BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t97);
|
|
/* 029829C0 */ cpu->lr = cpu->r[0];
|
|
/* 029829C4 */ _t98 = cpu->r[1] + 0x00000008u;
|
|
/* 029829C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t98);
|
|
/* 029829C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029829CC */ return;
|
|
}
|
|
|
|
// fn_029829D0 @ 0x29829d0
|
|
void Gambit_fn_029829D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189, _t190, _t191, _t192, _t193, _t194, _t195, _t196, _t197, _t198, _t199, _t200, _t201, _t202, _t203, _t204, _t205, _t206, _t207, _t208, _t209, _t210, _t211, _t212, _t213, _t214, _t215, _t216, _t217, _t218, _t219, _t220, _t221, _t222, _t223, _t224, _t225, _t226, _t227, _t228, _t229, _t230, _t231, _t232, _t233, _t234, _t235, _t236, _t237, _t238, _t239, _t240, _t241, _t242, _t243, _t244, _t245, _t246, _t247, _t248, _t249, _t250, _t251, _t252, _t253, _t254, _t255, _t256, _t257, _t258, _t259, _t260, _t261, _t262, _t263, _t264, _t265, _t266, _t267, _t268, _t269, _t270, _t271, _t272, _t273, _t274, _t275, _t276, _t277, _t278, _t279, _t280, _t281, _t282, _t283, _t284, _t285, _t286, _t287, _t288, _t289, _t290, _t291, _t292, _t293, _t294, _t295, _t296, _t297, _t298;
|
|
|
|
L_029829D0: ; // 0x29829d0
|
|
/* 029829D0 */ _t0 = cpu->r[1] + 0xFFFFFB20u;
|
|
/* 029829D0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029829D0 */ cpu->r[1] = _t0;
|
|
/* 029829D4 */ /* nop */
|
|
/* 029829D8 */ cpu->r[0] = cpu->lr;
|
|
/* 029829DC */ _t1 = cpu->r[1] + 0x000004E4u;
|
|
/* 029829DC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029829E0 */ _t2 = cpu->r[1] + 0x000004D0u;
|
|
/* 029829E0 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 029829E4 */ _t3 = cpu->r[1] + 0x00000030u;
|
|
/* 029829E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[10]);
|
|
/* 029829E8 */ /* nop */
|
|
/* 029829EC */ _t4 = cpu->r[1] + 0x000004D8u;
|
|
/* 029829EC */ rbrew_write_f32(cpu->mem, _t4, cpu->f[31]);
|
|
/* 029829F0 */ _t5 = cpu->r[1] + 0x00000034u;
|
|
/* 029829F0 */ rbrew_write32(cpu->mem, _t5, cpu->r[9]);
|
|
/* 029829F4 */ _t6 = cpu->r[7] + 0x00000000u;
|
|
/* 029829F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029829F8 */ cpu->r[31] = cpu->r[8];
|
|
/* 029829FC */ _t7 = cpu->r[1] + 0x00000038u;
|
|
/* 029829FC */ rbrew_write32(cpu->mem, _t7, cpu->r[7]);
|
|
/* 02982A00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02982A04 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982A04 */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 02982A08 */ _t9 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02982A08 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02982A08 */ if (_t10) goto L_02982A0C; else goto L_02983130;
|
|
L_02982A0C: ; // 0x2982a0c
|
|
/* 02982A0C */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982A0C */ cpu->r[6] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02982A10 */ _t12 = cpu->r[6] + 0x00000074u;
|
|
/* 02982A10 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02982A14 */ _t13 = cpu->r[6] + 0x0000007Cu;
|
|
/* 02982A14 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02982A18 */ cpu->r[5] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02982A1C */ cpu->r[12] = cpu->r[10] + cpu->r[5];
|
|
/* 02982A20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[12]);
|
|
/* 02982A24 */ cpu->r[30] = 0x00000000u;
|
|
/* 02982A28 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982A28 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02982A28 */ if (_t15) goto L_02983130; else goto L_02982A2C;
|
|
L_02982A2C: ; // 0x2982a2c
|
|
/* 02982A2C */ _t16 = cpu->r[10] + 0x00000000u;
|
|
/* 02982A2C */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02982A30 */ _t17 = cpu->r[11] + 0x0000001Cu;
|
|
/* 02982A30 */ cpu->r[4] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02982A34 */ cpu->r[10] = cpu->r[10] + 0x00000004u;
|
|
/* 02982A38 */ _t18 = cpu->r[4] + 0x00000054u;
|
|
/* 02982A38 */ cpu->r[0] = rbrew_read16(cpu->mem, _t18);
|
|
/* 02982A3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[12]);
|
|
/* 02982A40 */ cpu->r[30] = cpu->r[30] + cpu->r[0];
|
|
/* 02982A44 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982A44 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02982A44 */ if (_t20) goto L_02982A48; else goto L_02982A2C;
|
|
L_02982A48: ; // 0x2982a48
|
|
/* 02982A48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02982A4C */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02982A4C */ _t22 = _t21 & 0x00000001u;
|
|
/* 02982A4C */ if (_t22) goto L_02982A50; else goto L_02983130;
|
|
L_02982A50: ; // 0x2982a50
|
|
/* 02982A50 */ _t23 = cpu->r[1] + 0x00000030u;
|
|
/* 02982A50 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02982A54 */ cpu->r[0] = 0x101D0000u;
|
|
/* 02982A58 */ cpu->r[0] = cpu->r[0] + 0xFFFF98F0u;
|
|
/* 02982A5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982A60 */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 02982A60 */ rbrew_write32(cpu->mem, _t24, cpu->r[0]);
|
|
/* 02982A64 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982A64 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02982A64 */ if (_t26) goto L_02982A68; else goto L_02982A74;
|
|
L_02982A68: ; // 0x2982a68
|
|
/* 02982A68 */ _t27 = cpu->r[1] + 0x00000010u;
|
|
/* 02982A68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02982A6C */ _t28 = cpu->r[12] + 0x00000000u;
|
|
/* 02982A6C */ cpu->r[3] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02982A70 */ Gambit_fn_02826F20(cpu);
|
|
L_02982A74: ; // 0x2982a74
|
|
/* 02982A74 */ _t29 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02982A74 */ cpu->r[4] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02982A78 */ _t30 = cpu->r[4] + 0x00000034u;
|
|
/* 02982A78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02982A7C */ cpu->ctr = cpu->r[0];
|
|
/* 02982A80 */ cpu->r[4] = rbrew_rlwinm(cpu->r[30], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02982A84 */ cpu->r[5] = 0x00000004u;
|
|
/* 02982A88 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02982A8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02982A90 */ cpu->r[0] = cpu->r[30];
|
|
/* 02982A94 */ cpu->r[10] = 0x00000000u;
|
|
/* 02982A98 */ _t31 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02982A98 */ _t32 = _t31 & 0x00000001u;
|
|
/* 02982A98 */ if (_t32) goto L_02982AA0; else goto L_02982A9C;
|
|
L_02982A9C: ; // 0x2982a9c
|
|
/* 02982A9C */ cpu->r[0] = 0x00000001u;
|
|
L_02982AA0: ; // 0x2982aa0
|
|
/* 02982AA0 */ cpu->ctr = cpu->r[0];
|
|
/* 02982AA4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02982AA8 */ cpu->r[4] = 0x00000000u;
|
|
L_02982AAC: ; // 0x2982aac
|
|
/* 02982AAC */ cpu->r[9] = cpu->r[3] + cpu->r[12];
|
|
/* 02982AAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02982AB0 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982AB0 */ _t34 = _t33 & 0x00000001u;
|
|
/* 02982AB0 */ if (_t34) goto L_02982ABC; else goto L_02982AB4;
|
|
L_02982AB4: ; // 0x2982ab4
|
|
/* 02982AB4 */ _t35 = cpu->r[9] + 0x00000008u;
|
|
/* 02982AB4 */ rbrew_write32(cpu->mem, _t35, cpu->r[4]);
|
|
/* 02982AB8 */ _t36 = cpu->r[9] + 0x00000004u;
|
|
/* 02982AB8 */ rbrew_write32(cpu->mem, _t36, cpu->r[4]);
|
|
L_02982ABC: ; // 0x2982abc
|
|
/* 02982ABC */ cpu->r[12] = cpu->r[12] + 0x00000010u;
|
|
/* 02982AC0 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02982AC0 */ _t37 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02982AC0 */ _t38 = _t37 >> (0x00000002u & 31u);
|
|
/* 02982AC0 */ _t39 = _t38 & 0x00000001u;
|
|
/* 02982AC0 */ if (_t39) goto L_02982AAC; else goto L_02982AC4;
|
|
L_02982AC4: ; // 0x2982ac4
|
|
/* 02982AC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982AC8 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982AC8 */ _t41 = _t40 & 0x00000001u;
|
|
/* 02982AC8 */ if (_t41) goto L_02982AD8; else goto L_02982ACC;
|
|
L_02982ACC: ; // 0x2982acc
|
|
/* 02982ACC */ _t42 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982ACC */ cpu->r[10] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02982AD0 */ _t43 = cpu->r[10] + 0x00000038u;
|
|
/* 02982AD0 */ rbrew_write32(cpu->mem, _t43, cpu->r[30]);
|
|
/* 02982AD4 */ _t44 = cpu->r[10] + 0x0000003Cu;
|
|
/* 02982AD4 */ rbrew_write32(cpu->mem, _t44, cpu->r[3]);
|
|
L_02982AD8: ; // 0x2982ad8
|
|
/* 02982AD8 */ _t45 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982AD8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t45);
|
|
/* 02982ADC */ _t46 = cpu->r[1] + 0x00000038u;
|
|
/* 02982ADC */ cpu->r[7] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02982AE0 */ cpu->r[9] = 0x00000000u;
|
|
/* 02982AE4 */ _t47 = cpu->r[8] + 0x0000008Au;
|
|
/* 02982AE4 */ cpu->r[4] = rbrew_read16(cpu->mem, _t47);
|
|
/* 02982AE8 */ cpu->r[0] = 0x00000001u;
|
|
/* 02982AEC */ _t48 = cpu->r[7] + 0x00000008u;
|
|
/* 02982AEC */ cpu->r[5] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02982AF0 */ cpu->r[8] = 0xFFFFFFFFu;
|
|
/* 02982AF4 */ _t49 = cpu->r[1] + 0x0000004Cu;
|
|
/* 02982AF4 */ rbrew_write8(cpu->mem, _t49, (uint8_t)cpu->r[0]);
|
|
/* 02982AF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02982AFC */ _t50 = cpu->r[1] + 0x0000004Du;
|
|
/* 02982AFC */ rbrew_write8(cpu->mem, _t50, (uint8_t)cpu->r[9]);
|
|
/* 02982B00 */ cpu->r[28] = cpu->r[1] + 0x00000048u;
|
|
/* 02982B04 */ _t51 = cpu->r[1] + 0x00000040u;
|
|
/* 02982B04 */ rbrew_write32(cpu->mem, _t51, cpu->r[4]);
|
|
/* 02982B08 */ _t52 = cpu->r[1] + 0x00000048u;
|
|
/* 02982B08 */ rbrew_write32(cpu->mem, _t52, cpu->r[8]);
|
|
/* 02982B0C */ cpu->r[27] = cpu->r[1] + 0x00000044u;
|
|
/* 02982B10 */ _t53 = cpu->r[1] + 0x00000044u;
|
|
/* 02982B10 */ rbrew_write32(cpu->mem, _t53, cpu->r[8]);
|
|
/* 02982B14 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982B14 */ _t55 = _t54 & 0x00000001u;
|
|
/* 02982B14 */ if (_t55) goto L_02982B1C; else goto L_02982B18;
|
|
L_02982B18: ; // 0x2982b18
|
|
/* 02982B18 */ cpu->r[9] = 0x00000001u;
|
|
L_02982B1C: ; // 0x2982b1c
|
|
/* 02982B1C */ _t56 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982B1C */ cpu->r[5] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02982B20 */ cpu->r[6] = 0x00000000u;
|
|
/* 02982B24 */ _t57 = cpu->r[1] + 0x00000050u;
|
|
/* 02982B24 */ rbrew_write32(cpu->mem, _t57, cpu->r[6]);
|
|
/* 02982B28 */ _t58 = cpu->r[5] + 0x00000074u;
|
|
/* 02982B28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02982B2C */ _t59 = cpu->r[1] + 0x00000054u;
|
|
/* 02982B2C */ rbrew_write32(cpu->mem, _t59, cpu->r[6]);
|
|
/* 02982B30 */ _t60 = cpu->r[5] + 0x0000007Cu;
|
|
/* 02982B30 */ cpu->r[14] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02982B34 */ cpu->r[7] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02982B38 */ _t61 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02982B38 */ rbrew_write32(cpu->mem, _t61, cpu->r[6]);
|
|
/* 02982B3C */ cpu->r[0] = cpu->r[14] + cpu->r[7];
|
|
/* 02982B40 */ _t62 = cpu->r[1] + 0x0000004Eu;
|
|
/* 02982B40 */ rbrew_write8(cpu->mem, _t62, (uint8_t)cpu->r[9]);
|
|
/* 02982B44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[0]);
|
|
/* 02982B48 */ _t63 = cpu->r[1] + 0x00000024u;
|
|
/* 02982B48 */ rbrew_write32(cpu->mem, _t63, cpu->r[6]);
|
|
/* 02982B4C */ _t64 = cpu->r[1] + 0x00000014u;
|
|
/* 02982B4C */ rbrew_write32(cpu->mem, _t64, cpu->r[0]);
|
|
/* 02982B50 */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982B50 */ _t66 = _t65 & 0x00000001u;
|
|
/* 02982B50 */ if (_t66) goto L_02982F48; else goto L_02982B54;
|
|
L_02982B54: ; // 0x2982b54
|
|
/* 02982B54 */ _t67 = cpu->r[14] + 0x00000000u;
|
|
/* 02982B54 */ cpu->r[5] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02982B58 */ _t68 = cpu->r[5] + 0x0000001Cu;
|
|
/* 02982B58 */ cpu->r[11] = rbrew_read32(cpu->mem, _t68);
|
|
/* 02982B5C */ _t69 = cpu->r[11] + 0x00000054u;
|
|
/* 02982B5C */ cpu->r[4] = rbrew_read16(cpu->mem, _t69);
|
|
/* 02982B60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02982B64 */ _t70 = cpu->r[1] + 0x00000008u;
|
|
/* 02982B64 */ rbrew_write32(cpu->mem, _t70, cpu->r[4]);
|
|
/* 02982B68 */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982B68 */ _t72 = _t71 & 0x00000001u;
|
|
/* 02982B68 */ if (_t72) goto L_02982F2C; else goto L_02982B6C;
|
|
L_02982B6C: ; // 0x2982b6c
|
|
/* 02982B6C */ cpu->r[0] = 0x00000000u;
|
|
/* 02982B70 */ _t73 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02982B70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t73);
|
|
/* 02982B74 */ cpu->r[10] = 0x00000000u;
|
|
/* 02982B78 */ _t74 = cpu->r[1] + 0x00000020u;
|
|
/* 02982B78 */ rbrew_write32(cpu->mem, _t74, cpu->r[0]);
|
|
/* 02982B7C */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02982B80 */ _t75 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02982B80 */ rbrew_write32(cpu->mem, _t75, cpu->r[10]);
|
|
/* 02982B84 */ _t76 = cpu->r[1] + 0x00000028u;
|
|
/* 02982B84 */ rbrew_write32(cpu->mem, _t76, cpu->r[0]);
|
|
/* 02982B88 */ cpu->r[24] = 0x101D0000u;
|
|
/* 02982B8C */ _t77 = cpu->r[1] + 0x00000018u;
|
|
/* 02982B8C */ rbrew_write32(cpu->mem, _t77, cpu->r[10]);
|
|
/* 02982B90 */ _t78 = cpu->r[5] + 0x0000001Cu;
|
|
/* 02982B90 */ cpu->r[5] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02982B94 */ _t79 = cpu->r[5] + 0x00000028u;
|
|
/* 02982B94 */ cpu->r[7] = rbrew_read32(cpu->mem, _t79);
|
|
/* 02982B98 */ cpu->r[6] = 0x00000000u;
|
|
/* 02982B9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02982BA0 */ cpu->r[4] = cpu->r[5] + 0x00000028u;
|
|
/* 02982BA4 */ _t80 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982BA4 */ _t81 = _t80 & 0x00000001u;
|
|
/* 02982BA4 */ if (_t81) goto L_02982BAC; else goto L_02982BA8;
|
|
L_02982BA8: ; // 0x2982ba8
|
|
/* 02982BA8 */ cpu->r[6] = cpu->r[4] + cpu->r[7];
|
|
L_02982BAC: ; // 0x2982bac
|
|
/* 02982BAC */ _t82 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02982BAC */ cpu->r[8] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02982BB0 */ cpu->r[10] = cpu->r[6] + cpu->r[8];
|
|
/* 02982BB4 */ _t83 = cpu->r[10] + 0x00000024u;
|
|
/* 02982BB4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t83);
|
|
/* 02982BB4 */ cpu->r[10] = _t83;
|
|
/* 02982BB8 */ cpu->r[11] = 0x00000000u;
|
|
/* 02982BBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02982BC0 */ _t84 = cpu->r[27] + 0x00000000u;
|
|
/* 02982BC0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t84);
|
|
/* 02982BC4 */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982BC4 */ _t86 = _t85 & 0x00000001u;
|
|
/* 02982BC4 */ if (_t86) goto L_02982BCC; else goto L_02982BC8;
|
|
L_02982BC8: ; // 0x2982bc8
|
|
/* 02982BC8 */ cpu->r[11] = cpu->r[10] + cpu->r[8];
|
|
L_02982BCC: ; // 0x2982bcc
|
|
/* 02982BCC */ cpu->r[19] = cpu->r[11];
|
|
/* 02982BD0 */ _t87 = cpu->r[19] + 0x00000014u;
|
|
/* 02982BD0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t87);
|
|
/* 02982BD4 */ cpu->r[6] = cpu->r[27];
|
|
/* 02982BD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[0]);
|
|
/* 02982BDC */ _t88 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02982BDC */ rbrew_write32(cpu->mem, _t88, cpu->r[0]);
|
|
/* 02982BE0 */ _t89 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02982BE0 */ _t90 = _t89 & 0x00000001u;
|
|
/* 02982BE0 */ if (_t90) goto L_02982BE4; else goto L_02982BE8;
|
|
L_02982BE4: ; // 0x2982be4
|
|
/* 02982BE4 */ cpu->r[6] = cpu->r[1] + 0x0000003Cu;
|
|
L_02982BE8: ; // 0x2982be8
|
|
/* 02982BE8 */ _t91 = cpu->r[6] + 0x00000000u;
|
|
/* 02982BE8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t91);
|
|
/* 02982BEC */ _t92 = cpu->r[28] + 0x00000000u;
|
|
/* 02982BEC */ cpu->r[7] = rbrew_read32(cpu->mem, _t92);
|
|
/* 02982BF0 */ _t93 = cpu->r[27] + 0x00000000u;
|
|
/* 02982BF0 */ rbrew_write32(cpu->mem, _t93, cpu->r[5]);
|
|
/* 02982BF4 */ _t94 = cpu->r[19] + 0x00000018u;
|
|
/* 02982BF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t94);
|
|
/* 02982BF8 */ cpu->r[8] = cpu->r[28];
|
|
/* 02982BFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[0]);
|
|
/* 02982C00 */ _t95 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02982C00 */ rbrew_write32(cpu->mem, _t95, cpu->r[0]);
|
|
/* 02982C04 */ _t96 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02982C04 */ _t97 = _t96 & 0x00000001u;
|
|
/* 02982C04 */ if (_t97) goto L_02982C08; else goto L_02982C0C;
|
|
L_02982C08: ; // 0x2982c08
|
|
/* 02982C08 */ cpu->r[8] = cpu->r[1] + 0x0000003Cu;
|
|
L_02982C0C: ; // 0x2982c0c
|
|
/* 02982C0C */ _t98 = cpu->r[8] + 0x00000000u;
|
|
/* 02982C0C */ cpu->r[9] = rbrew_read32(cpu->mem, _t98);
|
|
/* 02982C10 */ _t99 = cpu->r[1] + 0x00000024u;
|
|
/* 02982C10 */ cpu->r[11] = rbrew_read32(cpu->mem, _t99);
|
|
/* 02982C14 */ _t100 = cpu->r[28] + 0x00000000u;
|
|
/* 02982C14 */ rbrew_write32(cpu->mem, _t100, cpu->r[9]);
|
|
/* 02982C18 */ _t101 = cpu->r[19] + 0x0000000Cu;
|
|
/* 02982C18 */ cpu->r[12] = rbrew_read32(cpu->mem, _t101);
|
|
/* 02982C1C */ cpu->r[6] = cpu->r[11] + 0x00000001u;
|
|
/* 02982C20 */ _t102 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02982C20 */ cpu->r[5] = rbrew_read32(cpu->mem, _t102);
|
|
/* 02982C24 */ _t103 = cpu->r[1] + 0x00000018u;
|
|
/* 02982C24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t103);
|
|
/* 02982C28 */ cpu->r[10] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02982C2C */ _t104 = cpu->r[1] + 0x00000024u;
|
|
/* 02982C2C */ rbrew_write32(cpu->mem, _t104, cpu->r[6]);
|
|
/* 02982C30 */ _t105 = cpu->r[1] + 0x00000054u;
|
|
/* 02982C30 */ rbrew_write32(cpu->mem, _t105, cpu->r[0]);
|
|
/* 02982C34 */ cpu->r[6] = cpu->r[10] ^ 0x00000001u;
|
|
/* 02982C38 */ _t106 = cpu->r[1] + 0x0000004Du;
|
|
/* 02982C38 */ cpu->r[8] = rbrew_read8(cpu->mem, _t106);
|
|
/* 02982C3C */ _t107 = cpu->r[5] + 0x00000038u;
|
|
/* 02982C3C */ cpu->r[4] = rbrew_read32(cpu->mem, _t107);
|
|
/* 02982C40 */ cpu->r[8] = cpu->r[8] | cpu->r[6];
|
|
/* 02982C44 */ _t108 = cpu->r[1] + 0x00000050u;
|
|
/* 02982C44 */ rbrew_write32(cpu->mem, _t108, cpu->r[0]);
|
|
/* 02982C48 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[4]);
|
|
/* 02982C4C */ _t109 = cpu->r[1] + 0x0000004Du;
|
|
/* 02982C4C */ rbrew_write8(cpu->mem, _t109, (uint8_t)cpu->r[8]);
|
|
/* 02982C50 */ cpu->r[20] = 0x00000000u;
|
|
/* 02982C54 */ _t110 = cpu->r[5] + 0x0000003Cu;
|
|
/* 02982C54 */ cpu->r[12] = rbrew_read32(cpu->mem, _t110);
|
|
/* 02982C58 */ _t111 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02982C58 */ _t112 = _t111 & 0x00000001u;
|
|
/* 02982C58 */ if (_t112) goto L_02982C5C; else goto L_02982C8C;
|
|
L_02982C5C: ; // 0x2982c5c
|
|
/* 02982C5C */ cpu->r[5] = rbrew_rlwinm(cpu->r[11], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02982C60 */ _t113 = cpu->r[1] + 0x00000020u;
|
|
/* 02982C60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t113);
|
|
/* 02982C64 */ cpu->r[21] = cpu->r[12] + cpu->r[5];
|
|
/* 02982C68 */ _t114 = cpu->r[14] + 0x00000000u;
|
|
/* 02982C68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t114);
|
|
/* 02982C6C */ _t115 = cpu->r[12] + 0x00000028u;
|
|
/* 02982C6C */ cpu->r[6] = rbrew_read32(cpu->mem, _t115);
|
|
/* 02982C70 */ _t116 = cpu->r[1] + 0x00000038u;
|
|
/* 02982C70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t116);
|
|
/* 02982C74 */ cpu->r[0] = cpu->r[6] + cpu->r[0];
|
|
/* 02982C78 */ _t117 = cpu->r[21] + 0x00000000u;
|
|
/* 02982C78 */ rbrew_write32(cpu->mem, _t117, cpu->r[0]);
|
|
/* 02982C7C */ _t118 = cpu->r[12] + 0x00000008u;
|
|
/* 02982C7C */ cpu->r[9] = rbrew_read32(cpu->mem, _t118);
|
|
/* 02982C80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02982C84 */ _t119 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982C84 */ _t120 = _t119 & 0x00000001u;
|
|
/* 02982C84 */ if (_t120) goto L_02982CBC; else goto L_02982C88;
|
|
L_02982C88: ; // 0x2982c88
|
|
/* 02982C88 */ goto L_02982CB4;
|
|
L_02982C8C: ; // 0x2982c8c
|
|
/* 02982C8C */ cpu->r[21] = cpu->r[12];
|
|
/* 02982C90 */ _t121 = cpu->r[14] + 0x00000000u;
|
|
/* 02982C90 */ cpu->r[12] = rbrew_read32(cpu->mem, _t121);
|
|
/* 02982C94 */ _t122 = cpu->r[1] + 0x00000020u;
|
|
/* 02982C94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t122);
|
|
/* 02982C98 */ _t123 = cpu->r[12] + 0x00000028u;
|
|
/* 02982C98 */ cpu->r[6] = rbrew_read32(cpu->mem, _t123);
|
|
/* 02982C9C */ _t124 = cpu->r[1] + 0x00000038u;
|
|
/* 02982C9C */ cpu->r[12] = rbrew_read32(cpu->mem, _t124);
|
|
/* 02982CA0 */ cpu->r[0] = cpu->r[6] + cpu->r[0];
|
|
/* 02982CA4 */ _t125 = cpu->r[21] + 0x00000000u;
|
|
/* 02982CA4 */ rbrew_write32(cpu->mem, _t125, cpu->r[0]);
|
|
/* 02982CA8 */ _t126 = cpu->r[12] + 0x00000008u;
|
|
/* 02982CA8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t126);
|
|
/* 02982CAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02982CB0 */ _t127 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982CB0 */ _t128 = _t127 & 0x00000001u;
|
|
/* 02982CB0 */ if (_t128) goto L_02982CBC; else goto L_02982CB4;
|
|
L_02982CB4: ; // 0x2982cb4
|
|
/* 02982CB4 */ _t129 = cpu->r[1] + 0x00000028u;
|
|
/* 02982CB4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t129);
|
|
/* 02982CB8 */ _t130 = cpu->r[9] + cpu->r[11];
|
|
/* 02982CB8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t130);
|
|
L_02982CBC: ; // 0x2982cbc
|
|
/* 02982CBC */ _t131 = cpu->r[21] + 0x0000000Cu;
|
|
/* 02982CBC */ rbrew_write32(cpu->mem, _t131, cpu->r[9]);
|
|
/* 02982CC0 */ _t132 = cpu->r[31] + 0x0000001Cu;
|
|
/* 02982CC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t132);
|
|
/* 02982CC4 */ cpu->r[17] = 0x00000000u;
|
|
/* 02982CC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], cpu->r[7]);
|
|
/* 02982CCC */ _t133 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02982CCC */ _t134 = _t133 & 0x00000001u;
|
|
/* 02982CCC */ if (_t134) goto L_02982CD0; else goto L_02982EE4;
|
|
L_02982CD0: ; // 0x2982cd0
|
|
/* 02982CD0 */ cpu->r[26] = 0x00000001u;
|
|
/* 02982CD4 */ cpu->r[25] = 0x00000000u;
|
|
/* 02982CD8 */ cpu->r[23] = rbrew_rlwinm(cpu->r[20], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02982CDC */ cpu->r[22] = 0x101D0000u;
|
|
L_02982CE0: ; // 0x2982ce0
|
|
/* 02982CE0 */ cpu->r[4] = cpu->r[17];
|
|
/* 02982CE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 02982CE8 */ Gambit_fn_0297FC7C(cpu);
|
|
/* 02982CEC */ _t135 = cpu->r[31] + 0x0000001Cu;
|
|
/* 02982CEC */ cpu->r[11] = rbrew_read32(cpu->mem, _t135);
|
|
/* 02982CF0 */ _t136 = cpu->r[24] + 0xFFFFE218u;
|
|
/* 02982CF0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t136);
|
|
/* 02982CF4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[11]);
|
|
/* 02982CF8 */ cpu->r[11] = 0x00000000u;
|
|
/* 02982CFC */ _t137 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02982CFC */ _t138 = _t137 & 0x00000001u;
|
|
/* 02982CFC */ if (_t138) goto L_02982D00; else goto L_02982D08;
|
|
L_02982D00: ; // 0x2982d00
|
|
/* 02982D00 */ _t139 = cpu->r[31] + 0x00000024u;
|
|
/* 02982D00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t139);
|
|
/* 02982D04 */ _t140 = cpu->r[12] + cpu->r[25];
|
|
/* 02982D04 */ cpu->r[11] = rbrew_read32(cpu->mem, _t140);
|
|
L_02982D08: ; // 0x2982d08
|
|
/* 02982D08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02982D0C */ _t141 = cpu->r[11] + 0x00000000u;
|
|
/* 02982D0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t141);
|
|
/* 02982D10 */ _t142 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982D10 */ _t143 = _t142 & 0x00000001u;
|
|
/* 02982D10 */ if (_t143) goto L_02982D14; else goto L_02982D24;
|
|
L_02982D14: ; // 0x2982d14
|
|
/* 02982D14 */ cpu->r[5] = 0x10150000u;
|
|
/* 02982D18 */ _t144 = cpu->r[24] + 0xFFFFE218u;
|
|
/* 02982D18 */ rbrew_write32(cpu->mem, _t144, cpu->r[26]);
|
|
/* 02982D1C */ cpu->r[5] = cpu->r[5] + 0xFFFFEDC8u;
|
|
/* 02982D20 */ _t145 = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02982D20 */ rbrew_write32(cpu->mem, _t145, cpu->r[5]);
|
|
L_02982D24: ; // 0x2982d24
|
|
/* 02982D24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02982D28 */ _t146 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982D28 */ _t147 = _t146 & 0x00000001u;
|
|
/* 02982D28 */ if (_t147) goto L_02982D5C; else goto L_02982D2C;
|
|
L_02982D2C: ; // 0x2982d2c
|
|
/* 02982D2C */ _t148 = cpu->r[30] + 0x00000088u;
|
|
/* 02982D2C */ cpu->r[7] = rbrew_read32(cpu->mem, _t148);
|
|
/* 02982D30 */ _t149 = cpu->r[7] + 0x0000000Cu;
|
|
/* 02982D30 */ cpu->r[0] = rbrew_read32(cpu->mem, _t149);
|
|
/* 02982D34 */ cpu->ctr = cpu->r[0];
|
|
/* 02982D38 */ cpu->r[3] = cpu->r[30];
|
|
/* 02982D3C */ cpu->r[4] = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02982D40 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02982D44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982D48 */ _t150 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982D48 */ _t151 = _t150 & 0x00000001u;
|
|
/* 02982D48 */ if (_t151) goto L_02982D5C; else goto L_02982D4C;
|
|
L_02982D4C: ; // 0x2982d4c
|
|
/* 02982D4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02982D50 */ cpu->r[6] = cpu->r[30];
|
|
/* 02982D54 */ _t152 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982D54 */ _t153 = _t152 & 0x00000001u;
|
|
/* 02982D54 */ if (_t153) goto L_02982D58; else goto L_02982D78;
|
|
L_02982D58: ; // 0x2982d58
|
|
/* 02982D58 */ goto L_02982E24;
|
|
L_02982D5C: ; // 0x2982d5c
|
|
/* 02982D5C */ _t154 = cpu->r[31] + 0x0000001Cu;
|
|
/* 02982D5C */ cpu->r[9] = rbrew_read32(cpu->mem, _t154);
|
|
/* 02982D60 */ cpu->r[17] = cpu->r[17] + 0x00000001u;
|
|
/* 02982D64 */ cpu->r[6] = 0x00000000u;
|
|
/* 02982D68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], cpu->r[9]);
|
|
/* 02982D6C */ cpu->r[25] = cpu->r[25] + 0x00000004u;
|
|
/* 02982D70 */ _t155 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02982D70 */ _t156 = _t155 & 0x00000001u;
|
|
/* 02982D70 */ if (_t156) goto L_02982CE0; else goto L_02982D74;
|
|
L_02982D74: ; // 0x2982d74
|
|
/* 02982D74 */ goto L_02982E38;
|
|
L_02982D78: ; // 0x2982d78
|
|
/* 02982D78 */ _t157 = cpu->r[19] + 0x00000014u;
|
|
/* 02982D78 */ cpu->r[15] = rbrew_read16(cpu->mem, _t157);
|
|
/* 02982D7C */ _t158 = cpu->r[6] + 0x000000ACu;
|
|
/* 02982D7C */ cpu->r[4] = rbrew_read32(cpu->mem, _t158);
|
|
/* 02982D80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[15], 0x00000000u);
|
|
/* 02982D84 */ _t159 = cpu->r[4] + 0x00000000u;
|
|
/* 02982D84 */ cpu->r[8] = rbrew_read32(cpu->mem, _t159);
|
|
/* 02982D88 */ _t160 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982D88 */ _t161 = _t160 & 0x00000001u;
|
|
/* 02982D88 */ if (_t161) goto L_02982E24; else goto L_02982D8C;
|
|
L_02982D8C: ; // 0x2982d8c
|
|
/* 02982D8C */ cpu->r[29] = cpu->r[19] + 0x00000020u;
|
|
/* 02982D90 */ cpu->r[30] = cpu->r[8] + 0x00000010u;
|
|
/* 02982D94 */ cpu->r[18] = cpu->r[1] + 0x0000008Cu;
|
|
/* 02982D98 */ cpu->r[16] = 0x00000000u;
|
|
L_02982D9C: ; // 0x2982d9c
|
|
/* 02982D9C */ _t162 = cpu->r[29] + 0x00000000u;
|
|
/* 02982D9C */ cpu->r[9] = rbrew_read32(cpu->mem, _t162);
|
|
/* 02982DA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02982DA4 */ cpu->r[8] = 0x00000000u;
|
|
/* 02982DA8 */ _t163 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982DA8 */ _t164 = _t163 & 0x00000001u;
|
|
/* 02982DA8 */ if (_t164) goto L_02982DB0; else goto L_02982DAC;
|
|
L_02982DAC: ; // 0x2982dac
|
|
/* 02982DAC */ cpu->r[8] = cpu->r[29] + cpu->r[9];
|
|
L_02982DB0: ; // 0x2982db0
|
|
/* 02982DB0 */ cpu->r[6] = cpu->r[8] + cpu->r[16];
|
|
/* 02982DB4 */ _t165 = cpu->r[6] + 0x00000004u;
|
|
/* 02982DB4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t165);
|
|
/* 02982DB8 */ cpu->r[9] = cpu->r[6] + 0x00000004u;
|
|
/* 02982DBC */ cpu->r[0] = 0x00000000u;
|
|
/* 02982DC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02982DC4 */ _t166 = cpu->r[30] + 0x00000000u;
|
|
/* 02982DC4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t166);
|
|
/* 02982DC8 */ _t167 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982DC8 */ _t168 = _t167 & 0x00000001u;
|
|
/* 02982DC8 */ if (_t168) goto L_02982DD4; else goto L_02982DCC;
|
|
L_02982DCC: ; // 0x2982dcc
|
|
/* 02982DCC */ cpu->r[8] = cpu->r[9] + cpu->r[10];
|
|
/* 02982DD0 */ cpu->r[0] = cpu->r[8] + 0xFFFFFFFCu;
|
|
L_02982DD4: ; // 0x2982dd4
|
|
/* 02982DD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02982DD8 */ cpu->r[3] = 0x00000000u;
|
|
/* 02982DDC */ cpu->r[4] = cpu->r[0];
|
|
/* 02982DE0 */ _t169 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982DE0 */ _t170 = _t169 & 0x00000001u;
|
|
/* 02982DE0 */ if (_t170) goto L_02982DE8; else goto L_02982DE4;
|
|
L_02982DE4: ; // 0x2982de4
|
|
/* 02982DE4 */ cpu->r[3] = cpu->r[30] + cpu->r[11];
|
|
L_02982DE8: ; // 0x2982de8
|
|
/* 02982DE8 */ Gambit_fn_02C606B8(cpu);
|
|
/* 02982DEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982DF0 */ _t171 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02982DF0 */ _t172 = _t171 & 0x00000001u;
|
|
/* 02982DF0 */ if (_t172) goto L_02982E18; else goto L_02982DF4;
|
|
L_02982DF4: ; // 0x2982df4
|
|
/* 02982DF4 */ _t173 = cpu->r[31] + 0x0000001Cu;
|
|
/* 02982DF4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t173);
|
|
/* 02982DF8 */ cpu->r[20] = cpu->r[20] + 0x00000001u;
|
|
/* 02982DFC */ _t174 = cpu->r[18] + cpu->r[23];
|
|
/* 02982DFC */ rbrew_write32(cpu->mem, _t174, cpu->r[17]);
|
|
/* 02982E00 */ cpu->r[17] = cpu->r[17] + 0x00000001u;
|
|
/* 02982E04 */ cpu->r[23] = cpu->r[23] + 0x00000004u;
|
|
/* 02982E08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], cpu->r[9]);
|
|
/* 02982E0C */ cpu->r[25] = cpu->r[25] + 0x00000004u;
|
|
/* 02982E10 */ _t175 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02982E10 */ _t176 = _t175 & 0x00000001u;
|
|
/* 02982E10 */ if (_t176) goto L_02982CE0; else goto L_02982E14;
|
|
L_02982E14: ; // 0x2982e14
|
|
/* 02982E14 */ goto L_02982E38;
|
|
L_02982E18: ; // 0x2982e18
|
|
/* 02982E18 */ cpu->r[15] = cpu->r[15] + 0xFFFFFFFFu;
|
|
/* 02982E18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[15], 0x00000000u);
|
|
/* 02982E1C */ cpu->r[16] = cpu->r[16] + 0x00000018u;
|
|
/* 02982E20 */ _t177 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982E20 */ _t178 = _t177 & 0x00000001u;
|
|
/* 02982E20 */ if (_t178) goto L_02982E24; else goto L_02982D9C;
|
|
L_02982E24: ; // 0x2982e24
|
|
/* 02982E24 */ _t179 = cpu->r[31] + 0x0000001Cu;
|
|
/* 02982E24 */ cpu->r[9] = rbrew_read32(cpu->mem, _t179);
|
|
/* 02982E28 */ cpu->r[17] = cpu->r[17] + 0x00000001u;
|
|
/* 02982E2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], cpu->r[9]);
|
|
/* 02982E30 */ cpu->r[25] = cpu->r[25] + 0x00000004u;
|
|
/* 02982E34 */ _t180 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02982E34 */ _t181 = _t180 & 0x00000001u;
|
|
/* 02982E34 */ if (_t181) goto L_02982CE0; else goto L_02982E38;
|
|
L_02982E38: ; // 0x2982e38
|
|
/* 02982E38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 02982E3C */ _t182 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02982E3C */ _t183 = _t182 & 0x00000001u;
|
|
/* 02982E3C */ if (_t183) goto L_02982E40; else goto L_02982EE4;
|
|
L_02982E40: ; // 0x2982e40
|
|
/* 02982E40 */ _t184 = cpu->r[1] + 0x00000030u;
|
|
/* 02982E40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t184);
|
|
/* 02982E44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982E48 */ _t185 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982E48 */ _t186 = _t185 & 0x00000001u;
|
|
/* 02982E48 */ if (_t186) goto L_02982E4C; else goto L_02982E58;
|
|
L_02982E4C: ; // 0x2982e4c
|
|
/* 02982E4C */ _t187 = cpu->r[1] + 0x00000010u;
|
|
/* 02982E4C */ cpu->r[9] = rbrew_read32(cpu->mem, _t187);
|
|
/* 02982E50 */ _t188 = cpu->r[9] + 0x00000000u;
|
|
/* 02982E50 */ cpu->r[3] = rbrew_read32(cpu->mem, _t188);
|
|
/* 02982E54 */ Gambit_fn_02826F20(cpu);
|
|
L_02982E58: ; // 0x2982e58
|
|
/* 02982E58 */ _t189 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02982E58 */ cpu->r[10] = rbrew_read32(cpu->mem, _t189);
|
|
/* 02982E5C */ _t190 = cpu->r[10] + 0x00000034u;
|
|
/* 02982E5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t190);
|
|
/* 02982E60 */ cpu->ctr = cpu->r[11];
|
|
/* 02982E64 */ cpu->r[5] = 0x00000004u;
|
|
/* 02982E68 */ cpu->r[4] = rbrew_rlwinm(cpu->r[20], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02982E6C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02982E70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 02982E74 */ cpu->r[0] = cpu->r[20];
|
|
/* 02982E78 */ _t191 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02982E78 */ _t192 = _t191 & 0x00000001u;
|
|
/* 02982E78 */ if (_t192) goto L_02982E80; else goto L_02982E7C;
|
|
L_02982E7C: ; // 0x2982e7c
|
|
/* 02982E7C */ cpu->r[0] = 0x00000001u;
|
|
L_02982E80: ; // 0x2982e80
|
|
/* 02982E80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982E84 */ _t193 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982E84 */ _t194 = _t193 & 0x00000001u;
|
|
/* 02982E84 */ if (_t194) goto L_02982E88; else goto L_02982EA8;
|
|
L_02982E88: ; // 0x2982e88
|
|
/* 02982E88 */ _t195 = cpu->r[21] + 0x00000004u;
|
|
/* 02982E88 */ cpu->r[7] = rbrew_read32(cpu->mem, _t195);
|
|
/* 02982E8C */ _t196 = cpu->r[21] + 0x00000008u;
|
|
/* 02982E8C */ cpu->r[3] = rbrew_read32(cpu->mem, _t196);
|
|
/* 02982E90 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02982E94 */ cpu->r[5] = cpu->r[3] + cpu->r[12];
|
|
/* 02982E98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[5]);
|
|
/* 02982E9C */ cpu->r[7] = cpu->r[3];
|
|
/* 02982EA0 */ _t197 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982EA0 */ _t198 = _t197 & 0x00000001u;
|
|
/* 02982EA0 */ if (_t198) goto L_02982EE4; else goto L_02982EA4;
|
|
L_02982EA4: ; // 0x2982ea4
|
|
/* 02982EA4 */ goto L_02982EC4;
|
|
L_02982EA8: ; // 0x2982ea8
|
|
/* 02982EA8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[20], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02982EAC */ _t199 = cpu->r[21] + 0x00000004u;
|
|
/* 02982EAC */ rbrew_write32(cpu->mem, _t199, cpu->r[20]);
|
|
/* 02982EB0 */ cpu->r[5] = cpu->r[3] + cpu->r[12];
|
|
/* 02982EB4 */ _t200 = cpu->r[21] + 0x00000008u;
|
|
/* 02982EB4 */ rbrew_write32(cpu->mem, _t200, cpu->r[3]);
|
|
/* 02982EB8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[5]);
|
|
/* 02982EBC */ cpu->r[7] = cpu->r[3];
|
|
/* 02982EC0 */ _t201 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982EC0 */ _t202 = _t201 & 0x00000001u;
|
|
/* 02982EC0 */ if (_t202) goto L_02982EE4; else goto L_02982EC4;
|
|
L_02982EC4: ; // 0x2982ec4
|
|
/* 02982EC4 */ cpu->r[11] = cpu->r[1] + 0x0000008Cu;
|
|
L_02982EC8: ; // 0x2982ec8
|
|
/* 02982EC8 */ cpu->r[0] = cpu->r[3] - cpu->r[7];
|
|
/* 02982ECC */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x00000000u, 0x0000001Du);
|
|
/* 02982ED0 */ _t203 = cpu->r[4] + cpu->r[11];
|
|
/* 02982ED0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t203);
|
|
/* 02982ED4 */ _t204 = cpu->r[3] + 0x00000000u;
|
|
/* 02982ED4 */ rbrew_write16(cpu->mem, _t204, (uint16_t)cpu->r[6]);
|
|
/* 02982ED8 */ cpu->r[3] = cpu->r[3] + 0x00000002u;
|
|
/* 02982EDC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[5]);
|
|
/* 02982EE0 */ _t205 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982EE0 */ _t206 = _t205 & 0x00000001u;
|
|
/* 02982EE0 */ if (_t206) goto L_02982EE4; else goto L_02982EC8;
|
|
L_02982EE4: ; // 0x2982ee4
|
|
/* 02982EE4 */ _t207 = cpu->r[1] + 0x00000008u;
|
|
/* 02982EE4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t207);
|
|
/* 02982EE8 */ _t208 = cpu->r[1] + 0x00000020u;
|
|
/* 02982EE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t208);
|
|
/* 02982EEC */ cpu->r[6] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 02982EEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02982EF0 */ _t209 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02982EF0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t209);
|
|
/* 02982EF4 */ cpu->r[10] = cpu->r[12] + 0x00000008u;
|
|
/* 02982EF8 */ _t210 = cpu->r[1] + 0x00000008u;
|
|
/* 02982EF8 */ rbrew_write32(cpu->mem, _t210, cpu->r[6]);
|
|
/* 02982EFC */ cpu->r[0] = cpu->r[4] + 0x00000010u;
|
|
/* 02982F00 */ _t211 = cpu->r[1] + 0x00000020u;
|
|
/* 02982F00 */ rbrew_write32(cpu->mem, _t211, cpu->r[10]);
|
|
/* 02982F04 */ _t212 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02982F04 */ rbrew_write32(cpu->mem, _t212, cpu->r[0]);
|
|
/* 02982F08 */ _t213 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982F08 */ _t214 = _t213 & 0x00000001u;
|
|
/* 02982F08 */ if (_t214) goto L_02982F2C; else goto L_02982F0C;
|
|
L_02982F0C: ; // 0x2982f0c
|
|
/* 02982F0C */ _t215 = cpu->r[14] + 0x00000000u;
|
|
/* 02982F0C */ cpu->r[5] = rbrew_read32(cpu->mem, _t215);
|
|
/* 02982F10 */ _t216 = cpu->r[5] + 0x0000001Cu;
|
|
/* 02982F10 */ cpu->r[5] = rbrew_read32(cpu->mem, _t216);
|
|
/* 02982F14 */ _t217 = cpu->r[5] + 0x00000028u;
|
|
/* 02982F14 */ cpu->r[7] = rbrew_read32(cpu->mem, _t217);
|
|
/* 02982F18 */ cpu->r[6] = 0x00000000u;
|
|
/* 02982F1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02982F20 */ cpu->r[4] = cpu->r[5] + 0x00000028u;
|
|
/* 02982F24 */ _t218 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982F24 */ _t219 = _t218 & 0x00000001u;
|
|
/* 02982F24 */ if (_t219) goto L_02982BAC; else goto L_02982F28;
|
|
L_02982F28: ; // 0x2982f28
|
|
/* 02982F28 */ goto L_02982BA8;
|
|
L_02982F2C: ; // 0x2982f2c
|
|
/* 02982F2C */ _t220 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02982F2C */ cpu->r[8] = rbrew_read32(cpu->mem, _t220);
|
|
/* 02982F30 */ _t221 = cpu->r[1] + 0x00000014u;
|
|
/* 02982F30 */ cpu->r[9] = rbrew_read32(cpu->mem, _t221);
|
|
/* 02982F34 */ cpu->r[14] = cpu->r[14] + 0x00000004u;
|
|
/* 02982F38 */ cpu->r[7] = cpu->r[8] + 0x00000001u;
|
|
/* 02982F3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[9]);
|
|
/* 02982F40 */ _t222 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02982F40 */ rbrew_write32(cpu->mem, _t222, cpu->r[7]);
|
|
/* 02982F44 */ _t223 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982F44 */ _t224 = _t223 & 0x00000001u;
|
|
/* 02982F44 */ if (_t224) goto L_02982F48; else goto L_02982B54;
|
|
L_02982F48: ; // 0x2982f48
|
|
/* 02982F48 */ _t225 = cpu->r[1] + 0x00000038u;
|
|
/* 02982F48 */ cpu->r[6] = rbrew_read32(cpu->mem, _t225);
|
|
/* 02982F4C */ _t226 = cpu->r[6] + 0x00000000u;
|
|
/* 02982F4C */ cpu->r[23] = rbrew_read32(cpu->mem, _t226);
|
|
/* 02982F50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 02982F54 */ _t227 = cpu->r[1] + 0x00000030u;
|
|
/* 02982F54 */ cpu->r[3] = rbrew_read32(cpu->mem, _t227);
|
|
/* 02982F58 */ _t228 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02982F58 */ _t229 = _t228 & 0x00000001u;
|
|
/* 02982F58 */ if (_t229) goto L_02982F5C; else goto L_0298302C;
|
|
L_02982F5C: ; // 0x2982f5c
|
|
/* 02982F5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982F60 */ _t230 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982F60 */ _t231 = _t230 & 0x00000001u;
|
|
/* 02982F60 */ if (_t231) goto L_02982F64; else goto L_02982F70;
|
|
L_02982F64: ; // 0x2982f64
|
|
/* 02982F64 */ _t232 = cpu->r[1] + 0x00000010u;
|
|
/* 02982F64 */ cpu->r[5] = rbrew_read32(cpu->mem, _t232);
|
|
/* 02982F68 */ _t233 = cpu->r[5] + 0x00000000u;
|
|
/* 02982F68 */ cpu->r[3] = rbrew_read32(cpu->mem, _t233);
|
|
/* 02982F6C */ Gambit_fn_02826F20(cpu);
|
|
L_02982F70: ; // 0x2982f70
|
|
/* 02982F70 */ _t234 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02982F70 */ cpu->r[8] = rbrew_read32(cpu->mem, _t234);
|
|
/* 02982F74 */ _t235 = cpu->r[8] + 0x00000034u;
|
|
/* 02982F74 */ cpu->r[9] = rbrew_read32(cpu->mem, _t235);
|
|
/* 02982F78 */ cpu->ctr = cpu->r[9];
|
|
/* 02982F7C */ cpu->r[5] = 0x00000004u;
|
|
/* 02982F80 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[23] * (int32_t)0x0000006Cu);
|
|
/* 02982F84 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02982F88 */ cpu->r[24] = cpu->r[3];
|
|
/* 02982F8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 02982F90 */ cpu->r[31] = cpu->r[23];
|
|
/* 02982F94 */ cpu->r[0] = 0x00000000u;
|
|
/* 02982F98 */ _t236 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02982F98 */ _t237 = _t236 & 0x00000001u;
|
|
/* 02982F98 */ if (_t237) goto L_02982FA0; else goto L_02982F9C;
|
|
L_02982F9C: ; // 0x2982f9c
|
|
/* 02982F9C */ cpu->r[31] = 0x00000001u;
|
|
L_02982FA0: ; // 0x2982fa0
|
|
/* 02982FA0 */ cpu->r[29] = 0x101B0000u;
|
|
/* 02982FA4 */ cpu->r[26] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000006Cu);
|
|
/* 02982FA8 */ cpu->r[27] = 0x00000000u;
|
|
/* 02982FAC */ cpu->r[29] = cpu->r[29] + 0xFFFFEF08u;
|
|
/* 02982FB0 */ cpu->r[28] = 0xFFFFFFFFu;
|
|
L_02982FB4: ; // 0x2982fb4
|
|
/* 02982FB4 */ cpu->r[30] = cpu->r[24] + cpu->r[26];
|
|
/* 02982FB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02982FB8 */ _t238 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982FB8 */ _t239 = _t238 & 0x00000001u;
|
|
/* 02982FB8 */ if (_t239) goto L_0298300C; else goto L_02982FBC;
|
|
L_02982FBC: ; // 0x2982fbc
|
|
/* 02982FBC */ _t240 = cpu->r[30] + 0x00000002u;
|
|
/* 02982FBC */ rbrew_write16(cpu->mem, _t240, (uint16_t)cpu->r[28]);
|
|
/* 02982FC0 */ cpu->r[25] = cpu->r[30] + 0x0000000Cu;
|
|
/* 02982FC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 02982FC4 */ _t241 = cpu->r[30] + 0x00000000u;
|
|
/* 02982FC4 */ rbrew_write16(cpu->mem, _t241, (uint16_t)cpu->r[28]);
|
|
/* 02982FC8 */ _t242 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982FC8 */ _t243 = _t242 & 0x00000001u;
|
|
/* 02982FC8 */ if (_t243) goto L_02982FCC; else goto L_02982FDC;
|
|
L_02982FCC: ; // 0x2982fcc
|
|
/* 02982FCC */ cpu->r[3] = 0x0000005Cu;
|
|
/* 02982FD0 */ Gambit_fn_02801A78(cpu);
|
|
/* 02982FD4 */ cpu->r[25] = cpu->r[3];
|
|
/* 02982FD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 02982FD8 */ _t244 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982FD8 */ _t245 = _t244 & 0x00000001u;
|
|
/* 02982FD8 */ if (_t245) goto L_02982FF0; else goto L_02982FDC;
|
|
L_02982FDC: ; // 0x2982fdc
|
|
/* 02982FDC */ cpu->r[3] = cpu->r[25];
|
|
/* 02982FE0 */ Gambit_fn_02C4F040(cpu);
|
|
/* 02982FE4 */ _t246 = cpu->r[25] + 0x00000044u;
|
|
/* 02982FE4 */ rbrew_write32(cpu->mem, _t246, cpu->r[27]);
|
|
/* 02982FE8 */ _t247 = cpu->r[25] + 0x00000034u;
|
|
/* 02982FE8 */ rbrew_write32(cpu->mem, _t247, cpu->r[29]);
|
|
/* 02982FEC */ _t248 = cpu->r[25] + 0x00000058u;
|
|
/* 02982FEC */ rbrew_write32(cpu->mem, _t248, cpu->r[27]);
|
|
L_02982FF0: ; // 0x2982ff0
|
|
/* 02982FF0 */ cpu->r[3] = cpu->r[30] + 0x00000068u;
|
|
/* 02982FF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02982FF4 */ _t249 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02982FF4 */ _t250 = _t249 & 0x00000001u;
|
|
/* 02982FF4 */ if (_t250) goto L_02982FF8; else goto L_02983008;
|
|
L_02982FF8: ; // 0x2982ff8
|
|
/* 02982FF8 */ cpu->r[3] = 0x00000004u;
|
|
/* 02982FFC */ Gambit_fn_02801A78(cpu);
|
|
/* 02983000 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02983004 */ _t251 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983004 */ _t252 = _t251 & 0x00000001u;
|
|
/* 02983004 */ if (_t252) goto L_0298300C; else goto L_02983008;
|
|
L_02983008: ; // 0x2983008
|
|
/* 02983008 */ _t253 = cpu->r[3] + 0x00000000u;
|
|
/* 02983008 */ rbrew_write32(cpu->mem, _t253, cpu->r[27]);
|
|
L_0298300C: ; // 0x298300c
|
|
/* 0298300C */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 0298300C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02983010 */ cpu->r[26] = cpu->r[26] + 0x0000006Cu;
|
|
/* 02983014 */ _t254 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983014 */ _t255 = _t254 & 0x00000001u;
|
|
/* 02983014 */ if (_t255) goto L_02983018; else goto L_02982FB4;
|
|
L_02983018: ; // 0x2983018
|
|
/* 02983018 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 0298301C */ _t256 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298301C */ _t257 = _t256 & 0x00000001u;
|
|
/* 0298301C */ if (_t257) goto L_0298302C; else goto L_02983020;
|
|
L_02983020: ; // 0x2983020
|
|
/* 02983020 */ _t258 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983020 */ cpu->r[4] = rbrew_read32(cpu->mem, _t258);
|
|
/* 02983024 */ _t259 = cpu->r[4] + 0x00000028u;
|
|
/* 02983024 */ rbrew_write32(cpu->mem, _t259, cpu->r[23]);
|
|
/* 02983028 */ _t260 = cpu->r[4] + 0x0000002Cu;
|
|
/* 02983028 */ rbrew_write32(cpu->mem, _t260, cpu->r[24]);
|
|
L_0298302C: ; // 0x298302c
|
|
/* 0298302C */ cpu->r[3] = cpu->r[1] + 0x00000040u;
|
|
/* 02983030 */ Gambit_fn_02C53FC4(cpu);
|
|
/* 02983034 */ _t261 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983034 */ cpu->r[11] = rbrew_read32(cpu->mem, _t261);
|
|
/* 02983038 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298303C */ _t262 = cpu->r[11] + 0x0000008Au;
|
|
/* 0298303C */ cpu->r[11] = rbrew_read16(cpu->mem, _t262);
|
|
/* 02983040 */ cpu->r[10] = cpu->r[3] + 0x0000003Fu;
|
|
/* 02983044 */ _t263 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02983044 */ rbrew_write32(cpu->mem, _t263, cpu->r[0]);
|
|
/* 02983048 */ cpu->r[3] = cpu->r[1] + 0x00000078u;
|
|
/* 0298304C */ _t264 = cpu->r[1] + 0x00000078u;
|
|
/* 0298304C */ rbrew_write32(cpu->mem, _t264, cpu->r[11]);
|
|
/* 02983050 */ cpu->r[25] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000000u, 0x00000019u);
|
|
/* 02983054 */ _t265 = cpu->r[1] + 0x00000080u;
|
|
/* 02983054 */ rbrew_write32(cpu->mem, _t265, cpu->r[0]);
|
|
/* 02983058 */ Gambit_fn_02C54F18(cpu);
|
|
/* 0298305C */ _t266 = cpu->r[1] + 0x00000038u;
|
|
/* 0298305C */ cpu->r[8] = rbrew_read32(cpu->mem, _t266);
|
|
/* 02983060 */ _t267 = cpu->r[8] + 0x00000000u;
|
|
/* 02983060 */ cpu->r[0] = rbrew_read32(cpu->mem, _t267);
|
|
/* 02983064 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[25] * (int32_t)cpu->r[0]);
|
|
/* 02983068 */ _t268 = cpu->r[1] + 0x00000030u;
|
|
/* 02983068 */ cpu->r[4] = rbrew_read32(cpu->mem, _t268);
|
|
/* 0298306C */ cpu->r[26] = cpu->r[3];
|
|
/* 02983070 */ cpu->r[5] = 0x00000040u;
|
|
/* 02983074 */ cpu->r[3] = cpu->r[12] + cpu->r[26];
|
|
/* 02983078 */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298307C */ _t269 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298307C */ cpu->r[7] = rbrew_read32(cpu->mem, _t269);
|
|
/* 02983080 */ _t270 = cpu->r[7] + 0x00000028u;
|
|
/* 02983080 */ cpu->r[0] = rbrew_read32(cpu->mem, _t270);
|
|
/* 02983084 */ _t271 = cpu->r[7] + 0x0000002Cu;
|
|
/* 02983084 */ cpu->r[31] = rbrew_read32(cpu->mem, _t271);
|
|
/* 02983088 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000006Cu);
|
|
/* 0298308C */ cpu->r[30] = cpu->r[31] + cpu->r[0];
|
|
/* 02983090 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02983094 */ cpu->r[27] = cpu->r[3];
|
|
/* 02983098 */ _t272 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983098 */ _t273 = _t272 & 0x00000001u;
|
|
/* 02983098 */ if (_t273) goto L_029830E4; else goto L_0298309C;
|
|
L_0298309C: ; // 0x298309c
|
|
/* 0298309C */ cpu->r[6] = 0x10150000u;
|
|
/* 029830A0 */ cpu->r[28] = 0xFFFFFFFFu;
|
|
/* 029830A4 */ _t274 = cpu->r[6] + 0xFFFFEE20u;
|
|
/* 029830A4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t274);
|
|
/* 029830A8 */ cpu->r[29] = 0x00000000u;
|
|
L_029830AC: ; // 0x29830ac
|
|
/* 029830AC */ cpu->r[4] = cpu->r[1] + 0x00000040u;
|
|
/* 029830B0 */ cpu->r[6] = cpu->r[25];
|
|
/* 029830B4 */ cpu->r[5] = cpu->r[27];
|
|
/* 029830B8 */ cpu->r[3] = cpu->r[31] + 0x0000000Cu;
|
|
/* 029830BC */ Gambit_fn_02C53E8C(cpu);
|
|
/* 029830C0 */ _t275 = cpu->r[31] + 0x00000008u;
|
|
/* 029830C0 */ rbrew_write_f32(cpu->mem, _t275, cpu->f[31]);
|
|
/* 029830C4 */ _t276 = cpu->r[31] + 0x00000000u;
|
|
/* 029830C4 */ rbrew_write16(cpu->mem, _t276, (uint16_t)cpu->r[28]);
|
|
/* 029830C8 */ _t277 = cpu->r[31] + 0x00000004u;
|
|
/* 029830C8 */ rbrew_write32(cpu->mem, _t277, cpu->r[29]);
|
|
/* 029830CC */ _t278 = cpu->r[31] + 0x00000068u;
|
|
/* 029830CC */ rbrew_write32(cpu->mem, _t278, cpu->r[29]);
|
|
/* 029830D0 */ _t279 = cpu->r[31] + 0x00000002u;
|
|
/* 029830D0 */ rbrew_write16(cpu->mem, _t279, (uint16_t)cpu->r[28]);
|
|
/* 029830D4 */ cpu->r[31] = cpu->r[31] + 0x0000006Cu;
|
|
/* 029830D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029830DC */ cpu->r[27] = cpu->r[27] + cpu->r[25];
|
|
/* 029830E0 */ _t280 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029830E0 */ _t281 = _t280 & 0x00000001u;
|
|
/* 029830E0 */ if (_t281) goto L_029830E4; else goto L_029830AC;
|
|
L_029830E4: ; // 0x29830e4
|
|
/* 029830E4 */ _t282 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029830E4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t282);
|
|
/* 029830E8 */ cpu->r[5] = cpu->r[27];
|
|
/* 029830EC */ cpu->r[4] = cpu->r[1] + 0x00000078u;
|
|
/* 029830F0 */ cpu->r[3] = cpu->r[6] + 0x00000010u;
|
|
/* 029830F4 */ cpu->r[6] = cpu->r[26];
|
|
/* 029830F8 */ Gambit_fn_02C54E74(cpu);
|
|
/* 029830FC */ _t283 = cpu->r[1] + 0x00000034u;
|
|
/* 029830FC */ cpu->r[5] = rbrew_read32(cpu->mem, _t283);
|
|
/* 02983100 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02983104 */ _t284 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983104 */ _t285 = _t284 & 0x00000001u;
|
|
/* 02983104 */ if (_t285) goto L_02983130; else goto L_02983108;
|
|
L_02983108: ; // 0x2983108
|
|
/* 02983108 */ _t286 = cpu->r[1] + 0x00000034u;
|
|
/* 02983108 */ cpu->r[12] = rbrew_read32(cpu->mem, _t286);
|
|
/* 0298310C */ cpu->r[7] = 0x00000007u;
|
|
/* 02983110 */ cpu->r[5] = cpu->r[1] + 0x0000003Cu;
|
|
/* 02983114 */ cpu->ctr = cpu->r[7];
|
|
/* 02983118 */ cpu->r[6] = cpu->r[12] + 0xFFFFFFFCu;
|
|
L_0298311C: ; // 0x298311c
|
|
/* 0298311C */ _t287 = cpu->r[5] + 0x00000004u;
|
|
/* 0298311C */ cpu->r[8] = rbrew_read32(cpu->mem, _t287);
|
|
/* 02983120 */ _t288 = cpu->r[6] + 0x00000004u;
|
|
/* 02983120 */ rbrew_write32(cpu->mem, _t288, cpu->r[8]);
|
|
/* 02983124 */ _t289 = cpu->r[5] + 0x00000008u;
|
|
/* 02983124 */ cpu->r[0] = rbrew_read32(cpu->mem, _t289);
|
|
/* 02983124 */ cpu->r[5] = _t289;
|
|
/* 02983128 */ _t290 = cpu->r[6] + 0x00000008u;
|
|
/* 02983128 */ rbrew_write32(cpu->mem, _t290, cpu->r[0]);
|
|
/* 02983128 */ cpu->r[6] = _t290;
|
|
/* 0298312C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298312C */ _t291 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298312C */ _t292 = _t291 >> (0x00000002u & 31u);
|
|
/* 0298312C */ _t293 = _t292 & 0x00000001u;
|
|
/* 0298312C */ if (_t293) goto L_0298311C; else goto L_02983130;
|
|
L_02983130: ; // 0x2983130
|
|
/* 02983130 */ /* nop */
|
|
/* 02983134 */ _t294 = cpu->r[1] + 0x000004D8u;
|
|
/* 02983134 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t294);
|
|
/* 02983138 */ _t295 = cpu->r[1] + 0x000004D0u;
|
|
/* 02983138 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t295);
|
|
/* 0298313C */ _t296 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298313C */ _t297 = _t296 & 0x00000001u;
|
|
/* 0298313C */ if (_t297) goto L_02983140; // else: addr-0 trap, fall-through
|
|
L_02983140: ; // 0x2983140
|
|
/* 02983140 */ _t298 = cpu->r[1] + 0x000004E4u;
|
|
/* 02983140 */ cpu->r[0] = rbrew_read32(cpu->mem, _t298);
|
|
/* 02983144 */ cpu->lr = cpu->r[0];
|
|
/* 02983148 */ cpu->r[1] = cpu->r[1] + 0x000004E0u;
|
|
/* 0298314C */ return;
|
|
}
|
|
|
|
// fn_02983150 @ 0x2983150
|
|
void Gambit_fn_02983150(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02983150: ; // 0x2983150
|
|
/* 02983150 */ _t0 = cpu->r[1] + 0xFFFFFF50u;
|
|
/* 02983150 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02983150 */ cpu->r[1] = _t0;
|
|
/* 02983154 */ /* nop */
|
|
/* 02983158 */ cpu->r[0] = cpu->lr;
|
|
/* 0298315C */ _t1 = cpu->r[1] + 0x000000B4u;
|
|
/* 0298315C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02983160 */ cpu->r[29] = cpu->r[9];
|
|
/* 02983164 */ cpu->r[24] = cpu->r[6];
|
|
/* 02983168 */ _t2 = cpu->r[24] + 0x00000004u;
|
|
/* 02983168 */ cpu->r[6] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298316C */ cpu->r[28] = cpu->r[3];
|
|
/* 02983170 */ cpu->r[23] = cpu->r[4];
|
|
/* 02983174 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02983178 */ cpu->r[25] = cpu->r[7];
|
|
/* 0298317C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298317C */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298317C */ if (_t4) goto L_02983644; else goto L_02983180;
|
|
L_02983180: ; // 0x2983180
|
|
/* 02983180 */ cpu->r[22] = 0x00000000u;
|
|
/* 02983184 */ _t5 = cpu->r[28] + 0x00000074u;
|
|
/* 02983184 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02983188 */ cpu->r[19] = cpu->r[22];
|
|
/* 0298318C */ _t6 = cpu->r[28] + 0x0000007Cu;
|
|
/* 0298318C */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02983190 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02983194 */ cpu->r[20] = cpu->r[19];
|
|
/* 02983198 */ cpu->r[11] = cpu->r[3] + cpu->r[8];
|
|
/* 0298319C */ cpu->r[31] = cpu->r[19];
|
|
/* 029831A0 */ cpu->r[7] = cpu->r[22];
|
|
/* 029831A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[11]);
|
|
/* 029831A8 */ cpu->r[21] = cpu->r[20];
|
|
/* 029831AC */ cpu->r[18] = cpu->r[7];
|
|
/* 029831B0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029831B0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029831B0 */ if (_t8) goto L_029831F8; else goto L_029831B4;
|
|
L_029831B4: ; // 0x29831b4
|
|
/* 029831B4 */ _t9 = cpu->r[3] + 0x00000000u;
|
|
/* 029831B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029831B8 */ _t10 = cpu->r[12] + 0x0000001Cu;
|
|
/* 029831B8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029831BC */ _t11 = cpu->r[10] + 0x0000005Au;
|
|
/* 029831BC */ cpu->r[5] = rbrew_read16(cpu->mem, _t11);
|
|
/* 029831C0 */ _t12 = cpu->r[10] + 0x0000005Cu;
|
|
/* 029831C0 */ cpu->r[6] = rbrew_read16(cpu->mem, _t12);
|
|
/* 029831C4 */ _t13 = cpu->r[10] + 0x0000005Eu;
|
|
/* 029831C4 */ cpu->r[8] = rbrew_read16(cpu->mem, _t13);
|
|
/* 029831C8 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 029831CC */ _t14 = cpu->r[10] + 0x00000058u;
|
|
/* 029831CC */ cpu->r[4] = rbrew_read16(cpu->mem, _t14);
|
|
/* 029831D0 */ cpu->r[20] = cpu->r[20] + cpu->r[8];
|
|
/* 029831D4 */ _t15 = cpu->r[10] + 0x00000056u;
|
|
/* 029831D4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t15);
|
|
/* 029831D8 */ cpu->r[19] = cpu->r[19] + cpu->r[5];
|
|
/* 029831DC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[11]);
|
|
/* 029831E0 */ _t16 = cpu->r[10] + 0x00000060u;
|
|
/* 029831E0 */ cpu->r[9] = rbrew_read16(cpu->mem, _t16);
|
|
/* 029831E4 */ cpu->r[18] = cpu->r[18] + cpu->r[4];
|
|
/* 029831E8 */ cpu->r[31] = cpu->r[31] + cpu->r[6];
|
|
/* 029831EC */ cpu->r[7] = cpu->r[7] + cpu->r[0];
|
|
/* 029831F0 */ cpu->r[21] = cpu->r[21] + cpu->r[9];
|
|
/* 029831F4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029831F4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 029831F4 */ if (_t18) goto L_029831F8; else goto L_029831B4;
|
|
L_029831F8: ; // 0x29831f8
|
|
/* 029831F8 */ cpu->r[11] = cpu->r[7] + cpu->r[18];
|
|
/* 029831FC */ cpu->r[4] = cpu->r[11] + cpu->r[19];
|
|
/* 02983200 */ cpu->r[6] = cpu->r[4] + cpu->r[31];
|
|
/* 02983204 */ cpu->r[8] = cpu->r[6] + cpu->r[20];
|
|
/* 02983208 */ cpu->r[10] = cpu->r[8] + cpu->r[21];
|
|
/* 02983208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298320C */ _t19 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298320C */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298320C */ if (_t20) goto L_02983210; else goto L_02983644;
|
|
L_02983210: ; // 0x2983210
|
|
/* 02983210 */ cpu->r[26] = 0x00000000u;
|
|
/* 02983214 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02983218 */ cpu->r[27] = cpu->r[26];
|
|
/* 0298321C */ cpu->r[30] = cpu->r[26];
|
|
/* 02983220 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983220 */ _t22 = _t21 & 0x00000001u;
|
|
/* 02983220 */ if (_t22) goto L_02983234; else goto L_02983224;
|
|
L_02983224: ; // 0x2983224
|
|
/* 02983224 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[18], 0x00000000u);
|
|
/* 02983228 */ _t23 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983228 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02983228 */ if (_t24) goto L_02983234; else goto L_0298322C;
|
|
L_0298322C: ; // 0x298322c
|
|
/* 0298322C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[19], 0x00000000u);
|
|
/* 02983230 */ _t25 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983230 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02983230 */ if (_t26) goto L_02983234; else goto L_029832DC;
|
|
L_02983234: ; // 0x2983234
|
|
/* 02983234 */ cpu->r[27] = 0x00000001u;
|
|
/* 02983238 */ _t27 = cpu->r[28] + 0x00000088u;
|
|
/* 02983238 */ cpu->r[6] = rbrew_read16(cpu->mem, _t27);
|
|
/* 0298323C */ cpu->r[8] = cpu->r[28] + 0x00000050u;
|
|
/* 02983240 */ _t28 = cpu->r[1] + 0x00000018u;
|
|
/* 02983240 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[27]);
|
|
/* 02983244 */ cpu->r[5] = 0x00000000u;
|
|
/* 02983248 */ _t29 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02983248 */ rbrew_write32(cpu->mem, _t29, cpu->r[22]);
|
|
/* 0298324C */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 02983250 */ _t30 = cpu->r[1] + 0x00000008u;
|
|
/* 02983250 */ rbrew_write32(cpu->mem, _t30, cpu->r[6]);
|
|
/* 02983254 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 02983258 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983258 */ rbrew_write32(cpu->mem, _t31, cpu->r[11]);
|
|
/* 0298325C */ cpu->r[10] = cpu->r[29];
|
|
/* 02983260 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 02983260 */ rbrew_write32(cpu->mem, _t32, cpu->r[11]);
|
|
/* 02983264 */ cpu->r[3] = cpu->r[28];
|
|
/* 02983268 */ _t33 = cpu->r[1] + 0x00000019u;
|
|
/* 02983268 */ rbrew_write8(cpu->mem, _t33, (uint8_t)cpu->r[5]);
|
|
/* 0298326C */ cpu->r[4] = cpu->r[23];
|
|
/* 02983270 */ _t34 = cpu->r[1] + 0x00000020u;
|
|
/* 02983270 */ rbrew_write32(cpu->mem, _t34, cpu->r[22]);
|
|
/* 02983274 */ cpu->r[9] = cpu->r[25];
|
|
/* 02983278 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02983278 */ rbrew_write32(cpu->mem, _t35, cpu->r[11]);
|
|
/* 0298327C */ Gambit_fn_02985278(cpu);
|
|
/* 02983280 */ cpu->r[30] = cpu->r[3];
|
|
/* 02983284 */ cpu->r[3] = cpu->r[28];
|
|
/* 02983288 */ cpu->r[4] = cpu->r[23];
|
|
/* 0298328C */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 02983290 */ cpu->r[5] = cpu->r[27];
|
|
/* 02983294 */ cpu->r[10] = cpu->r[29];
|
|
/* 02983298 */ cpu->r[9] = cpu->r[25];
|
|
/* 0298329C */ cpu->r[8] = cpu->r[28] + 0x00000048u;
|
|
/* 029832A0 */ cpu->r[7] = cpu->r[18];
|
|
/* 029832A4 */ Gambit_fn_02985784(cpu);
|
|
/* 029832A8 */ cpu->r[30] = cpu->r[30] + cpu->r[3];
|
|
/* 029832AC */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 029832B0 */ cpu->r[5] = 0x00000002u;
|
|
/* 029832B4 */ cpu->r[10] = cpu->r[29];
|
|
/* 029832B8 */ cpu->r[9] = cpu->r[25];
|
|
/* 029832BC */ cpu->r[8] = cpu->r[28] + 0x00000040u;
|
|
/* 029832C0 */ cpu->r[7] = cpu->r[19];
|
|
/* 029832C4 */ cpu->r[4] = cpu->r[23];
|
|
/* 029832C8 */ cpu->r[3] = cpu->r[28];
|
|
/* 029832CC */ Gambit_fn_02985C90(cpu);
|
|
/* 029832D0 */ cpu->r[30] = cpu->r[30] + cpu->r[3];
|
|
/* 029832D4 */ cpu->r[26] = 0x00000058u;
|
|
/* 029832D8 */ cpu->r[27] = 0x00000004u;
|
|
L_029832DC: ; // 0x29832dc
|
|
/* 029832DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029832E0 */ _t36 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029832E0 */ _t37 = _t36 & 0x00000001u;
|
|
/* 029832E0 */ if (_t37) goto L_029832E4; else goto L_02983358;
|
|
L_029832E4: ; // 0x29832e4
|
|
/* 029832E4 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 029832E8 */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 029832E8 */ rbrew_write32(cpu->mem, _t38, cpu->r[0]);
|
|
/* 029832EC */ _t39 = cpu->r[1] + 0x00000018u;
|
|
/* 029832EC */ rbrew_write32(cpu->mem, _t39, cpu->r[0]);
|
|
/* 029832F0 */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029832F0 */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
/* 029832F4 */ cpu->r[5] = 0x00000003u;
|
|
/* 029832F8 */ _t41 = cpu->r[1] + 0x00000014u;
|
|
/* 029832F8 */ rbrew_write32(cpu->mem, _t41, cpu->r[0]);
|
|
/* 029832FC */ cpu->r[0] = 0x00000001u;
|
|
/* 02983300 */ _t42 = cpu->r[28] + 0x00000088u;
|
|
/* 02983300 */ cpu->r[7] = rbrew_read16(cpu->mem, _t42);
|
|
/* 02983304 */ cpu->r[9] = cpu->r[25];
|
|
/* 02983308 */ _t43 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02983308 */ rbrew_write8(cpu->mem, _t43, (uint8_t)cpu->r[0]);
|
|
/* 0298330C */ cpu->r[3] = cpu->r[28];
|
|
/* 02983310 */ cpu->r[6] = 0x00000000u;
|
|
/* 02983314 */ _t44 = cpu->r[1] + 0x00000008u;
|
|
/* 02983314 */ rbrew_write32(cpu->mem, _t44, cpu->r[7]);
|
|
/* 02983318 */ cpu->r[7] = cpu->r[31];
|
|
/* 0298331C */ cpu->r[4] = cpu->r[23];
|
|
/* 02983320 */ _t45 = cpu->r[1] + 0x0000001Du;
|
|
/* 02983320 */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[6]);
|
|
/* 02983324 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 02983328 */ _t46 = cpu->r[1] + 0x00000020u;
|
|
/* 02983328 */ rbrew_write32(cpu->mem, _t46, cpu->r[22]);
|
|
/* 0298332C */ cpu->r[8] = cpu->r[28] + 0x00000058u;
|
|
/* 02983330 */ cpu->r[10] = cpu->r[29];
|
|
/* 02983334 */ _t47 = cpu->r[1] + 0x00000024u;
|
|
/* 02983334 */ rbrew_write32(cpu->mem, _t47, cpu->r[22]);
|
|
/* 02983338 */ Gambit_fn_02986278(cpu);
|
|
/* 0298333C */ cpu->r[30] = cpu->r[30] + cpu->r[3];
|
|
/* 02983340 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], 0x00000060u);
|
|
/* 02983344 */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983344 */ _t49 = _t48 & 0x00000001u;
|
|
/* 02983344 */ if (_t49) goto L_02983348; else goto L_0298334C;
|
|
L_02983348: ; // 0x2983348
|
|
/* 02983348 */ cpu->r[26] = 0x00000060u;
|
|
L_0298334C: ; // 0x298334c
|
|
/* 0298334C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000004u);
|
|
/* 02983350 */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983350 */ _t51 = _t50 & 0x00000001u;
|
|
/* 02983350 */ if (_t51) goto L_02983354; else goto L_02983358;
|
|
L_02983354: ; // 0x2983354
|
|
/* 02983354 */ cpu->r[27] = 0x00000004u;
|
|
L_02983358: ; // 0x2983358
|
|
/* 02983358 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 0298335C */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298335C */ _t53 = _t52 & 0x00000001u;
|
|
/* 0298335C */ if (_t53) goto L_02983368; else goto L_02983360;
|
|
L_02983360: ; // 0x2983360
|
|
/* 02983360 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 02983364 */ _t54 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983364 */ _t55 = _t54 & 0x00000001u;
|
|
/* 02983364 */ if (_t55) goto L_02983368; else goto L_02983430;
|
|
L_02983368: ; // 0x2983368
|
|
/* 02983368 */ _t56 = cpu->r[28] + 0x0000008Au;
|
|
/* 02983368 */ cpu->r[0] = rbrew_read16(cpu->mem, _t56);
|
|
/* 0298336C */ cpu->r[4] = 0x00000000u;
|
|
/* 02983370 */ _t57 = cpu->r[1] + 0x00000024u;
|
|
/* 02983370 */ rbrew_write32(cpu->mem, _t57, cpu->r[22]);
|
|
/* 02983374 */ cpu->r[19] = 0xFFFFFFFFu;
|
|
/* 02983378 */ _t58 = cpu->r[1] + 0x00000008u;
|
|
/* 02983378 */ rbrew_write32(cpu->mem, _t58, cpu->r[0]);
|
|
/* 0298337C */ cpu->r[31] = 0x00000001u;
|
|
/* 02983380 */ _t59 = cpu->r[1] + 0x0000001Du;
|
|
/* 02983380 */ rbrew_write8(cpu->mem, _t59, (uint8_t)cpu->r[4]);
|
|
/* 02983384 */ cpu->r[4] = cpu->r[23];
|
|
/* 02983388 */ _t60 = cpu->r[1] + 0x00000014u;
|
|
/* 02983388 */ rbrew_write32(cpu->mem, _t60, cpu->r[19]);
|
|
/* 0298338C */ cpu->r[10] = cpu->r[29];
|
|
/* 02983390 */ _t61 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02983390 */ rbrew_write8(cpu->mem, _t61, (uint8_t)cpu->r[31]);
|
|
/* 02983394 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 02983398 */ _t62 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983398 */ rbrew_write32(cpu->mem, _t62, cpu->r[19]);
|
|
/* 0298339C */ cpu->r[9] = cpu->r[25];
|
|
/* 029833A0 */ _t63 = cpu->r[1] + 0x00000020u;
|
|
/* 029833A0 */ rbrew_write32(cpu->mem, _t63, cpu->r[22]);
|
|
/* 029833A4 */ cpu->r[3] = cpu->r[28];
|
|
/* 029833A8 */ cpu->r[8] = cpu->r[28] + 0x00000060u;
|
|
/* 029833AC */ _t64 = cpu->r[1] + 0x00000010u;
|
|
/* 029833AC */ rbrew_write32(cpu->mem, _t64, cpu->r[19]);
|
|
/* 029833B0 */ cpu->r[7] = cpu->r[20];
|
|
/* 029833B4 */ cpu->r[5] = 0x00000004u;
|
|
/* 029833B8 */ _t65 = cpu->r[1] + 0x00000018u;
|
|
/* 029833B8 */ rbrew_write32(cpu->mem, _t65, cpu->r[19]);
|
|
/* 029833BC */ Gambit_fn_029868C0(cpu);
|
|
/* 029833C0 */ cpu->r[0] = 0x00000000u;
|
|
/* 029833C4 */ _t66 = cpu->r[1] + 0x00000054u;
|
|
/* 029833C4 */ rbrew_write8(cpu->mem, _t66, (uint8_t)cpu->r[31]);
|
|
/* 029833C8 */ cpu->r[7] = cpu->r[21];
|
|
/* 029833CC */ _t67 = cpu->r[28] + 0x00000088u;
|
|
/* 029833CC */ cpu->r[4] = rbrew_read16(cpu->mem, _t67);
|
|
/* 029833D0 */ _t68 = cpu->r[1] + 0x0000005Cu;
|
|
/* 029833D0 */ rbrew_write32(cpu->mem, _t68, cpu->r[22]);
|
|
/* 029833D4 */ cpu->r[30] = cpu->r[30] + cpu->r[3];
|
|
/* 029833D8 */ _t69 = cpu->r[1] + 0x00000044u;
|
|
/* 029833D8 */ rbrew_write32(cpu->mem, _t69, cpu->r[4]);
|
|
/* 029833DC */ cpu->r[3] = cpu->r[28];
|
|
/* 029833E0 */ _t70 = cpu->r[1] + 0x0000004Cu;
|
|
/* 029833E0 */ rbrew_write32(cpu->mem, _t70, cpu->r[19]);
|
|
/* 029833E4 */ cpu->r[4] = cpu->r[23];
|
|
/* 029833E8 */ _t71 = cpu->r[1] + 0x00000055u;
|
|
/* 029833E8 */ rbrew_write8(cpu->mem, _t71, (uint8_t)cpu->r[0]);
|
|
/* 029833EC */ cpu->r[6] = cpu->r[1] + 0x00000040u;
|
|
/* 029833F0 */ _t72 = cpu->r[1] + 0x00000050u;
|
|
/* 029833F0 */ rbrew_write32(cpu->mem, _t72, cpu->r[19]);
|
|
/* 029833F4 */ cpu->r[9] = cpu->r[25];
|
|
/* 029833F8 */ _t73 = cpu->r[1] + 0x00000048u;
|
|
/* 029833F8 */ rbrew_write32(cpu->mem, _t73, cpu->r[19]);
|
|
/* 029833FC */ cpu->r[8] = cpu->r[28] + 0x00000068u;
|
|
/* 02983400 */ cpu->r[10] = cpu->r[29];
|
|
/* 02983404 */ _t74 = cpu->r[1] + 0x00000058u;
|
|
/* 02983404 */ rbrew_write32(cpu->mem, _t74, cpu->r[22]);
|
|
/* 02983408 */ cpu->r[5] = 0x00000005u;
|
|
/* 0298340C */ _t75 = cpu->r[1] + 0x00000040u;
|
|
/* 0298340C */ rbrew_write32(cpu->mem, _t75, cpu->r[19]);
|
|
/* 02983410 */ Gambit_fn_02986DD4(cpu);
|
|
/* 02983414 */ cpu->r[30] = cpu->r[30] + cpu->r[3];
|
|
/* 02983418 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[26], 0x00000054u);
|
|
/* 0298341C */ _t76 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298341C */ _t77 = _t76 & 0x00000001u;
|
|
/* 0298341C */ if (_t77) goto L_02983420; else goto L_02983424;
|
|
L_02983420: ; // 0x2983420
|
|
/* 02983420 */ cpu->r[26] = 0x00000054u;
|
|
L_02983424: ; // 0x2983424
|
|
/* 02983424 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000004u);
|
|
/* 02983428 */ _t78 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983428 */ _t79 = _t78 & 0x00000001u;
|
|
/* 02983428 */ if (_t79) goto L_0298342C; else goto L_02983430;
|
|
L_0298342C: ; // 0x298342c
|
|
/* 0298342C */ cpu->r[27] = 0x00000004u;
|
|
L_02983430: ; // 0x2983430
|
|
/* 02983430 */ _t80 = cpu->r[28] + 0x0000008Cu;
|
|
/* 02983430 */ rbrew_write16(cpu->mem, _t80, (uint16_t)cpu->r[30]);
|
|
/* 02983434 */ _t81 = cpu->r[24] + 0x00000004u;
|
|
/* 02983434 */ cpu->r[7] = rbrew_read32(cpu->mem, _t81);
|
|
/* 02983438 */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 0298343C */ cpu->r[30] = cpu->r[7] + cpu->r[30];
|
|
/* 0298343C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02983440 */ cpu->r[3] = cpu->r[29];
|
|
/* 02983444 */ _t82 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983444 */ _t83 = _t82 & 0x00000001u;
|
|
/* 02983444 */ if (_t83) goto L_02983448; else goto L_02983540;
|
|
L_02983448: ; // 0x2983448
|
|
/* 02983448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298344C */ _t84 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298344C */ _t85 = _t84 & 0x00000001u;
|
|
/* 0298344C */ if (_t85) goto L_02983450; else goto L_0298345C;
|
|
L_02983450: ; // 0x2983450
|
|
/* 02983450 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02983454 */ _t86 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02983454 */ cpu->r[3] = rbrew_read32(cpu->mem, _t86);
|
|
/* 02983458 */ Gambit_fn_02826F20(cpu);
|
|
L_0298345C: ; // 0x298345c
|
|
/* 0298345C */ _t87 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298345C */ cpu->r[11] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02983460 */ _t88 = cpu->r[11] + 0x00000034u;
|
|
/* 02983460 */ cpu->r[12] = rbrew_read32(cpu->mem, _t88);
|
|
/* 02983464 */ cpu->ctr = cpu->r[12];
|
|
/* 02983468 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298346C */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[30] * (int32_t)0x0000001Cu);
|
|
/* 02983470 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02983474 */ cpu->r[24] = cpu->r[3];
|
|
/* 02983478 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298347C */ cpu->r[31] = cpu->r[30];
|
|
/* 02983480 */ cpu->r[10] = 0x00000000u;
|
|
/* 02983484 */ _t89 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983484 */ _t90 = _t89 & 0x00000001u;
|
|
/* 02983484 */ if (_t90) goto L_0298348C; else goto L_02983488;
|
|
L_02983488: ; // 0x2983488
|
|
/* 02983488 */ cpu->r[31] = 0x00000001u;
|
|
L_0298348C: ; // 0x298348c
|
|
/* 0298348C */ cpu->r[21] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x0000001Cu);
|
|
/* 02983490 */ cpu->r[23] = 0xFFFFFFFFu;
|
|
/* 02983494 */ cpu->r[22] = 0x00000000u;
|
|
L_02983498: ; // 0x2983498
|
|
/* 02983498 */ cpu->r[25] = cpu->r[24] + cpu->r[21];
|
|
/* 02983498 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 0298349C */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298349C */ _t92 = _t91 & 0x00000001u;
|
|
/* 0298349C */ if (_t92) goto L_02983524; else goto L_029834A0;
|
|
L_029834A0: ; // 0x29834a0
|
|
/* 029834A0 */ cpu->r[11] = cpu->r[25];
|
|
/* 029834A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 029834A4 */ _t93 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029834A4 */ _t94 = _t93 & 0x00000001u;
|
|
/* 029834A4 */ if (_t94) goto L_029834A8; else goto L_029834B8;
|
|
L_029834A8: ; // 0x29834a8
|
|
/* 029834A8 */ cpu->r[3] = 0x00000004u;
|
|
/* 029834AC */ Gambit_fn_02801A78(cpu);
|
|
/* 029834B0 */ cpu->r[11] = cpu->r[3];
|
|
/* 029834B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 029834B4 */ _t95 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029834B4 */ _t96 = _t95 & 0x00000001u;
|
|
/* 029834B4 */ if (_t96) goto L_029834C0; else goto L_029834B8;
|
|
L_029834B8: ; // 0x29834b8
|
|
/* 029834B8 */ _t97 = cpu->r[11] + 0x00000000u;
|
|
/* 029834B8 */ rbrew_write16(cpu->mem, _t97, (uint16_t)cpu->r[23]);
|
|
/* 029834BC */ _t98 = cpu->r[11] + 0x00000002u;
|
|
/* 029834BC */ rbrew_write16(cpu->mem, _t98, (uint16_t)cpu->r[23]);
|
|
L_029834C0: ; // 0x29834c0
|
|
/* 029834C0 */ _t99 = cpu->r[25] + 0x00000008u;
|
|
/* 029834C0 */ rbrew_write32(cpu->mem, _t99, cpu->r[22]);
|
|
/* 029834C4 */ cpu->r[12] = cpu->r[25] + 0x0000000Eu;
|
|
/* 029834C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029834C8 */ _t100 = cpu->r[25] + 0x0000000Cu;
|
|
/* 029834C8 */ rbrew_write16(cpu->mem, _t100, (uint16_t)cpu->r[23]);
|
|
/* 029834CC */ _t101 = cpu->r[25] + 0x00000004u;
|
|
/* 029834CC */ rbrew_write32(cpu->mem, _t101, cpu->r[22]);
|
|
/* 029834D0 */ _t102 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029834D0 */ _t103 = _t102 & 0x00000001u;
|
|
/* 029834D0 */ if (_t103) goto L_029834D4; else goto L_029834E4;
|
|
L_029834D4: ; // 0x29834d4
|
|
/* 029834D4 */ cpu->r[3] = 0x00000002u;
|
|
/* 029834D8 */ Gambit_fn_02801A78(cpu);
|
|
/* 029834DC */ cpu->r[12] = cpu->r[3];
|
|
/* 029834DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029834E0 */ _t104 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029834E0 */ _t105 = _t104 & 0x00000001u;
|
|
/* 029834E0 */ if (_t105) goto L_029834E8; else goto L_029834E4;
|
|
L_029834E4: ; // 0x29834e4
|
|
/* 029834E4 */ _t106 = cpu->r[12] + 0x00000000u;
|
|
/* 029834E4 */ rbrew_write16(cpu->mem, _t106, (uint16_t)cpu->r[22]);
|
|
L_029834E8: ; // 0x29834e8
|
|
/* 029834E8 */ cpu->r[12] = cpu->r[25] + 0x00000010u;
|
|
/* 029834E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029834EC */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029834EC */ _t108 = _t107 & 0x00000001u;
|
|
/* 029834EC */ if (_t108) goto L_029834F0; else goto L_02983500;
|
|
L_029834F0: ; // 0x29834f0
|
|
/* 029834F0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 029834F4 */ Gambit_fn_02801A78(cpu);
|
|
/* 029834F8 */ cpu->r[12] = cpu->r[3];
|
|
/* 029834F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029834FC */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029834FC */ _t110 = _t109 & 0x00000001u;
|
|
/* 029834FC */ if (_t110) goto L_02983524; else goto L_02983500;
|
|
L_02983500: ; // 0x2983500
|
|
/* 02983500 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02983504 */ _t111 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983504 */ _t112 = _t111 & 0x00000001u;
|
|
/* 02983504 */ if (_t112) goto L_02983508; else goto L_02983518;
|
|
L_02983508: ; // 0x2983508
|
|
/* 02983508 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298350C */ Gambit_fn_02801A78(cpu);
|
|
/* 02983510 */ cpu->r[12] = cpu->r[3];
|
|
/* 02983510 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02983514 */ _t113 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983514 */ _t114 = _t113 & 0x00000001u;
|
|
/* 02983514 */ if (_t114) goto L_02983524; else goto L_02983518;
|
|
L_02983518: ; // 0x2983518
|
|
/* 02983518 */ _t115 = cpu->r[12] + 0x00000004u;
|
|
/* 02983518 */ rbrew_write32(cpu->mem, _t115, cpu->r[22]);
|
|
/* 0298351C */ _t116 = cpu->r[12] + 0x00000000u;
|
|
/* 0298351C */ rbrew_write32(cpu->mem, _t116, cpu->r[22]);
|
|
/* 02983520 */ _t117 = cpu->r[12] + 0x00000008u;
|
|
/* 02983520 */ rbrew_write32(cpu->mem, _t117, cpu->r[22]);
|
|
L_02983524: ; // 0x2983524
|
|
/* 02983524 */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 02983524 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02983528 */ cpu->r[21] = cpu->r[21] + 0x0000001Cu;
|
|
/* 0298352C */ _t118 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298352C */ _t119 = _t118 & 0x00000001u;
|
|
/* 0298352C */ if (_t119) goto L_02983530; else goto L_02983498;
|
|
L_02983530: ; // 0x2983530
|
|
/* 02983530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 02983534 */ _t120 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983534 */ _t121 = _t120 & 0x00000001u;
|
|
/* 02983534 */ if (_t121) goto L_02983540; else goto L_02983538;
|
|
L_02983538: ; // 0x2983538
|
|
/* 02983538 */ _t122 = cpu->r[28] + 0x00000034u;
|
|
/* 02983538 */ rbrew_write32(cpu->mem, _t122, cpu->r[24]);
|
|
/* 0298353C */ _t123 = cpu->r[28] + 0x00000030u;
|
|
/* 0298353C */ rbrew_write32(cpu->mem, _t123, cpu->r[30]);
|
|
L_02983540: ; // 0x2983540
|
|
/* 02983540 */ _t124 = cpu->r[28] + 0x00000084u;
|
|
/* 02983540 */ cpu->r[0] = rbrew_read32(cpu->mem, _t124);
|
|
/* 02983544 */ cpu->r[24] = cpu->r[26] + cpu->r[0];
|
|
/* 02983548 */ cpu->r[12] = cpu->r[24] + cpu->r[27];
|
|
/* 0298354C */ cpu->r[7] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 02983550 */ cpu->r[5] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 02983554 */ cpu->r[26] = rbrew_rlwinm(cpu->r[30], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02983558 */ _t125 = ~cpu->r[7];
|
|
/* 02983558 */ cpu->r[24] = cpu->r[5] & _t125;
|
|
/* 0298355C */ cpu->r[9] = cpu->r[24] + cpu->r[26];
|
|
/* 02983560 */ cpu->r[3] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)cpu->r[30]);
|
|
/* 02983564 */ cpu->r[5] = cpu->r[27];
|
|
/* 02983568 */ cpu->r[4] = cpu->r[29];
|
|
/* 0298356C */ Gambit_fn_02801ADC(cpu);
|
|
/* 02983570 */ _t126 = cpu->r[28] + 0x00000030u;
|
|
/* 02983570 */ cpu->r[0] = rbrew_read32(cpu->mem, _t126);
|
|
/* 02983574 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02983578 */ _t127 = cpu->r[28] + 0x00000034u;
|
|
/* 02983578 */ cpu->r[31] = rbrew_read32(cpu->mem, _t127);
|
|
/* 0298357C */ cpu->r[29] = cpu->r[31] + cpu->r[12];
|
|
/* 02983580 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02983584 */ cpu->r[25] = cpu->r[3];
|
|
/* 02983588 */ _t128 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983588 */ _t129 = _t128 & 0x00000001u;
|
|
/* 02983588 */ if (_t129) goto L_0298360C; else goto L_0298358C;
|
|
L_0298358C: ; // 0x298358c
|
|
/* 0298358C */ cpu->r[23] = 0x101B0000u;
|
|
/* 02983590 */ cpu->r[22] = 0x00000000u;
|
|
/* 02983594 */ cpu->r[23] = cpu->r[23] + 0xFFFFED88u;
|
|
/* 02983598 */ cpu->r[21] = 0xFFFFFFFFu;
|
|
L_0298359C: ; // 0x298359c
|
|
/* 0298359C */ _t130 = cpu->r[31] + 0x00000002u;
|
|
/* 0298359C */ rbrew_write16(cpu->mem, _t130, (uint16_t)cpu->r[21]);
|
|
/* 029835A0 */ _t131 = cpu->r[31] + 0x00000004u;
|
|
/* 029835A0 */ rbrew_write32(cpu->mem, _t131, cpu->r[25]);
|
|
/* 029835A4 */ _t132 = cpu->r[31] + 0x00000000u;
|
|
/* 029835A4 */ rbrew_write16(cpu->mem, _t132, (uint16_t)cpu->r[21]);
|
|
/* 029835A8 */ _t133 = cpu->r[28] + 0x00000084u;
|
|
/* 029835A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t133);
|
|
/* 029835AC */ cpu->r[27] = cpu->r[25] + cpu->r[0];
|
|
/* 029835AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 029835B0 */ _t134 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029835B0 */ _t135 = _t134 & 0x00000001u;
|
|
/* 029835B0 */ if (_t135) goto L_029835E4; else goto L_029835B4;
|
|
L_029835B4: ; // 0x29835b4
|
|
/* 029835B4 */ cpu->r[3] = cpu->r[27];
|
|
/* 029835B8 */ Gambit_fn_02C4F040(cpu);
|
|
/* 029835BC */ _t136 = cpu->r[27] + 0x00000044u;
|
|
/* 029835BC */ rbrew_write32(cpu->mem, _t136, cpu->r[22]);
|
|
/* 029835C0 */ _t137 = cpu->r[27] + 0x00000034u;
|
|
/* 029835C0 */ rbrew_write32(cpu->mem, _t137, cpu->r[23]);
|
|
/* 029835C4 */ _t138 = cpu->r[31] + 0x00000008u;
|
|
/* 029835C4 */ rbrew_write32(cpu->mem, _t138, cpu->r[27]);
|
|
/* 029835C8 */ _t139 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029835C8 */ rbrew_write16(cpu->mem, _t139, (uint16_t)cpu->r[22]);
|
|
/* 029835CC */ _t140 = cpu->r[31] + 0x0000000Cu;
|
|
/* 029835CC */ rbrew_write16(cpu->mem, _t140, (uint16_t)cpu->r[21]);
|
|
/* 029835D0 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029835D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 029835D8 */ cpu->r[25] = cpu->r[25] + cpu->r[24];
|
|
/* 029835DC */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029835DC */ _t142 = _t141 & 0x00000001u;
|
|
/* 029835DC */ if (_t142) goto L_029835E0; else goto L_0298359C;
|
|
L_029835E0: ; // 0x29835e0
|
|
/* 029835E0 */ goto L_02983604;
|
|
L_029835E4: ; // 0x29835e4
|
|
/* 029835E4 */ _t143 = cpu->r[31] + 0x0000000Cu;
|
|
/* 029835E4 */ rbrew_write16(cpu->mem, _t143, (uint16_t)cpu->r[21]);
|
|
/* 029835E8 */ cpu->r[27] = 0x00000000u;
|
|
/* 029835EC */ _t144 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029835EC */ rbrew_write16(cpu->mem, _t144, (uint16_t)cpu->r[22]);
|
|
/* 029835F0 */ _t145 = cpu->r[31] + 0x00000008u;
|
|
/* 029835F0 */ rbrew_write32(cpu->mem, _t145, cpu->r[27]);
|
|
/* 029835F4 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 029835F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 029835FC */ cpu->r[25] = cpu->r[25] + cpu->r[24];
|
|
/* 02983600 */ _t146 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983600 */ _t147 = _t146 & 0x00000001u;
|
|
/* 02983600 */ if (_t147) goto L_02983604; else goto L_0298359C;
|
|
L_02983604: ; // 0x2983604
|
|
/* 02983604 */ _t148 = cpu->r[28] + 0x00000030u;
|
|
/* 02983604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t148);
|
|
/* 02983608 */ _t149 = cpu->r[28] + 0x00000034u;
|
|
/* 02983608 */ cpu->r[31] = rbrew_read32(cpu->mem, _t149);
|
|
L_0298360C: ; // 0x298360c
|
|
/* 0298360C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02983610 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 02983614 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02983618 */ _t150 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983618 */ _t151 = _t150 & 0x00000001u;
|
|
/* 02983618 */ if (_t151) goto L_02983644; else goto L_0298361C;
|
|
L_0298361C: ; // 0x298361c
|
|
/* 0298361C */ cpu->r[28] = 0x00000000u;
|
|
L_02983620: ; // 0x2983620
|
|
/* 02983620 */ cpu->r[5] = cpu->r[25];
|
|
/* 02983624 */ cpu->r[4] = cpu->r[30];
|
|
/* 02983628 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 0298362C */ Gambit_fn_028023A8(cpu);
|
|
/* 02983630 */ _t152 = cpu->r[31] + 0x00000010u;
|
|
/* 02983630 */ rbrew_write32(cpu->mem, _t152, cpu->r[28]);
|
|
/* 02983634 */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02983638 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 0298363C */ cpu->r[25] = cpu->r[25] + cpu->r[26];
|
|
/* 02983640 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983640 */ _t154 = _t153 & 0x00000001u;
|
|
/* 02983640 */ if (_t154) goto L_02983644; else goto L_02983620;
|
|
L_02983644: ; // 0x2983644
|
|
/* 02983644 */ /* nop */
|
|
/* 02983648 */ _t155 = cpu->r[1] + 0x000000B4u;
|
|
/* 02983648 */ cpu->r[0] = rbrew_read32(cpu->mem, _t155);
|
|
/* 0298364C */ cpu->lr = cpu->r[0];
|
|
/* 02983650 */ cpu->r[1] = cpu->r[1] + 0x000000B0u;
|
|
/* 02983654 */ return;
|
|
}
|
|
|
|
// fn_02983658 @ 0x2983658
|
|
void Gambit_fn_02983658(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02983658: ; // 0x2983658
|
|
/* 02983658 */ cpu->r[0] = cpu->lr;
|
|
/* 0298365C */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 0298365C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298365C */ cpu->r[1] = _t0;
|
|
/* 02983660 */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 02983660 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02983664 */ /* nop */
|
|
/* 02983668 */ cpu->r[24] = cpu->r[7];
|
|
/* 0298366C */ cpu->r[29] = cpu->r[3];
|
|
/* 02983670 */ cpu->r[23] = cpu->r[6];
|
|
/* 02983674 */ cpu->r[6] = 0x00000004u;
|
|
/* 02983678 */ cpu->r[3] = cpu->r[29] + 0x00000074u;
|
|
/* 0298367C */ cpu->r[21] = cpu->r[4];
|
|
/* 02983680 */ cpu->r[27] = cpu->r[10];
|
|
/* 02983684 */ cpu->r[22] = cpu->r[5];
|
|
/* 02983688 */ cpu->r[4] = cpu->r[23];
|
|
/* 0298368C */ cpu->r[5] = cpu->r[27];
|
|
/* 02983690 */ cpu->r[26] = cpu->r[9];
|
|
/* 02983694 */ cpu->r[25] = cpu->r[8];
|
|
/* 02983698 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298369C */ cpu->r[28] = cpu->r[23];
|
|
/* 0298369C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029836A0 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029836A0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 029836A0 */ if (_t3) goto L_029836A4; else goto L_029836F0;
|
|
L_029836A4: ; // 0x29836a4
|
|
/* 029836A4 */ cpu->r[30] = cpu->r[21] + 0xFFFFFFFCu;
|
|
/* 029836A8 */ cpu->r[31] = 0x101D0000u;
|
|
L_029836AC: ; // 0x29836ac
|
|
/* 029836AC */ _t4 = cpu->r[29] + 0x00000078u;
|
|
/* 029836AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029836B0 */ _t5 = cpu->r[29] + 0x00000074u;
|
|
/* 029836B0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029836B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[0]);
|
|
/* 029836B8 */ _t6 = cpu->r[30] + 0x00000004u;
|
|
/* 029836B8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029836B8 */ cpu->r[30] = _t6;
|
|
/* 029836BC */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029836BC */ _t8 = _t7 & 0x00000001u;
|
|
/* 029836BC */ if (_t8) goto L_029836C0; else goto L_029836DC;
|
|
L_029836C0: ; // 0x29836c0
|
|
/* 029836C0 */ _t9 = cpu->r[29] + 0x0000007Cu;
|
|
/* 029836C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029836C4 */ cpu->r[6] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029836C8 */ _t10 = cpu->r[6] + cpu->r[0];
|
|
/* 029836C8 */ rbrew_write32(cpu->mem, _t10, cpu->r[4]);
|
|
/* 029836CC */ _t11 = cpu->r[29] + 0x00000074u;
|
|
/* 029836CC */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029836D0 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 029836D4 */ _t12 = cpu->r[29] + 0x00000074u;
|
|
/* 029836D4 */ rbrew_write32(cpu->mem, _t12, cpu->r[9]);
|
|
/* 029836D8 */ _t13 = cpu->r[30] + 0x00000000u;
|
|
/* 029836D8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
L_029836DC: ; // 0x29836dc
|
|
/* 029836DC */ _t14 = cpu->r[31] + 0xFFFFA708u;
|
|
/* 029836DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029836E0 */ cpu->r[5] = 0x00000001u;
|
|
/* 029836E4 */ Gambit_fn_0299C098(cpu);
|
|
/* 029836E8 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 029836E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029836EC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029836EC */ _t16 = _t15 & 0x00000001u;
|
|
/* 029836EC */ if (_t16) goto L_029836F0; else goto L_029836AC;
|
|
L_029836F0: ; // 0x29836f0
|
|
/* 029836F0 */ _t17 = cpu->r[25] + 0x0000001Cu;
|
|
/* 029836F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029836F4 */ cpu->r[3] = cpu->r[27];
|
|
/* 029836F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029836FC */ cpu->r[28] = 0x101D0000u;
|
|
/* 02983700 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983700 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02983700 */ if (_t19) goto L_02983704; else goto L_0298376C;
|
|
L_02983704: ; // 0x2983704
|
|
/* 02983704 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02983708 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983708 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02983708 */ if (_t21) goto L_0298370C; else goto L_02983714;
|
|
L_0298370C: ; // 0x298370c
|
|
/* 0298370C */ _t22 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 0298370C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02983710 */ Gambit_fn_02826F20(cpu);
|
|
L_02983714: ; // 0x2983714
|
|
/* 02983714 */ _t23 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02983714 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02983718 */ _t24 = cpu->r[12] + 0x00000034u;
|
|
/* 02983718 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298371C */ cpu->ctr = cpu->r[0];
|
|
/* 02983720 */ cpu->r[5] = 0x00000004u;
|
|
/* 02983724 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 02983728 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298372C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02983730 */ cpu->r[9] = cpu->r[31];
|
|
/* 02983734 */ cpu->r[8] = 0x00000000u;
|
|
/* 02983738 */ _t25 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983738 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02983738 */ if (_t26) goto L_02983740; else goto L_0298373C;
|
|
L_0298373C: ; // 0x298373c
|
|
/* 0298373C */ cpu->r[9] = 0x00000001u;
|
|
L_02983740: ; // 0x2983740
|
|
/* 02983740 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000000Cu);
|
|
/* 02983744 */ cpu->ctr = cpu->r[9];
|
|
/* 02983748 */ cpu->r[0] = 0x00000000u;
|
|
L_0298374C: ; // 0x298374c
|
|
/* 0298374C */ cpu->r[12] = cpu->r[3] + cpu->r[11];
|
|
/* 0298374C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02983750 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983750 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02983750 */ if (_t28) goto L_0298375C; else goto L_02983754;
|
|
L_02983754: ; // 0x2983754
|
|
/* 02983754 */ _t29 = cpu->r[12] + 0x00000004u;
|
|
/* 02983754 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 02983758 */ _t30 = cpu->r[12] + 0x00000000u;
|
|
/* 02983758 */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
L_0298375C: ; // 0x298375c
|
|
/* 0298375C */ cpu->r[11] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02983760 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02983760 */ _t31 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02983760 */ _t32 = _t31 >> (0x00000002u & 31u);
|
|
/* 02983760 */ _t33 = _t32 & 0x00000001u;
|
|
/* 02983760 */ if (_t33) goto L_0298374C; else goto L_02983764;
|
|
L_02983764: ; // 0x2983764
|
|
/* 02983764 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02983768 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983768 */ _t35 = _t34 & 0x00000001u;
|
|
/* 02983768 */ if (_t35) goto L_0298376C; else goto L_02983788;
|
|
L_0298376C: ; // 0x298376c
|
|
/* 0298376C */ _t36 = cpu->r[29] + 0x00000008u;
|
|
/* 0298376C */ cpu->r[5] = rbrew_read32(cpu->mem, _t36);
|
|
/* 02983770 */ _t37 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02983770 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02983774 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x0000000Cu);
|
|
/* 02983778 */ cpu->r[30] = cpu->r[3] + cpu->r[7];
|
|
/* 0298377C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[30]);
|
|
/* 02983780 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983780 */ _t39 = _t38 & 0x00000001u;
|
|
/* 02983780 */ if (_t39) goto L_0298383C; else goto L_02983784;
|
|
L_02983784: ; // 0x2983784
|
|
/* 02983784 */ goto L_029837A0;
|
|
L_02983788: ; // 0x2983788
|
|
/* 02983788 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 0298378C */ cpu->r[30] = cpu->r[3] + cpu->r[7];
|
|
/* 02983790 */ _t40 = cpu->r[29] + 0x00000008u;
|
|
/* 02983790 */ rbrew_write32(cpu->mem, _t40, cpu->r[31]);
|
|
/* 02983794 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[30]);
|
|
/* 02983798 */ _t41 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02983798 */ rbrew_write32(cpu->mem, _t41, cpu->r[3]);
|
|
/* 0298379C */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298379C */ _t43 = _t42 & 0x00000001u;
|
|
/* 0298379C */ if (_t43) goto L_0298383C; else goto L_029837A0;
|
|
L_029837A0: ; // 0x29837a0
|
|
/* 029837A0 */ cpu->r[19] = 0x00000000u;
|
|
/* 029837A4 */ cpu->r[31] = cpu->r[3];
|
|
L_029837A8: ; // 0x29837a8
|
|
/* 029837A8 */ _t44 = cpu->r[24] + 0x00000000u;
|
|
/* 029837A8 */ cpu->r[20] = rbrew_read32(cpu->mem, _t44);
|
|
/* 029837AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 029837B0 */ _t45 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029837B0 */ _t46 = _t45 & 0x00000001u;
|
|
/* 029837B0 */ if (_t46) goto L_029837B4; else goto L_0298382C;
|
|
L_029837B4: ; // 0x29837b4
|
|
/* 029837B4 */ cpu->r[8] = cpu->r[27];
|
|
/* 029837B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 029837B8 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029837B8 */ _t48 = _t47 & 0x00000001u;
|
|
/* 029837B8 */ if (_t48) goto L_029837BC; else goto L_029837C8;
|
|
L_029837BC: ; // 0x29837bc
|
|
/* 029837BC */ _t49 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 029837BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t49);
|
|
/* 029837C0 */ Gambit_fn_02826F20(cpu);
|
|
/* 029837C4 */ cpu->r[8] = cpu->r[3];
|
|
L_029837C8: ; // 0x29837c8
|
|
/* 029837C8 */ _t50 = cpu->r[8] + 0x0000000Cu;
|
|
/* 029837C8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t50);
|
|
/* 029837CC */ _t51 = cpu->r[9] + 0x00000034u;
|
|
/* 029837CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 029837D0 */ cpu->ctr = cpu->r[0];
|
|
/* 029837D4 */ cpu->r[5] = 0x00000004u;
|
|
/* 029837D8 */ cpu->r[4] = cpu->r[20];
|
|
/* 029837DC */ cpu->r[3] = cpu->r[8];
|
|
/* 029837E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029837E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 029837E8 */ cpu->r[0] = cpu->r[20];
|
|
/* 029837EC */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029837EC */ _t53 = _t52 & 0x00000001u;
|
|
/* 029837EC */ if (_t53) goto L_029837F4; else goto L_029837F0;
|
|
L_029837F0: ; // 0x29837f0
|
|
/* 029837F0 */ cpu->r[0] = 0x00000001u;
|
|
L_029837F4: ; // 0x29837f4
|
|
/* 029837F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029837F8 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029837F8 */ _t55 = _t54 & 0x00000001u;
|
|
/* 029837F8 */ if (_t55) goto L_02983804; else goto L_029837FC;
|
|
L_029837FC: ; // 0x29837fc
|
|
/* 029837FC */ _t56 = cpu->r[31] + 0x00000004u;
|
|
/* 029837FC */ rbrew_write32(cpu->mem, _t56, cpu->r[3]);
|
|
/* 02983800 */ _t57 = cpu->r[31] + 0x00000000u;
|
|
/* 02983800 */ rbrew_write32(cpu->mem, _t57, cpu->r[20]);
|
|
L_02983804: ; // 0x2983804
|
|
/* 02983804 */ _t58 = cpu->r[31] + 0x00000004u;
|
|
/* 02983804 */ cpu->r[11] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02983808 */ _t59 = cpu->r[31] + 0x00000000u;
|
|
/* 02983808 */ cpu->r[10] = rbrew_read32(cpu->mem, _t59);
|
|
/* 0298380C */ cpu->r[0] = cpu->r[11] + cpu->r[10];
|
|
/* 02983810 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 02983814 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983814 */ _t61 = _t60 & 0x00000001u;
|
|
/* 02983814 */ if (_t61) goto L_0298382C; else goto L_02983818;
|
|
L_02983818: ; // 0x2983818
|
|
/* 02983818 */ cpu->r[10] = 0x00000000u;
|
|
L_0298381C: ; // 0x298381c
|
|
/* 0298381C */ _t62 = cpu->r[11] + 0x00000000u;
|
|
/* 0298381C */ rbrew_write8(cpu->mem, _t62, (uint8_t)cpu->r[10]);
|
|
/* 02983820 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 02983824 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 02983828 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983828 */ _t64 = _t63 & 0x00000001u;
|
|
/* 02983828 */ if (_t64) goto L_0298382C; else goto L_0298381C;
|
|
L_0298382C: ; // 0x298382c
|
|
/* 0298382C */ _t65 = cpu->r[31] + 0x00000008u;
|
|
/* 0298382C */ rbrew_write16(cpu->mem, _t65, (uint16_t)cpu->r[19]);
|
|
/* 02983830 */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02983834 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02983838 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983838 */ _t67 = _t66 & 0x00000001u;
|
|
/* 02983838 */ if (_t67) goto L_0298383C; else goto L_029837A8;
|
|
L_0298383C: ; // 0x298383c
|
|
/* 0298383C */ cpu->r[3] = cpu->r[25];
|
|
/* 02983840 */ Gambit_fn_0298100C(cpu);
|
|
/* 02983844 */ _t68 = cpu->r[29] + 0x0000008Au;
|
|
/* 02983844 */ rbrew_write16(cpu->mem, _t68, (uint16_t)cpu->r[3]);
|
|
/* 02983848 */ cpu->r[3] = cpu->r[25];
|
|
/* 0298384C */ Gambit_fn_02981154(cpu);
|
|
/* 02983850 */ _t69 = cpu->r[29] + 0x00000088u;
|
|
/* 02983850 */ rbrew_write16(cpu->mem, _t69, (uint16_t)cpu->r[3]);
|
|
/* 02983854 */ cpu->r[10] = cpu->r[27];
|
|
/* 02983858 */ cpu->r[9] = cpu->r[26];
|
|
/* 0298385C */ cpu->r[8] = cpu->r[25];
|
|
/* 02983860 */ cpu->r[7] = cpu->r[24];
|
|
/* 02983864 */ cpu->r[6] = cpu->r[23];
|
|
/* 02983868 */ cpu->r[5] = cpu->r[22];
|
|
/* 0298386C */ cpu->r[4] = cpu->r[21];
|
|
/* 02983870 */ cpu->r[3] = cpu->r[29];
|
|
/* 02983874 */ Gambit_fn_029829D0(cpu);
|
|
/* 02983878 */ cpu->r[6] = cpu->r[24];
|
|
/* 0298387C */ cpu->r[5] = cpu->r[23];
|
|
/* 02983880 */ cpu->r[3] = cpu->r[29];
|
|
/* 02983884 */ cpu->r[4] = cpu->r[21];
|
|
/* 02983888 */ cpu->r[7] = cpu->r[25];
|
|
/* 0298388C */ cpu->r[8] = cpu->r[26];
|
|
/* 02983890 */ cpu->r[9] = cpu->r[27];
|
|
/* 02983894 */ Gambit_fn_02983150(cpu);
|
|
/* 02983898 */ /* nop */
|
|
/* 0298389C */ _t70 = cpu->r[1] + 0x00000044u;
|
|
/* 0298389C */ cpu->r[0] = rbrew_read32(cpu->mem, _t70);
|
|
/* 029838A0 */ cpu->lr = cpu->r[0];
|
|
/* 029838A4 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 029838A8 */ return;
|
|
}
|
|
|
|
// fn_0298365C @ 0x298365c
|
|
void Gambit_fn_0298365C(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298365C: ; // 0x298365c
|
|
/* 0298365C */ _t0 = cpu->r[1] + 0xFFFFFFC0u;
|
|
/* 0298365C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298365C */ cpu->r[1] = _t0;
|
|
/* 02983660 */ _t1 = cpu->r[1] + 0x00000044u;
|
|
/* 02983660 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02983664 */ /* nop */
|
|
/* 02983668 */ cpu->r[24] = cpu->r[7];
|
|
/* 0298366C */ cpu->r[29] = cpu->r[3];
|
|
/* 02983670 */ cpu->r[23] = cpu->r[6];
|
|
/* 02983674 */ cpu->r[6] = 0x00000004u;
|
|
/* 02983678 */ cpu->r[3] = cpu->r[29] + 0x00000074u;
|
|
/* 0298367C */ cpu->r[21] = cpu->r[4];
|
|
/* 02983680 */ cpu->r[27] = cpu->r[10];
|
|
/* 02983684 */ cpu->r[22] = cpu->r[5];
|
|
/* 02983688 */ cpu->r[4] = cpu->r[23];
|
|
/* 0298368C */ cpu->r[5] = cpu->r[27];
|
|
/* 02983690 */ cpu->r[26] = cpu->r[9];
|
|
/* 02983694 */ cpu->r[25] = cpu->r[8];
|
|
/* 02983698 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298369C */ cpu->r[28] = cpu->r[23];
|
|
/* 0298369C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029836A0 */ _t2 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029836A0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 029836A0 */ if (_t3) goto L_029836A4; else goto L_029836F0;
|
|
L_029836A4: ; // 0x29836a4
|
|
/* 029836A4 */ cpu->r[30] = cpu->r[21] + 0xFFFFFFFCu;
|
|
/* 029836A8 */ cpu->r[31] = 0x101D0000u;
|
|
L_029836AC: ; // 0x29836ac
|
|
/* 029836AC */ _t4 = cpu->r[29] + 0x00000078u;
|
|
/* 029836AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029836B0 */ _t5 = cpu->r[29] + 0x00000074u;
|
|
/* 029836B0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029836B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[0]);
|
|
/* 029836B8 */ _t6 = cpu->r[30] + 0x00000004u;
|
|
/* 029836B8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029836B8 */ cpu->r[30] = _t6;
|
|
/* 029836BC */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029836BC */ _t8 = _t7 & 0x00000001u;
|
|
/* 029836BC */ if (_t8) goto L_029836C0; else goto L_029836DC;
|
|
L_029836C0: ; // 0x29836c0
|
|
/* 029836C0 */ _t9 = cpu->r[29] + 0x0000007Cu;
|
|
/* 029836C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029836C4 */ cpu->r[6] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029836C8 */ _t10 = cpu->r[6] + cpu->r[0];
|
|
/* 029836C8 */ rbrew_write32(cpu->mem, _t10, cpu->r[4]);
|
|
/* 029836CC */ _t11 = cpu->r[29] + 0x00000074u;
|
|
/* 029836CC */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029836D0 */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 029836D4 */ _t12 = cpu->r[29] + 0x00000074u;
|
|
/* 029836D4 */ rbrew_write32(cpu->mem, _t12, cpu->r[9]);
|
|
/* 029836D8 */ _t13 = cpu->r[30] + 0x00000000u;
|
|
/* 029836D8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
L_029836DC: ; // 0x29836dc
|
|
/* 029836DC */ _t14 = cpu->r[31] + 0xFFFFA708u;
|
|
/* 029836DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029836E0 */ cpu->r[5] = 0x00000001u;
|
|
/* 029836E4 */ Gambit_fn_0299C098(cpu);
|
|
/* 029836E8 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 029836E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029836EC */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029836EC */ _t16 = _t15 & 0x00000001u;
|
|
/* 029836EC */ if (_t16) goto L_029836F0; else goto L_029836AC;
|
|
L_029836F0: ; // 0x29836f0
|
|
/* 029836F0 */ _t17 = cpu->r[25] + 0x0000001Cu;
|
|
/* 029836F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029836F4 */ cpu->r[3] = cpu->r[27];
|
|
/* 029836F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029836FC */ cpu->r[28] = 0x101D0000u;
|
|
/* 02983700 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983700 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02983700 */ if (_t19) goto L_02983704; else goto L_0298376C;
|
|
L_02983704: ; // 0x2983704
|
|
/* 02983704 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02983708 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983708 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02983708 */ if (_t21) goto L_0298370C; else goto L_02983714;
|
|
L_0298370C: ; // 0x298370c
|
|
/* 0298370C */ _t22 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 0298370C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02983710 */ Gambit_fn_02826F20(cpu);
|
|
L_02983714: ; // 0x2983714
|
|
/* 02983714 */ _t23 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02983714 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02983718 */ _t24 = cpu->r[12] + 0x00000034u;
|
|
/* 02983718 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298371C */ cpu->ctr = cpu->r[0];
|
|
/* 02983720 */ cpu->r[5] = 0x00000004u;
|
|
/* 02983724 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 02983728 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298372C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02983730 */ cpu->r[9] = cpu->r[31];
|
|
/* 02983734 */ cpu->r[8] = 0x00000000u;
|
|
/* 02983738 */ _t25 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02983738 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02983738 */ if (_t26) goto L_02983740; else goto L_0298373C;
|
|
L_0298373C: ; // 0x298373c
|
|
/* 0298373C */ cpu->r[9] = 0x00000001u;
|
|
L_02983740: ; // 0x2983740
|
|
/* 02983740 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000000Cu);
|
|
/* 02983744 */ cpu->ctr = cpu->r[9];
|
|
/* 02983748 */ cpu->r[0] = 0x00000000u;
|
|
L_0298374C: ; // 0x298374c
|
|
/* 0298374C */ cpu->r[12] = cpu->r[3] + cpu->r[11];
|
|
/* 0298374C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02983750 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983750 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02983750 */ if (_t28) goto L_0298375C; else goto L_02983754;
|
|
L_02983754: ; // 0x2983754
|
|
/* 02983754 */ _t29 = cpu->r[12] + 0x00000004u;
|
|
/* 02983754 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 02983758 */ _t30 = cpu->r[12] + 0x00000000u;
|
|
/* 02983758 */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
L_0298375C: ; // 0x298375c
|
|
/* 0298375C */ cpu->r[11] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02983760 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02983760 */ _t31 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02983760 */ _t32 = _t31 >> (0x00000002u & 31u);
|
|
/* 02983760 */ _t33 = _t32 & 0x00000001u;
|
|
/* 02983760 */ if (_t33) goto L_0298374C; else goto L_02983764;
|
|
L_02983764: ; // 0x2983764
|
|
/* 02983764 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02983768 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983768 */ _t35 = _t34 & 0x00000001u;
|
|
/* 02983768 */ if (_t35) goto L_0298376C; else goto L_02983788;
|
|
L_0298376C: ; // 0x298376c
|
|
/* 0298376C */ _t36 = cpu->r[29] + 0x00000008u;
|
|
/* 0298376C */ cpu->r[5] = rbrew_read32(cpu->mem, _t36);
|
|
/* 02983770 */ _t37 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02983770 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02983774 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x0000000Cu);
|
|
/* 02983778 */ cpu->r[30] = cpu->r[3] + cpu->r[7];
|
|
/* 0298377C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[30]);
|
|
/* 02983780 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983780 */ _t39 = _t38 & 0x00000001u;
|
|
/* 02983780 */ if (_t39) goto L_0298383C; else goto L_02983784;
|
|
L_02983784: ; // 0x2983784
|
|
/* 02983784 */ goto L_029837A0;
|
|
L_02983788: ; // 0x2983788
|
|
/* 02983788 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 0298378C */ cpu->r[30] = cpu->r[3] + cpu->r[7];
|
|
/* 02983790 */ _t40 = cpu->r[29] + 0x00000008u;
|
|
/* 02983790 */ rbrew_write32(cpu->mem, _t40, cpu->r[31]);
|
|
/* 02983794 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[30]);
|
|
/* 02983798 */ _t41 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02983798 */ rbrew_write32(cpu->mem, _t41, cpu->r[3]);
|
|
/* 0298379C */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298379C */ _t43 = _t42 & 0x00000001u;
|
|
/* 0298379C */ if (_t43) goto L_0298383C; else goto L_029837A0;
|
|
L_029837A0: ; // 0x29837a0
|
|
/* 029837A0 */ cpu->r[19] = 0x00000000u;
|
|
/* 029837A4 */ cpu->r[31] = cpu->r[3];
|
|
L_029837A8: ; // 0x29837a8
|
|
/* 029837A8 */ _t44 = cpu->r[24] + 0x00000000u;
|
|
/* 029837A8 */ cpu->r[20] = rbrew_read32(cpu->mem, _t44);
|
|
/* 029837AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 029837B0 */ _t45 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029837B0 */ _t46 = _t45 & 0x00000001u;
|
|
/* 029837B0 */ if (_t46) goto L_029837B4; else goto L_0298382C;
|
|
L_029837B4: ; // 0x29837b4
|
|
/* 029837B4 */ cpu->r[8] = cpu->r[27];
|
|
/* 029837B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 029837B8 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029837B8 */ _t48 = _t47 & 0x00000001u;
|
|
/* 029837B8 */ if (_t48) goto L_029837BC; else goto L_029837C8;
|
|
L_029837BC: ; // 0x29837bc
|
|
/* 029837BC */ _t49 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 029837BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t49);
|
|
/* 029837C0 */ Gambit_fn_02826F20(cpu);
|
|
/* 029837C4 */ cpu->r[8] = cpu->r[3];
|
|
L_029837C8: ; // 0x29837c8
|
|
/* 029837C8 */ _t50 = cpu->r[8] + 0x0000000Cu;
|
|
/* 029837C8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t50);
|
|
/* 029837CC */ _t51 = cpu->r[9] + 0x00000034u;
|
|
/* 029837CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 029837D0 */ cpu->ctr = cpu->r[0];
|
|
/* 029837D4 */ cpu->r[5] = 0x00000004u;
|
|
/* 029837D8 */ cpu->r[4] = cpu->r[20];
|
|
/* 029837DC */ cpu->r[3] = cpu->r[8];
|
|
/* 029837E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029837E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[20], 0x00000000u);
|
|
/* 029837E8 */ cpu->r[0] = cpu->r[20];
|
|
/* 029837EC */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029837EC */ _t53 = _t52 & 0x00000001u;
|
|
/* 029837EC */ if (_t53) goto L_029837F4; else goto L_029837F0;
|
|
L_029837F0: ; // 0x29837f0
|
|
/* 029837F0 */ cpu->r[0] = 0x00000001u;
|
|
L_029837F4: ; // 0x29837f4
|
|
/* 029837F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029837F8 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029837F8 */ _t55 = _t54 & 0x00000001u;
|
|
/* 029837F8 */ if (_t55) goto L_02983804; else goto L_029837FC;
|
|
L_029837FC: ; // 0x29837fc
|
|
/* 029837FC */ _t56 = cpu->r[31] + 0x00000004u;
|
|
/* 029837FC */ rbrew_write32(cpu->mem, _t56, cpu->r[3]);
|
|
/* 02983800 */ _t57 = cpu->r[31] + 0x00000000u;
|
|
/* 02983800 */ rbrew_write32(cpu->mem, _t57, cpu->r[20]);
|
|
L_02983804: ; // 0x2983804
|
|
/* 02983804 */ _t58 = cpu->r[31] + 0x00000004u;
|
|
/* 02983804 */ cpu->r[11] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02983808 */ _t59 = cpu->r[31] + 0x00000000u;
|
|
/* 02983808 */ cpu->r[10] = rbrew_read32(cpu->mem, _t59);
|
|
/* 0298380C */ cpu->r[0] = cpu->r[11] + cpu->r[10];
|
|
/* 02983810 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 02983814 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983814 */ _t61 = _t60 & 0x00000001u;
|
|
/* 02983814 */ if (_t61) goto L_0298382C; else goto L_02983818;
|
|
L_02983818: ; // 0x2983818
|
|
/* 02983818 */ cpu->r[10] = 0x00000000u;
|
|
L_0298381C: ; // 0x298381c
|
|
/* 0298381C */ _t62 = cpu->r[11] + 0x00000000u;
|
|
/* 0298381C */ rbrew_write8(cpu->mem, _t62, (uint8_t)cpu->r[10]);
|
|
/* 02983820 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 02983824 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 02983828 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983828 */ _t64 = _t63 & 0x00000001u;
|
|
/* 02983828 */ if (_t64) goto L_0298382C; else goto L_0298381C;
|
|
L_0298382C: ; // 0x298382c
|
|
/* 0298382C */ _t65 = cpu->r[31] + 0x00000008u;
|
|
/* 0298382C */ rbrew_write16(cpu->mem, _t65, (uint16_t)cpu->r[19]);
|
|
/* 02983830 */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02983834 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02983838 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983838 */ _t67 = _t66 & 0x00000001u;
|
|
/* 02983838 */ if (_t67) goto L_0298383C; else goto L_029837A8;
|
|
L_0298383C: ; // 0x298383c
|
|
/* 0298383C */ cpu->r[3] = cpu->r[25];
|
|
/* 02983840 */ Gambit_fn_0298100C(cpu);
|
|
/* 02983844 */ _t68 = cpu->r[29] + 0x0000008Au;
|
|
/* 02983844 */ rbrew_write16(cpu->mem, _t68, (uint16_t)cpu->r[3]);
|
|
/* 02983848 */ cpu->r[3] = cpu->r[25];
|
|
/* 0298384C */ Gambit_fn_02981154(cpu);
|
|
/* 02983850 */ _t69 = cpu->r[29] + 0x00000088u;
|
|
/* 02983850 */ rbrew_write16(cpu->mem, _t69, (uint16_t)cpu->r[3]);
|
|
/* 02983854 */ cpu->r[10] = cpu->r[27];
|
|
/* 02983858 */ cpu->r[9] = cpu->r[26];
|
|
/* 0298385C */ cpu->r[8] = cpu->r[25];
|
|
/* 02983860 */ cpu->r[7] = cpu->r[24];
|
|
/* 02983864 */ cpu->r[6] = cpu->r[23];
|
|
/* 02983868 */ cpu->r[5] = cpu->r[22];
|
|
/* 0298386C */ cpu->r[4] = cpu->r[21];
|
|
/* 02983870 */ cpu->r[3] = cpu->r[29];
|
|
/* 02983874 */ Gambit_fn_029829D0(cpu);
|
|
/* 02983878 */ cpu->r[6] = cpu->r[24];
|
|
/* 0298387C */ cpu->r[5] = cpu->r[23];
|
|
/* 02983880 */ cpu->r[3] = cpu->r[29];
|
|
/* 02983884 */ cpu->r[4] = cpu->r[21];
|
|
/* 02983888 */ cpu->r[7] = cpu->r[25];
|
|
/* 0298388C */ cpu->r[8] = cpu->r[26];
|
|
/* 02983890 */ cpu->r[9] = cpu->r[27];
|
|
/* 02983894 */ Gambit_fn_02983150(cpu);
|
|
/* 02983898 */ /* nop */
|
|
/* 0298389C */ _t70 = cpu->r[1] + 0x00000044u;
|
|
/* 0298389C */ cpu->r[0] = rbrew_read32(cpu->mem, _t70);
|
|
/* 029838A0 */ cpu->lr = cpu->r[0];
|
|
/* 029838A4 */ cpu->r[1] = cpu->r[1] + 0x00000040u;
|
|
/* 029838A8 */ return;
|
|
}
|
|
|
|
// fn_029838AC @ 0x29838ac
|
|
void Gambit_fn_029838AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_029838AC: ; // 0x29838ac
|
|
/* 029838AC */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 029838AC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029838AC */ cpu->r[1] = _t0;
|
|
/* 029838B0 */ cpu->r[0] = cpu->lr;
|
|
/* 029838B4 */ /* nop */
|
|
/* 029838B8 */ cpu->r[28] = cpu->r[9];
|
|
/* 029838BC */ cpu->r[30] = cpu->r[4];
|
|
/* 029838C0 */ cpu->r[24] = cpu->r[5];
|
|
/* 029838C4 */ cpu->r[25] = cpu->r[6];
|
|
/* 029838C8 */ cpu->r[26] = cpu->r[7];
|
|
/* 029838CC */ cpu->r[4] = cpu->r[28];
|
|
/* 029838D0 */ cpu->r[5] = 0x00000004u;
|
|
/* 029838D4 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029838D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029838D8 */ cpu->r[29] = cpu->r[3];
|
|
/* 029838DC */ cpu->r[3] = 0x00000098u;
|
|
/* 029838E0 */ cpu->r[27] = cpu->r[8];
|
|
/* 029838E4 */ Gambit_fn_02801AC8(cpu);
|
|
/* 029838E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 029838E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029838EC */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029838EC */ _t3 = _t2 & 0x00000001u;
|
|
/* 029838EC */ if (_t3) goto L_029838FC; else goto L_029838F0;
|
|
L_029838F0: ; // 0x29838f0
|
|
/* 029838F0 */ cpu->r[3] = cpu->r[31];
|
|
/* 029838F4 */ Gambit_fn_0298279C(cpu);
|
|
/* 029838F8 */ cpu->r[31] = cpu->r[3];
|
|
L_029838FC: ; // 0x29838fc
|
|
/* 029838FC */ cpu->r[10] = cpu->r[28];
|
|
/* 02983900 */ cpu->r[9] = cpu->r[27];
|
|
/* 02983904 */ cpu->r[8] = cpu->r[26];
|
|
/* 02983908 */ cpu->r[7] = cpu->r[25];
|
|
/* 0298390C */ cpu->r[6] = cpu->r[24];
|
|
/* 02983910 */ cpu->r[5] = cpu->r[30];
|
|
/* 02983914 */ cpu->r[4] = cpu->r[29];
|
|
/* 02983918 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298391C */ Gambit_fn_02983658(cpu);
|
|
/* 02983920 */ cpu->r[3] = cpu->r[31];
|
|
/* 02983924 */ /* nop */
|
|
/* 02983928 */ _t4 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02983928 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298392C */ cpu->lr = cpu->r[0];
|
|
/* 02983930 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02983934 */ return;
|
|
}
|
|
|
|
// fn_02983938 @ 0x2983938
|
|
void Gambit_fn_02983938(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_02983938: ; // 0x2983938
|
|
/* 02983938 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298393C */ _t0 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298393C */ _t1 = _t0 & 0x00000001u;
|
|
/* 0298393C */ if (_t1) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298393C */ goto L_02983940;
|
|
L_02983940: ; // 0x2983940
|
|
/* 02983940 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 02983940 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02983944 */ _t3 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02983944 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02983948 */ cpu->ctr = cpu->r[0];
|
|
/* 0298394C */ cpu->r[4] = 0x00000003u;
|
|
/* 02983950 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_02983954 @ 0x2983954
|
|
void Gambit_fn_02983954(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02983954: ; // 0x2983954
|
|
/* 02983954 */ cpu->r[0] = cpu->lr;
|
|
/* 02983958 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02983958 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02983958 */ cpu->r[1] = _t0;
|
|
/* 0298395C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298395C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02983960 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02983960 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02983964 */ cpu->r[31] = cpu->r[3];
|
|
/* 02983968 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02983968 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298396C */ _t4 = cpu->r[31] + 0x00000028u;
|
|
/* 0298396C */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02983970 */ _t5 = cpu->r[5] + 0x00000000u;
|
|
/* 02983970 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02983974 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 02983978 */ _t6 = cpu->r[31] + 0x0000002Cu;
|
|
/* 02983978 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298397C */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298397C */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298397C */ if (_t8) goto L_02983980; else goto L_02983988;
|
|
L_02983980: ; // 0x2983980
|
|
/* 02983980 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000006Cu);
|
|
/* 02983984 */ cpu->r[30] = cpu->r[30] + cpu->r[9];
|
|
L_02983988: ; // 0x2983988
|
|
/* 02983988 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 02983988 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298398C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02983990 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983990 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02983990 */ if (_t11) goto L_02983994; else goto L_029839A0;
|
|
L_02983994: ; // 0x2983994
|
|
/* 02983994 */ _t12 = cpu->r[30] + 0x00000004u;
|
|
/* 02983994 */ cpu->r[4] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02983998 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[6]);
|
|
/* 0298399C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298399C */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298399C */ if (_t14) goto L_02983B10; else goto L_029839A0;
|
|
L_029839A0: ; // 0x29839a0
|
|
/* 029839A0 */ _t15 = cpu->r[30] + 0x00000004u;
|
|
/* 029839A0 */ rbrew_write32(cpu->mem, _t15, cpu->r[6]);
|
|
/* 029839A4 */ cpu->r[0] = cpu->r[12];
|
|
/* 029839A8 */ _t16 = cpu->r[30] + 0x00000068u;
|
|
/* 029839A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029839AC */ /* nop */
|
|
/* 029839B0 */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 029839B0 */ rbrew_write32(cpu->mem, _t17, cpu->r[12]);
|
|
/* 029839B4 */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x0000001Eu, 0x0000001Cu);
|
|
/* 029839B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0xFFFFFFFFu);
|
|
/* 029839BC */ _t18 = cpu->r[30] + 0x00000068u;
|
|
/* 029839BC */ rbrew_write32(cpu->mem, _t18, cpu->r[7]);
|
|
/* 029839C0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029839C0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 029839C0 */ if (_t20) goto L_02983A10; else goto L_029839C4;
|
|
L_029839C4: ; // 0x29839c4
|
|
/* 029839C4 */ /* nop */
|
|
/* 029839C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 029839CC */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029839CC */ _t22 = _t21 & 0x00000001u;
|
|
/* 029839CC */ if (_t22) goto L_02983A10; else goto L_029839D0;
|
|
L_029839D0: ; // 0x29839d0
|
|
/* 029839D0 */ _t23 = cpu->r[31] + 0x00000038u;
|
|
/* 029839D0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029839D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 029839D8 */ _t24 = cpu->r[31] + 0x0000003Cu;
|
|
/* 029839D8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029839DC */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029839DC */ _t26 = _t25 & 0x00000001u;
|
|
/* 029839DC */ if (_t26) goto L_029839E0; else goto L_029839E8;
|
|
L_029839E0: ; // 0x29839e0
|
|
/* 029839E0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 029839E4 */ cpu->r[7] = cpu->r[7] + cpu->r[12];
|
|
L_029839E8: ; // 0x29839e8
|
|
/* 029839E8 */ _t27 = cpu->r[7] + 0x00000004u;
|
|
/* 029839E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 029839EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029839F0 */ _t28 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029839F0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 029839F0 */ if (_t29) goto L_029839F4; else goto L_02983A10;
|
|
L_029839F4: ; // 0x29839f4
|
|
/* 029839F4 */ _t30 = cpu->r[7] + 0x00000000u;
|
|
/* 029839F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 029839F8 */ _t31 = cpu->r[11] + 0x00000000u;
|
|
/* 029839F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t31);
|
|
/* 029839FC */ cpu->r[3] = cpu->r[30] + 0x0000000Cu;
|
|
/* 02983A00 */ Gambit_fn_02C54BFC(cpu);
|
|
/* 02983A04 */ _t32 = cpu->r[30] + 0x00000068u;
|
|
/* 02983A04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02983A08 */ cpu->r[0] = cpu->r[0] | 0x00000002u;
|
|
/* 02983A0C */ _t33 = cpu->r[30] + 0x00000068u;
|
|
/* 02983A0C */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
L_02983A10: ; // 0x2983a10
|
|
/* 02983A10 */ _t34 = cpu->r[31] + 0x00000008u;
|
|
/* 02983A10 */ cpu->r[9] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02983A14 */ _t35 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02983A14 */ cpu->r[10] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02983A18 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983A1C */ cpu->r[11] = cpu->r[10] + cpu->r[7];
|
|
/* 02983A20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 02983A24 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A24 */ _t37 = _t36 & 0x00000001u;
|
|
/* 02983A24 */ if (_t37) goto L_02983A3C; else goto L_02983A28;
|
|
L_02983A28: ; // 0x2983a28
|
|
/* 02983A28 */ cpu->r[9] = 0x00000000u;
|
|
L_02983A2C: ; // 0x2983a2c
|
|
/* 02983A2C */ _t38 = cpu->r[10] + 0x00000008u;
|
|
/* 02983A2C */ rbrew_write16(cpu->mem, _t38, (uint16_t)cpu->r[9]);
|
|
/* 02983A30 */ cpu->r[10] = cpu->r[10] + 0x0000000Cu;
|
|
/* 02983A34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 02983A38 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A38 */ _t40 = _t39 & 0x00000001u;
|
|
/* 02983A38 */ if (_t40) goto L_02983A3C; else goto L_02983A2C;
|
|
L_02983A3C: ; // 0x2983a3c
|
|
/* 02983A3C */ _t41 = cpu->r[31] + 0x00000028u;
|
|
/* 02983A3C */ cpu->r[8] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02983A40 */ _t42 = cpu->r[31] + 0x0000002Cu;
|
|
/* 02983A40 */ cpu->r[6] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02983A44 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000006Cu);
|
|
/* 02983A48 */ cpu->r[8] = cpu->r[6] + cpu->r[9];
|
|
/* 02983A4C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[8]);
|
|
/* 02983A50 */ cpu->r[9] = cpu->r[6];
|
|
/* 02983A54 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A54 */ _t44 = _t43 & 0x00000001u;
|
|
/* 02983A54 */ if (_t44) goto L_02983B10; else goto L_02983A58;
|
|
L_02983A58: ; // 0x2983a58
|
|
/* 02983A58 */ _t45 = cpu->r[6] + 0x00000000u;
|
|
/* 02983A58 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t45);
|
|
/* 02983A5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02983A60 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A60 */ _t47 = _t46 & 0x00000001u;
|
|
/* 02983A60 */ if (_t47) goto L_02983B04; else goto L_02983A64;
|
|
L_02983A64: ; // 0x2983a64
|
|
/* 02983A64 */ _t48 = cpu->r[6] + 0x00000002u;
|
|
/* 02983A64 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t48);
|
|
/* 02983A68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02983A6C */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A6C */ _t50 = _t49 & 0x00000001u;
|
|
/* 02983A6C */ if (_t50) goto L_02983B04; else goto L_02983A70;
|
|
L_02983A70: ; // 0x2983a70
|
|
/* 02983A70 */ _t51 = cpu->r[31] + 0x00000038u;
|
|
/* 02983A70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02983A74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02983A78 */ _t52 = cpu->r[31] + 0x0000003Cu;
|
|
/* 02983A78 */ cpu->r[11] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02983A7C */ _t53 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983A7C */ _t54 = _t53 & 0x00000001u;
|
|
/* 02983A7C */ if (_t54) goto L_02983A80; else goto L_02983A88;
|
|
L_02983A80: ; // 0x2983a80
|
|
/* 02983A80 */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02983A84 */ cpu->r[11] = cpu->r[11] + cpu->r[4];
|
|
L_02983A88: ; // 0x2983a88
|
|
/* 02983A88 */ _t55 = cpu->r[11] + 0x00000004u;
|
|
/* 02983A88 */ cpu->r[10] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02983A8C */ _t56 = cpu->r[11] + 0x00000008u;
|
|
/* 02983A8C */ cpu->r[12] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02983A90 */ cpu->r[5] = rbrew_rlwinm(cpu->r[10], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02983A94 */ cpu->r[4] = cpu->r[12] + cpu->r[5];
|
|
/* 02983A98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[4]);
|
|
/* 02983A9C */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A9C */ _t58 = _t57 & 0x00000001u;
|
|
/* 02983A9C */ if (_t58) goto L_02983B04; else goto L_02983AA0;
|
|
L_02983AA0: ; // 0x2983aa0
|
|
/* 02983AA0 */ cpu->r[11] = 0x4BDA0000u;
|
|
/* 02983AA4 */ cpu->r[7] = cpu->r[6] - cpu->r[9];
|
|
/* 02983AA8 */ cpu->r[11] = cpu->r[11] + 0x000012F7u;
|
|
/* 02983AAC */ cpu->r[10] = rbrew_rlwinm(cpu->r[7], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 02983AB0 */ /* nop */
|
|
/* 02983AB4 */ cpu->r[3] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
L_02983AB8: ; // 0x2983ab8
|
|
/* 02983AB8 */ _t59 = cpu->r[12] + 0x00000000u;
|
|
/* 02983AB8 */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t59);
|
|
/* 02983ABC */ _t60 = cpu->r[31] + 0x00000008u;
|
|
/* 02983ABC */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02983AC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 02983AC4 */ _t61 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02983AC4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t61);
|
|
/* 02983AC8 */ _t62 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983AC8 */ _t63 = _t62 & 0x00000001u;
|
|
/* 02983AC8 */ if (_t63) goto L_02983ACC; else goto L_02983AD4;
|
|
L_02983ACC: ; // 0x2983acc
|
|
/* 02983ACC */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x0000000Cu);
|
|
/* 02983AD0 */ cpu->r[7] = cpu->r[7] + cpu->r[5];
|
|
L_02983AD4: ; // 0x2983ad4
|
|
/* 02983AD4 */ _t64 = cpu->r[7] + 0x00000008u;
|
|
/* 02983AD4 */ cpu->r[5] = rbrew_read16(cpu->mem, _t64);
|
|
/* 02983AD8 */ _t65 = cpu->r[7] + 0x00000000u;
|
|
/* 02983AD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 02983ADC */ cpu->r[11] = cpu->r[5] + 0x00000001u;
|
|
/* 02983AE0 */ _t66 = cpu->r[7] + 0x00000008u;
|
|
/* 02983AE0 */ rbrew_write16(cpu->mem, _t66, (uint16_t)cpu->r[11]);
|
|
/* 02983AE4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 02983AE8 */ _t67 = cpu->r[7] + 0x00000004u;
|
|
/* 02983AE8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02983AEC */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983AEC */ _t69 = _t68 & 0x00000001u;
|
|
/* 02983AEC */ if (_t69) goto L_02983AF0; else goto L_02983AF4;
|
|
L_02983AF0: ; // 0x2983af0
|
|
/* 02983AF0 */ cpu->r[10] = cpu->r[10] + cpu->r[5];
|
|
L_02983AF4: ; // 0x2983af4
|
|
/* 02983AF4 */ cpu->r[12] = cpu->r[12] + 0x00000002u;
|
|
/* 02983AF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[4]);
|
|
/* 02983AFC */ _t70 = cpu->r[10] + 0x00000000u;
|
|
/* 02983AFC */ rbrew_write8(cpu->mem, _t70, (uint8_t)cpu->r[3]);
|
|
/* 02983B00 */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983B00 */ _t72 = _t71 & 0x00000001u;
|
|
/* 02983B00 */ if (_t72) goto L_02983B04; else goto L_02983AB8;
|
|
L_02983B04: ; // 0x2983b04
|
|
/* 02983B04 */ cpu->r[6] = cpu->r[6] + 0x0000006Cu;
|
|
/* 02983B08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[8]);
|
|
/* 02983B0C */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983B0C */ _t74 = _t73 & 0x00000001u;
|
|
/* 02983B0C */ if (_t74) goto L_02983B10; else goto L_02983A58;
|
|
L_02983B10: ; // 0x2983b10
|
|
/* 02983B10 */ _t75 = cpu->r[1] + 0x00000014u;
|
|
/* 02983B10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 02983B14 */ _t76 = cpu->r[1] + 0x00000008u;
|
|
/* 02983B14 */ cpu->r[30] = rbrew_read32(cpu->mem, _t76);
|
|
/* 02983B18 */ cpu->lr = cpu->r[0];
|
|
/* 02983B1C */ _t77 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983B1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02983B20 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02983B24 */ return;
|
|
}
|
|
|
|
// fn_02983958 @ 0x2983958
|
|
void Gambit_fn_02983958(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02983958: ; // 0x2983958
|
|
/* 02983958 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02983958 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02983958 */ cpu->r[1] = _t0;
|
|
/* 0298395C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298395C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02983960 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02983960 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02983964 */ cpu->r[31] = cpu->r[3];
|
|
/* 02983968 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02983968 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298396C */ _t4 = cpu->r[31] + 0x00000028u;
|
|
/* 0298396C */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02983970 */ _t5 = cpu->r[5] + 0x00000000u;
|
|
/* 02983970 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02983974 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 02983978 */ _t6 = cpu->r[31] + 0x0000002Cu;
|
|
/* 02983978 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298397C */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298397C */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298397C */ if (_t8) goto L_02983980; else goto L_02983988;
|
|
L_02983980: ; // 0x2983980
|
|
/* 02983980 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000006Cu);
|
|
/* 02983984 */ cpu->r[30] = cpu->r[30] + cpu->r[9];
|
|
L_02983988: ; // 0x2983988
|
|
/* 02983988 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 02983988 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298398C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02983990 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983990 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02983990 */ if (_t11) goto L_02983994; else goto L_029839A0;
|
|
L_02983994: ; // 0x2983994
|
|
/* 02983994 */ _t12 = cpu->r[30] + 0x00000004u;
|
|
/* 02983994 */ cpu->r[4] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02983998 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[6]);
|
|
/* 0298399C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298399C */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298399C */ if (_t14) goto L_02983B10; else goto L_029839A0;
|
|
L_029839A0: ; // 0x29839a0
|
|
/* 029839A0 */ _t15 = cpu->r[30] + 0x00000004u;
|
|
/* 029839A0 */ rbrew_write32(cpu->mem, _t15, cpu->r[6]);
|
|
/* 029839A4 */ cpu->r[0] = cpu->r[12];
|
|
/* 029839A8 */ _t16 = cpu->r[30] + 0x00000068u;
|
|
/* 029839A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029839AC */ /* nop */
|
|
/* 029839B0 */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 029839B0 */ rbrew_write32(cpu->mem, _t17, cpu->r[12]);
|
|
/* 029839B4 */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x0000001Eu, 0x0000001Cu);
|
|
/* 029839B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0xFFFFFFFFu);
|
|
/* 029839BC */ _t18 = cpu->r[30] + 0x00000068u;
|
|
/* 029839BC */ rbrew_write32(cpu->mem, _t18, cpu->r[7]);
|
|
/* 029839C0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029839C0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 029839C0 */ if (_t20) goto L_02983A10; else goto L_029839C4;
|
|
L_029839C4: ; // 0x29839c4
|
|
/* 029839C4 */ /* nop */
|
|
/* 029839C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 029839CC */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029839CC */ _t22 = _t21 & 0x00000001u;
|
|
/* 029839CC */ if (_t22) goto L_02983A10; else goto L_029839D0;
|
|
L_029839D0: ; // 0x29839d0
|
|
/* 029839D0 */ _t23 = cpu->r[31] + 0x00000038u;
|
|
/* 029839D0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029839D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[11]);
|
|
/* 029839D8 */ _t24 = cpu->r[31] + 0x0000003Cu;
|
|
/* 029839D8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029839DC */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029839DC */ _t26 = _t25 & 0x00000001u;
|
|
/* 029839DC */ if (_t26) goto L_029839E0; else goto L_029839E8;
|
|
L_029839E0: ; // 0x29839e0
|
|
/* 029839E0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 029839E4 */ cpu->r[7] = cpu->r[7] + cpu->r[12];
|
|
L_029839E8: ; // 0x29839e8
|
|
/* 029839E8 */ _t27 = cpu->r[7] + 0x00000004u;
|
|
/* 029839E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 029839EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029839F0 */ _t28 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029839F0 */ _t29 = _t28 & 0x00000001u;
|
|
/* 029839F0 */ if (_t29) goto L_029839F4; else goto L_02983A10;
|
|
L_029839F4: ; // 0x29839f4
|
|
/* 029839F4 */ _t30 = cpu->r[7] + 0x00000000u;
|
|
/* 029839F4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 029839F8 */ _t31 = cpu->r[11] + 0x00000000u;
|
|
/* 029839F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t31);
|
|
/* 029839FC */ cpu->r[3] = cpu->r[30] + 0x0000000Cu;
|
|
/* 02983A00 */ Gambit_fn_02C54BFC(cpu);
|
|
/* 02983A04 */ _t32 = cpu->r[30] + 0x00000068u;
|
|
/* 02983A04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02983A08 */ cpu->r[0] = cpu->r[0] | 0x00000002u;
|
|
/* 02983A0C */ _t33 = cpu->r[30] + 0x00000068u;
|
|
/* 02983A0C */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
L_02983A10: ; // 0x2983a10
|
|
/* 02983A10 */ _t34 = cpu->r[31] + 0x00000008u;
|
|
/* 02983A10 */ cpu->r[9] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02983A14 */ _t35 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02983A14 */ cpu->r[10] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02983A18 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983A1C */ cpu->r[11] = cpu->r[10] + cpu->r[7];
|
|
/* 02983A20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 02983A24 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A24 */ _t37 = _t36 & 0x00000001u;
|
|
/* 02983A24 */ if (_t37) goto L_02983A3C; else goto L_02983A28;
|
|
L_02983A28: ; // 0x2983a28
|
|
/* 02983A28 */ cpu->r[9] = 0x00000000u;
|
|
L_02983A2C: ; // 0x2983a2c
|
|
/* 02983A2C */ _t38 = cpu->r[10] + 0x00000008u;
|
|
/* 02983A2C */ rbrew_write16(cpu->mem, _t38, (uint16_t)cpu->r[9]);
|
|
/* 02983A30 */ cpu->r[10] = cpu->r[10] + 0x0000000Cu;
|
|
/* 02983A34 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 02983A38 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A38 */ _t40 = _t39 & 0x00000001u;
|
|
/* 02983A38 */ if (_t40) goto L_02983A3C; else goto L_02983A2C;
|
|
L_02983A3C: ; // 0x2983a3c
|
|
/* 02983A3C */ _t41 = cpu->r[31] + 0x00000028u;
|
|
/* 02983A3C */ cpu->r[8] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02983A40 */ _t42 = cpu->r[31] + 0x0000002Cu;
|
|
/* 02983A40 */ cpu->r[6] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02983A44 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000006Cu);
|
|
/* 02983A48 */ cpu->r[8] = cpu->r[6] + cpu->r[9];
|
|
/* 02983A4C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[8]);
|
|
/* 02983A50 */ cpu->r[9] = cpu->r[6];
|
|
/* 02983A54 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A54 */ _t44 = _t43 & 0x00000001u;
|
|
/* 02983A54 */ if (_t44) goto L_02983B10; else goto L_02983A58;
|
|
L_02983A58: ; // 0x2983a58
|
|
/* 02983A58 */ _t45 = cpu->r[6] + 0x00000000u;
|
|
/* 02983A58 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t45);
|
|
/* 02983A5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02983A60 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A60 */ _t47 = _t46 & 0x00000001u;
|
|
/* 02983A60 */ if (_t47) goto L_02983B04; else goto L_02983A64;
|
|
L_02983A64: ; // 0x2983a64
|
|
/* 02983A64 */ _t48 = cpu->r[6] + 0x00000002u;
|
|
/* 02983A64 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t48);
|
|
/* 02983A68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02983A6C */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A6C */ _t50 = _t49 & 0x00000001u;
|
|
/* 02983A6C */ if (_t50) goto L_02983B04; else goto L_02983A70;
|
|
L_02983A70: ; // 0x2983a70
|
|
/* 02983A70 */ _t51 = cpu->r[31] + 0x00000038u;
|
|
/* 02983A70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02983A74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02983A78 */ _t52 = cpu->r[31] + 0x0000003Cu;
|
|
/* 02983A78 */ cpu->r[11] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02983A7C */ _t53 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983A7C */ _t54 = _t53 & 0x00000001u;
|
|
/* 02983A7C */ if (_t54) goto L_02983A80; else goto L_02983A88;
|
|
L_02983A80: ; // 0x2983a80
|
|
/* 02983A80 */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02983A84 */ cpu->r[11] = cpu->r[11] + cpu->r[4];
|
|
L_02983A88: ; // 0x2983a88
|
|
/* 02983A88 */ _t55 = cpu->r[11] + 0x00000004u;
|
|
/* 02983A88 */ cpu->r[10] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02983A8C */ _t56 = cpu->r[11] + 0x00000008u;
|
|
/* 02983A8C */ cpu->r[12] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02983A90 */ cpu->r[5] = rbrew_rlwinm(cpu->r[10], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02983A94 */ cpu->r[4] = cpu->r[12] + cpu->r[5];
|
|
/* 02983A98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[4]);
|
|
/* 02983A9C */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983A9C */ _t58 = _t57 & 0x00000001u;
|
|
/* 02983A9C */ if (_t58) goto L_02983B04; else goto L_02983AA0;
|
|
L_02983AA0: ; // 0x2983aa0
|
|
/* 02983AA0 */ cpu->r[11] = 0x4BDA0000u;
|
|
/* 02983AA4 */ cpu->r[7] = cpu->r[6] - cpu->r[9];
|
|
/* 02983AA8 */ cpu->r[11] = cpu->r[11] + 0x000012F7u;
|
|
/* 02983AAC */ cpu->r[10] = rbrew_rlwinm(cpu->r[7], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 02983AB0 */ /* nop */
|
|
/* 02983AB4 */ cpu->r[3] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
L_02983AB8: ; // 0x2983ab8
|
|
/* 02983AB8 */ _t59 = cpu->r[12] + 0x00000000u;
|
|
/* 02983AB8 */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t59);
|
|
/* 02983ABC */ _t60 = cpu->r[31] + 0x00000008u;
|
|
/* 02983ABC */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02983AC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 02983AC4 */ _t61 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02983AC4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t61);
|
|
/* 02983AC8 */ _t62 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983AC8 */ _t63 = _t62 & 0x00000001u;
|
|
/* 02983AC8 */ if (_t63) goto L_02983ACC; else goto L_02983AD4;
|
|
L_02983ACC: ; // 0x2983acc
|
|
/* 02983ACC */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x0000000Cu);
|
|
/* 02983AD0 */ cpu->r[7] = cpu->r[7] + cpu->r[5];
|
|
L_02983AD4: ; // 0x2983ad4
|
|
/* 02983AD4 */ _t64 = cpu->r[7] + 0x00000008u;
|
|
/* 02983AD4 */ cpu->r[5] = rbrew_read16(cpu->mem, _t64);
|
|
/* 02983AD8 */ _t65 = cpu->r[7] + 0x00000000u;
|
|
/* 02983AD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 02983ADC */ cpu->r[11] = cpu->r[5] + 0x00000001u;
|
|
/* 02983AE0 */ _t66 = cpu->r[7] + 0x00000008u;
|
|
/* 02983AE0 */ rbrew_write16(cpu->mem, _t66, (uint16_t)cpu->r[11]);
|
|
/* 02983AE4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], cpu->r[0]);
|
|
/* 02983AE8 */ _t67 = cpu->r[7] + 0x00000004u;
|
|
/* 02983AE8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02983AEC */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983AEC */ _t69 = _t68 & 0x00000001u;
|
|
/* 02983AEC */ if (_t69) goto L_02983AF0; else goto L_02983AF4;
|
|
L_02983AF0: ; // 0x2983af0
|
|
/* 02983AF0 */ cpu->r[10] = cpu->r[10] + cpu->r[5];
|
|
L_02983AF4: ; // 0x2983af4
|
|
/* 02983AF4 */ cpu->r[12] = cpu->r[12] + 0x00000002u;
|
|
/* 02983AF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[4]);
|
|
/* 02983AFC */ _t70 = cpu->r[10] + 0x00000000u;
|
|
/* 02983AFC */ rbrew_write8(cpu->mem, _t70, (uint8_t)cpu->r[3]);
|
|
/* 02983B00 */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983B00 */ _t72 = _t71 & 0x00000001u;
|
|
/* 02983B00 */ if (_t72) goto L_02983B04; else goto L_02983AB8;
|
|
L_02983B04: ; // 0x2983b04
|
|
/* 02983B04 */ cpu->r[6] = cpu->r[6] + 0x0000006Cu;
|
|
/* 02983B08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[8]);
|
|
/* 02983B0C */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983B0C */ _t74 = _t73 & 0x00000001u;
|
|
/* 02983B0C */ if (_t74) goto L_02983B10; else goto L_02983A58;
|
|
L_02983B10: ; // 0x2983b10
|
|
/* 02983B10 */ _t75 = cpu->r[1] + 0x00000014u;
|
|
/* 02983B10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 02983B14 */ _t76 = cpu->r[1] + 0x00000008u;
|
|
/* 02983B14 */ cpu->r[30] = rbrew_read32(cpu->mem, _t76);
|
|
/* 02983B18 */ cpu->lr = cpu->r[0];
|
|
/* 02983B1C */ _t77 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983B1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02983B20 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02983B24 */ return;
|
|
}
|
|
|
|
// fn_02983B28 @ 0x2983b28
|
|
void Gambit_fn_02983B28(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_02983B28: ; // 0x2983b28
|
|
/* 02983B28 */ cpu->r[0] = cpu->lr;
|
|
/* 02983B2C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 02983B2C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 02983B30 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 02983B34 */ _t1 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02983B34 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 02983B34 */ cpu->r[1] = _t1;
|
|
/* 02983B38 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02983B38 */ rbrew_write16(cpu->mem, _t2, (uint16_t)cpu->r[11]);
|
|
/* 02983B3C */ _t3 = cpu->r[1] + 0x0000000Au;
|
|
/* 02983B3C */ rbrew_write16(cpu->mem, _t3, (uint16_t)cpu->r[11]);
|
|
/* 02983B40 */ _t4 = cpu->r[1] + 0x00000008u;
|
|
/* 02983B40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02983B44 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983B48 */ cpu->r[6] = 0x00000000u;
|
|
/* 02983B4C */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983B4C */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 02983B50 */ Gambit_fn_02983954(cpu);
|
|
/* 02983B54 */ _t6 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02983B54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02983B58 */ cpu->lr = cpu->r[0];
|
|
/* 02983B5C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02983B60 */ return;
|
|
}
|
|
|
|
// fn_02983B34 @ 0x2983b34
|
|
void Gambit_fn_02983B34(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_02983B34: ; // 0x2983b34
|
|
/* 02983B34 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02983B34 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02983B34 */ cpu->r[1] = _t0;
|
|
/* 02983B38 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02983B38 */ rbrew_write16(cpu->mem, _t1, (uint16_t)cpu->r[11]);
|
|
/* 02983B3C */ _t2 = cpu->r[1] + 0x0000000Au;
|
|
/* 02983B3C */ rbrew_write16(cpu->mem, _t2, (uint16_t)cpu->r[11]);
|
|
/* 02983B40 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 02983B40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02983B44 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983B48 */ cpu->r[6] = 0x00000000u;
|
|
/* 02983B4C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983B4C */ rbrew_write32(cpu->mem, _t4, cpu->r[12]);
|
|
/* 02983B50 */ Gambit_fn_02983954(cpu);
|
|
/* 02983B54 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02983B54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02983B58 */ cpu->lr = cpu->r[0];
|
|
/* 02983B5C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02983B60 */ return;
|
|
}
|
|
|
|
// fn_02983B64 @ 0x2983b64
|
|
void Gambit_fn_02983B64(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_02983B64: ; // 0x2983b64
|
|
/* 02983B64 */ _t0 = cpu->r[3] + 0x00000028u;
|
|
/* 02983B64 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02983B68 */ _t1 = cpu->r[3] + 0x0000002Cu;
|
|
/* 02983B68 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02983B6C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000006Cu);
|
|
/* 02983B70 */ cpu->r[0] = cpu->r[12] + cpu->r[9];
|
|
/* 02983B74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02983B78 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983B78 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02983B78 */ if (_t3) goto L_02983B94; else goto L_02983B7C;
|
|
L_02983B7C: ; // 0x2983b7c
|
|
/* 02983B7C */ cpu->r[11] = 0xFFFFFFFFu;
|
|
L_02983B80: ; // 0x2983b80
|
|
/* 02983B80 */ _t4 = cpu->r[12] + 0x00000002u;
|
|
/* 02983B80 */ rbrew_write16(cpu->mem, _t4, (uint16_t)cpu->r[11]);
|
|
/* 02983B84 */ _t5 = cpu->r[12] + 0x00000000u;
|
|
/* 02983B84 */ rbrew_write16(cpu->mem, _t5, (uint16_t)cpu->r[11]);
|
|
/* 02983B88 */ cpu->r[12] = cpu->r[12] + 0x0000006Cu;
|
|
/* 02983B8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02983B90 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983B90 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02983B90 */ if (_t7) goto L_02983B94; else goto L_02983B80;
|
|
L_02983B94: ; // 0x2983b94
|
|
/* 02983B94 */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 02983B94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02983B98 */ _t9 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02983B98 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02983B9C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02983BA0 */ cpu->r[11] = cpu->r[10] + cpu->r[0];
|
|
/* 02983BA4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 02983BA8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983BA8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02983BA8 */ if (_t11) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02983BA8 */ goto L_02983BAC;
|
|
L_02983BAC: ; // 0x2983bac
|
|
/* 02983BAC */ cpu->r[9] = 0x00000000u;
|
|
L_02983BB0: ; // 0x2983bb0
|
|
/* 02983BB0 */ _t12 = cpu->r[10] + 0x00000008u;
|
|
/* 02983BB0 */ rbrew_write16(cpu->mem, _t12, (uint16_t)cpu->r[9]);
|
|
/* 02983BB4 */ cpu->r[10] = cpu->r[10] + 0x0000000Cu;
|
|
/* 02983BB8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[11]);
|
|
/* 02983BBC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983BBC */ _t14 = _t13 & 0x00000001u;
|
|
/* 02983BBC */ if (_t14) goto L_02983BC0; else goto L_02983BB0;
|
|
L_02983BC0: ; // 0x2983bc0
|
|
/* 02983BC0 */ return;
|
|
}
|
|
|
|
// fn_02983BC4 @ 0x2983bc4
|
|
void Gambit_fn_02983BC4(CPUState* cpu) {
|
|
uint32_t _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_02983BC4: ; // 0x2983bc4
|
|
/* 02983BC4 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02983BC4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02983BC4 */ cpu->r[1] = _t0;
|
|
/* 02983BC8 */ /* nop */
|
|
/* 02983BCC */ cpu->r[0] = cpu->lr;
|
|
/* 02983BD0 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02983BD0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02983BD4 */ cpu->r[29] = cpu->r[4];
|
|
/* 02983BD8 */ _t2 = cpu->r[3] + 0x00000074u;
|
|
/* 02983BD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02983BDC */ _t3 = cpu->r[3] + 0x0000007Cu;
|
|
/* 02983BDC */ cpu->r[27] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02983BE0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02983BE4 */ cpu->r[28] = cpu->r[27] + cpu->r[8];
|
|
/* 02983BE8 */ cpu->r[31] = 0xFFFFFFFFu;
|
|
/* 02983BEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[28]);
|
|
/* 02983BF0 */ cpu->r[26] = 0x00000000u;
|
|
/* 02983BF4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983BF4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02983BF4 */ if (_t5) goto L_02983C70; else goto L_02983BF8;
|
|
L_02983BF8: ; // 0x2983bf8
|
|
/* 02983BF8 */ cpu->r[25] = 0x00000000u;
|
|
L_02983BFC: ; // 0x2983bfc
|
|
/* 02983BFC */ _t6 = cpu->r[29] + 0x00000004u;
|
|
/* 02983BFC */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02983C00 */ _t7 = cpu->r[12] + 0x00000014u;
|
|
/* 02983C00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02983C04 */ _t8 = cpu->r[27] + 0x00000000u;
|
|
/* 02983C04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02983C08 */ cpu->ctr = cpu->r[0];
|
|
/* 02983C0C */ _t9 = cpu->r[10] + 0x0000001Cu;
|
|
/* 02983C0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02983C10 */ cpu->r[3] = cpu->r[29];
|
|
/* 02983C14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02983C18 */ _t10 = cpu->r[30] + 0x00000028u;
|
|
/* 02983C18 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02983C1C */ cpu->r[12] = cpu->r[30] + 0x00000028u;
|
|
/* 02983C20 */ cpu->r[3] = 0x00000000u;
|
|
/* 02983C24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02983C28 */ _t11 = cpu->r[29] + 0x00000000u;
|
|
/* 02983C28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02983C2C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983C2C */ _t13 = _t12 & 0x00000001u;
|
|
/* 02983C2C */ if (_t13) goto L_02983C34; else goto L_02983C30;
|
|
L_02983C30: ; // 0x2983c30
|
|
/* 02983C30 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
L_02983C34: ; // 0x2983c34
|
|
/* 02983C34 */ Gambit_fn_02C60644(cpu);
|
|
/* 02983C38 */ cpu->r[10] = cpu->r[3];
|
|
/* 02983C38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02983C3C */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983C3C */ _t15 = _t14 & 0x00000001u;
|
|
/* 02983C3C */ if (_t15) goto L_02983C54; else goto L_02983C40;
|
|
L_02983C40: ; // 0x2983c40
|
|
/* 02983C40 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 02983C40 */ rbrew_write16(cpu->mem, _t16, (uint16_t)cpu->r[25]);
|
|
/* 02983C44 */ cpu->r[5] = cpu->r[26] + cpu->r[10];
|
|
/* 02983C48 */ _t17 = cpu->r[1] + 0x0000000Au;
|
|
/* 02983C48 */ rbrew_write16(cpu->mem, _t17, (uint16_t)cpu->r[5]);
|
|
/* 02983C4C */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 02983C4C */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02983C50 */ goto L_02983C7C;
|
|
L_02983C54: ; // 0x2983c54
|
|
/* 02983C54 */ _t19 = cpu->r[27] + 0x00000000u;
|
|
/* 02983C54 */ cpu->r[10] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02983C58 */ _t20 = cpu->r[10] + 0x0000001Cu;
|
|
/* 02983C58 */ cpu->r[30] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02983C5C */ cpu->r[27] = cpu->r[27] + 0x00000004u;
|
|
/* 02983C60 */ _t21 = cpu->r[30] + 0x00000054u;
|
|
/* 02983C60 */ cpu->r[0] = rbrew_read16(cpu->mem, _t21);
|
|
/* 02983C64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[28]);
|
|
/* 02983C68 */ cpu->r[26] = cpu->r[26] + cpu->r[0];
|
|
/* 02983C6C */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983C6C */ _t23 = _t22 & 0x00000001u;
|
|
/* 02983C6C */ if (_t23) goto L_02983C70; else goto L_02983BFC;
|
|
L_02983C70: ; // 0x2983c70
|
|
/* 02983C70 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 02983C70 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[31]);
|
|
/* 02983C74 */ _t25 = cpu->r[1] + 0x0000000Au;
|
|
/* 02983C74 */ rbrew_write16(cpu->mem, _t25, (uint16_t)cpu->r[31]);
|
|
/* 02983C78 */ _t26 = cpu->r[1] + 0x00000008u;
|
|
/* 02983C78 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
L_02983C7C: ; // 0x2983c7c
|
|
/* 02983C7C */ /* nop */
|
|
/* 02983C80 */ cpu->r[3] = cpu->r[0];
|
|
/* 02983C84 */ _t27 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02983C84 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02983C88 */ cpu->lr = cpu->r[0];
|
|
/* 02983C8C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02983C90 */ return;
|
|
}
|
|
|
|
// fn_02983C94 @ 0x2983c94
|
|
void Gambit_fn_02983C94(CPUState* cpu) {
|
|
uint32_t _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_02983C94: ; // 0x2983c94
|
|
/* 02983C94 */ cpu->r[0] = cpu->lr;
|
|
/* 02983C98 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02983C98 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02983C98 */ cpu->r[1] = _t0;
|
|
/* 02983C9C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02983C9C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02983CA0 */ _t2 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02983CA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02983CA4 */ _t3 = cpu->r[3] + 0x00000030u;
|
|
/* 02983CA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02983CA8 */ cpu->r[7] = cpu->r[6];
|
|
/* 02983CAC */ _t4 = cpu->r[5] + 0x00000000u;
|
|
/* 02983CAC */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02983CB0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 02983CB4 */ _t5 = cpu->r[3] + 0x00000034u;
|
|
/* 02983CB4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02983CB8 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983CB8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02983CB8 */ if (_t7) goto L_02983CBC; else goto L_02983CC4;
|
|
L_02983CBC: ; // 0x2983cbc
|
|
/* 02983CBC */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000001Cu);
|
|
/* 02983CC0 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_02983CC4: ; // 0x2983cc4
|
|
/* 02983CC4 */ /* nop */
|
|
/* 02983CC8 */ /* nop */
|
|
/* 02983CCC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000003u);
|
|
/* 02983CD0 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 02983CD4 */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 02983CD4 */ rbrew_write32(cpu->mem, _t8, cpu->r[31]);
|
|
/* 02983CD8 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983CD8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02983CD8 */ if (_t10) goto L_02983CDC; else goto L_02983D04;
|
|
L_02983CDC: ; // 0x2983cdc
|
|
/* 02983CDC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 02983CE0 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983CE0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02983CE0 */ if (_t12) goto L_02983D1C; else goto L_02983CE4;
|
|
L_02983CE4: ; // 0x2983ce4
|
|
/* 02983CE4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983CE4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02983CE4 */ if (_t14) goto L_02983D4C; else goto L_02983CE8;
|
|
L_02983CE8: ; // 0x2983ce8
|
|
/* 02983CE8 */ _t15 = cpu->r[3] + 0x00000040u;
|
|
/* 02983CE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02983CEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[0]);
|
|
/* 02983CF0 */ _t16 = cpu->r[3] + 0x00000044u;
|
|
/* 02983CF0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02983CF4 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983CF4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02983CF4 */ if (_t18) goto L_02983CF8; else goto L_02983D7C;
|
|
L_02983CF8: ; // 0x2983cf8
|
|
/* 02983CF8 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983CFC */ cpu->r[5] = cpu->r[5] + cpu->r[0];
|
|
/* 02983D00 */ goto L_02983D7C;
|
|
L_02983D04: ; // 0x2983d04
|
|
/* 02983D04 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000004u);
|
|
/* 02983D08 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983D08 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02983D08 */ if (_t20) goto L_02983D94; else goto L_02983D0C;
|
|
L_02983D0C: ; // 0x2983d0c
|
|
/* 02983D0C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983D0C */ _t22 = _t21 & 0x00000001u;
|
|
/* 02983D0C */ if (_t22) goto L_02983DC4; else goto L_02983D10;
|
|
L_02983D10: ; // 0x2983d10
|
|
/* 02983D10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000005u);
|
|
/* 02983D14 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983D14 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02983D14 */ if (_t24) goto L_02983DF4; else goto L_02983D18;
|
|
L_02983D18: ; // 0x2983d18
|
|
/* 02983D18 */ goto L_02983E20;
|
|
L_02983D1C: ; // 0x2983d1c
|
|
/* 02983D1C */ _t25 = cpu->r[3] + 0x00000050u;
|
|
/* 02983D1C */ cpu->r[8] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02983D20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[8]);
|
|
/* 02983D24 */ _t26 = cpu->r[3] + 0x00000054u;
|
|
/* 02983D24 */ cpu->r[5] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02983D28 */ _t27 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983D28 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02983D28 */ if (_t28) goto L_02983D2C; else goto L_02983D34;
|
|
L_02983D2C: ; // 0x2983d2c
|
|
/* 02983D2C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983D30 */ cpu->r[5] = cpu->r[5] + cpu->r[9];
|
|
L_02983D34: ; // 0x2983d34
|
|
/* 02983D34 */ cpu->r[6] = cpu->r[4];
|
|
/* 02983D38 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 02983D3C */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 02983D3C */ rbrew_write32(cpu->mem, _t29, cpu->r[31]);
|
|
/* 02983D40 */ Gambit_fn_02987300(cpu);
|
|
/* 02983D44 */ cpu->r[0] = cpu->r[3];
|
|
/* 02983D48 */ goto L_02983E20;
|
|
L_02983D4C: ; // 0x2983d4c
|
|
/* 02983D4C */ _t30 = cpu->r[3] + 0x00000048u;
|
|
/* 02983D4C */ cpu->r[8] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02983D50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[8]);
|
|
/* 02983D54 */ _t31 = cpu->r[3] + 0x0000004Cu;
|
|
/* 02983D54 */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02983D58 */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983D58 */ _t33 = _t32 & 0x00000001u;
|
|
/* 02983D58 */ if (_t33) goto L_02983D5C; else goto L_02983D64;
|
|
L_02983D5C: ; // 0x2983d5c
|
|
/* 02983D5C */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983D60 */ cpu->r[5] = cpu->r[5] + cpu->r[10];
|
|
L_02983D64: ; // 0x2983d64
|
|
/* 02983D64 */ cpu->r[6] = cpu->r[4];
|
|
/* 02983D68 */ cpu->r[4] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983D6C */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983D6C */ rbrew_write32(cpu->mem, _t34, cpu->r[31]);
|
|
/* 02983D70 */ Gambit_fn_02987508(cpu);
|
|
/* 02983D74 */ cpu->r[0] = cpu->r[3];
|
|
/* 02983D78 */ goto L_02983E20;
|
|
L_02983D7C: ; // 0x2983d7c
|
|
/* 02983D7C */ cpu->r[6] = cpu->r[4];
|
|
/* 02983D80 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 02983D84 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02983D84 */ rbrew_write32(cpu->mem, _t35, cpu->r[31]);
|
|
/* 02983D88 */ Gambit_fn_02987710(cpu);
|
|
/* 02983D8C */ cpu->r[0] = cpu->r[3];
|
|
/* 02983D90 */ goto L_02983E20;
|
|
L_02983D94: ; // 0x2983d94
|
|
/* 02983D94 */ _t36 = cpu->r[3] + 0x00000058u;
|
|
/* 02983D94 */ cpu->r[10] = rbrew_read32(cpu->mem, _t36);
|
|
/* 02983D98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 02983D9C */ _t37 = cpu->r[3] + 0x0000005Cu;
|
|
/* 02983D9C */ cpu->r[5] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02983DA0 */ _t38 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983DA0 */ _t39 = _t38 & 0x00000001u;
|
|
/* 02983DA0 */ if (_t39) goto L_02983DA4; else goto L_02983DAC;
|
|
L_02983DA4: ; // 0x2983da4
|
|
/* 02983DA4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983DA8 */ cpu->r[5] = cpu->r[5] + cpu->r[0];
|
|
L_02983DAC: ; // 0x2983dac
|
|
/* 02983DAC */ cpu->r[6] = cpu->r[4];
|
|
/* 02983DB0 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 02983DB4 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 02983DB4 */ rbrew_write32(cpu->mem, _t40, cpu->r[31]);
|
|
/* 02983DB8 */ Gambit_fn_02987930(cpu);
|
|
/* 02983DBC */ cpu->r[0] = cpu->r[3];
|
|
/* 02983DC0 */ goto L_02983E20;
|
|
L_02983DC4: ; // 0x2983dc4
|
|
/* 02983DC4 */ _t41 = cpu->r[3] + 0x00000060u;
|
|
/* 02983DC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02983DC8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[0]);
|
|
/* 02983DCC */ _t42 = cpu->r[3] + 0x00000064u;
|
|
/* 02983DCC */ cpu->r[5] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02983DD0 */ _t43 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983DD0 */ _t44 = _t43 & 0x00000001u;
|
|
/* 02983DD0 */ if (_t44) goto L_02983DD4; else goto L_02983DDC;
|
|
L_02983DD4: ; // 0x2983dd4
|
|
/* 02983DD4 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983DD8 */ cpu->r[5] = cpu->r[5] + cpu->r[9];
|
|
L_02983DDC: ; // 0x2983ddc
|
|
/* 02983DDC */ cpu->r[6] = cpu->r[4];
|
|
/* 02983DE0 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 02983DE4 */ _t45 = cpu->r[1] + 0x00000018u;
|
|
/* 02983DE4 */ rbrew_write32(cpu->mem, _t45, cpu->r[31]);
|
|
/* 02983DE8 */ Gambit_fn_02987B94(cpu);
|
|
/* 02983DEC */ cpu->r[0] = cpu->r[3];
|
|
/* 02983DF0 */ goto L_02983E20;
|
|
L_02983DF4: ; // 0x2983df4
|
|
/* 02983DF4 */ _t46 = cpu->r[3] + 0x00000068u;
|
|
/* 02983DF4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02983DF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[11]);
|
|
/* 02983DFC */ _t47 = cpu->r[3] + 0x0000006Cu;
|
|
/* 02983DFC */ cpu->r[5] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02983E00 */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983E00 */ _t49 = _t48 & 0x00000001u;
|
|
/* 02983E00 */ if (_t49) goto L_02983E04; else goto L_02983E0C;
|
|
L_02983E04: ; // 0x2983e04
|
|
/* 02983E04 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983E08 */ cpu->r[5] = cpu->r[5] + cpu->r[12];
|
|
L_02983E0C: ; // 0x2983e0c
|
|
/* 02983E0C */ cpu->r[6] = cpu->r[4];
|
|
/* 02983E10 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 02983E14 */ _t50 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02983E14 */ rbrew_write32(cpu->mem, _t50, cpu->r[31]);
|
|
/* 02983E18 */ Gambit_fn_02987DC0(cpu);
|
|
/* 02983E1C */ cpu->r[0] = cpu->r[3];
|
|
L_02983E20: ; // 0x2983e20
|
|
/* 02983E20 */ cpu->r[3] = cpu->r[0];
|
|
/* 02983E24 */ _t51 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02983E24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02983E28 */ _t52 = cpu->r[1] + 0x00000024u;
|
|
/* 02983E28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02983E2C */ cpu->lr = cpu->r[0];
|
|
/* 02983E30 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02983E34 */ return;
|
|
}
|
|
|
|
// fn_02983C98 @ 0x2983c98
|
|
void Gambit_fn_02983C98(CPUState* cpu) {
|
|
uint32_t _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_02983C98: ; // 0x2983c98
|
|
/* 02983C98 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02983C98 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02983C98 */ cpu->r[1] = _t0;
|
|
/* 02983C9C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02983C9C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02983CA0 */ _t2 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02983CA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02983CA4 */ _t3 = cpu->r[3] + 0x00000030u;
|
|
/* 02983CA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02983CA8 */ cpu->r[7] = cpu->r[6];
|
|
/* 02983CAC */ _t4 = cpu->r[5] + 0x00000000u;
|
|
/* 02983CAC */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02983CB0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 02983CB4 */ _t5 = cpu->r[3] + 0x00000034u;
|
|
/* 02983CB4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02983CB8 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983CB8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02983CB8 */ if (_t7) goto L_02983CBC; else goto L_02983CC4;
|
|
L_02983CBC: ; // 0x2983cbc
|
|
/* 02983CBC */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000001Cu);
|
|
/* 02983CC0 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_02983CC4: ; // 0x2983cc4
|
|
/* 02983CC4 */ /* nop */
|
|
/* 02983CC8 */ /* nop */
|
|
/* 02983CCC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000003u);
|
|
/* 02983CD0 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 02983CD4 */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 02983CD4 */ rbrew_write32(cpu->mem, _t8, cpu->r[31]);
|
|
/* 02983CD8 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983CD8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02983CD8 */ if (_t10) goto L_02983CDC; else goto L_02983D04;
|
|
L_02983CDC: ; // 0x2983cdc
|
|
/* 02983CDC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000001u);
|
|
/* 02983CE0 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983CE0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02983CE0 */ if (_t12) goto L_02983D1C; else goto L_02983CE4;
|
|
L_02983CE4: ; // 0x2983ce4
|
|
/* 02983CE4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983CE4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02983CE4 */ if (_t14) goto L_02983D4C; else goto L_02983CE8;
|
|
L_02983CE8: ; // 0x2983ce8
|
|
/* 02983CE8 */ _t15 = cpu->r[3] + 0x00000040u;
|
|
/* 02983CE8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02983CEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[0]);
|
|
/* 02983CF0 */ _t16 = cpu->r[3] + 0x00000044u;
|
|
/* 02983CF0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02983CF4 */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983CF4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02983CF4 */ if (_t18) goto L_02983CF8; else goto L_02983D7C;
|
|
L_02983CF8: ; // 0x2983cf8
|
|
/* 02983CF8 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983CFC */ cpu->r[5] = cpu->r[5] + cpu->r[0];
|
|
/* 02983D00 */ goto L_02983D7C;
|
|
L_02983D04: ; // 0x2983d04
|
|
/* 02983D04 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000004u);
|
|
/* 02983D08 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983D08 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02983D08 */ if (_t20) goto L_02983D94; else goto L_02983D0C;
|
|
L_02983D0C: ; // 0x2983d0c
|
|
/* 02983D0C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983D0C */ _t22 = _t21 & 0x00000001u;
|
|
/* 02983D0C */ if (_t22) goto L_02983DC4; else goto L_02983D10;
|
|
L_02983D10: ; // 0x2983d10
|
|
/* 02983D10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000005u);
|
|
/* 02983D14 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983D14 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02983D14 */ if (_t24) goto L_02983DF4; else goto L_02983D18;
|
|
L_02983D18: ; // 0x2983d18
|
|
/* 02983D18 */ goto L_02983E20;
|
|
L_02983D1C: ; // 0x2983d1c
|
|
/* 02983D1C */ _t25 = cpu->r[3] + 0x00000050u;
|
|
/* 02983D1C */ cpu->r[8] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02983D20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[8]);
|
|
/* 02983D24 */ _t26 = cpu->r[3] + 0x00000054u;
|
|
/* 02983D24 */ cpu->r[5] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02983D28 */ _t27 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983D28 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02983D28 */ if (_t28) goto L_02983D2C; else goto L_02983D34;
|
|
L_02983D2C: ; // 0x2983d2c
|
|
/* 02983D2C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983D30 */ cpu->r[5] = cpu->r[5] + cpu->r[9];
|
|
L_02983D34: ; // 0x2983d34
|
|
/* 02983D34 */ cpu->r[6] = cpu->r[4];
|
|
/* 02983D38 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 02983D3C */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 02983D3C */ rbrew_write32(cpu->mem, _t29, cpu->r[31]);
|
|
/* 02983D40 */ Gambit_fn_02987300(cpu);
|
|
/* 02983D44 */ cpu->r[0] = cpu->r[3];
|
|
/* 02983D48 */ goto L_02983E20;
|
|
L_02983D4C: ; // 0x2983d4c
|
|
/* 02983D4C */ _t30 = cpu->r[3] + 0x00000048u;
|
|
/* 02983D4C */ cpu->r[8] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02983D50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[8]);
|
|
/* 02983D54 */ _t31 = cpu->r[3] + 0x0000004Cu;
|
|
/* 02983D54 */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02983D58 */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983D58 */ _t33 = _t32 & 0x00000001u;
|
|
/* 02983D58 */ if (_t33) goto L_02983D5C; else goto L_02983D64;
|
|
L_02983D5C: ; // 0x2983d5c
|
|
/* 02983D5C */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983D60 */ cpu->r[5] = cpu->r[5] + cpu->r[10];
|
|
L_02983D64: ; // 0x2983d64
|
|
/* 02983D64 */ cpu->r[6] = cpu->r[4];
|
|
/* 02983D68 */ cpu->r[4] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983D6C */ _t34 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02983D6C */ rbrew_write32(cpu->mem, _t34, cpu->r[31]);
|
|
/* 02983D70 */ Gambit_fn_02987508(cpu);
|
|
/* 02983D74 */ cpu->r[0] = cpu->r[3];
|
|
/* 02983D78 */ goto L_02983E20;
|
|
L_02983D7C: ; // 0x2983d7c
|
|
/* 02983D7C */ cpu->r[6] = cpu->r[4];
|
|
/* 02983D80 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 02983D84 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02983D84 */ rbrew_write32(cpu->mem, _t35, cpu->r[31]);
|
|
/* 02983D88 */ Gambit_fn_02987710(cpu);
|
|
/* 02983D8C */ cpu->r[0] = cpu->r[3];
|
|
/* 02983D90 */ goto L_02983E20;
|
|
L_02983D94: ; // 0x2983d94
|
|
/* 02983D94 */ _t36 = cpu->r[3] + 0x00000058u;
|
|
/* 02983D94 */ cpu->r[10] = rbrew_read32(cpu->mem, _t36);
|
|
/* 02983D98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[10]);
|
|
/* 02983D9C */ _t37 = cpu->r[3] + 0x0000005Cu;
|
|
/* 02983D9C */ cpu->r[5] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02983DA0 */ _t38 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983DA0 */ _t39 = _t38 & 0x00000001u;
|
|
/* 02983DA0 */ if (_t39) goto L_02983DA4; else goto L_02983DAC;
|
|
L_02983DA4: ; // 0x2983da4
|
|
/* 02983DA4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983DA8 */ cpu->r[5] = cpu->r[5] + cpu->r[0];
|
|
L_02983DAC: ; // 0x2983dac
|
|
/* 02983DAC */ cpu->r[6] = cpu->r[4];
|
|
/* 02983DB0 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 02983DB4 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 02983DB4 */ rbrew_write32(cpu->mem, _t40, cpu->r[31]);
|
|
/* 02983DB8 */ Gambit_fn_02987930(cpu);
|
|
/* 02983DBC */ cpu->r[0] = cpu->r[3];
|
|
/* 02983DC0 */ goto L_02983E20;
|
|
L_02983DC4: ; // 0x2983dc4
|
|
/* 02983DC4 */ _t41 = cpu->r[3] + 0x00000060u;
|
|
/* 02983DC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02983DC8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[0]);
|
|
/* 02983DCC */ _t42 = cpu->r[3] + 0x00000064u;
|
|
/* 02983DCC */ cpu->r[5] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02983DD0 */ _t43 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983DD0 */ _t44 = _t43 & 0x00000001u;
|
|
/* 02983DD0 */ if (_t44) goto L_02983DD4; else goto L_02983DDC;
|
|
L_02983DD4: ; // 0x2983dd4
|
|
/* 02983DD4 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983DD8 */ cpu->r[5] = cpu->r[5] + cpu->r[9];
|
|
L_02983DDC: ; // 0x2983ddc
|
|
/* 02983DDC */ cpu->r[6] = cpu->r[4];
|
|
/* 02983DE0 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 02983DE4 */ _t45 = cpu->r[1] + 0x00000018u;
|
|
/* 02983DE4 */ rbrew_write32(cpu->mem, _t45, cpu->r[31]);
|
|
/* 02983DE8 */ Gambit_fn_02987B94(cpu);
|
|
/* 02983DEC */ cpu->r[0] = cpu->r[3];
|
|
/* 02983DF0 */ goto L_02983E20;
|
|
L_02983DF4: ; // 0x2983df4
|
|
/* 02983DF4 */ _t46 = cpu->r[3] + 0x00000068u;
|
|
/* 02983DF4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02983DF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[11]);
|
|
/* 02983DFC */ _t47 = cpu->r[3] + 0x0000006Cu;
|
|
/* 02983DFC */ cpu->r[5] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02983E00 */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983E00 */ _t49 = _t48 & 0x00000001u;
|
|
/* 02983E00 */ if (_t49) goto L_02983E04; else goto L_02983E0C;
|
|
L_02983E04: ; // 0x2983e04
|
|
/* 02983E04 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02983E08 */ cpu->r[5] = cpu->r[5] + cpu->r[12];
|
|
L_02983E0C: ; // 0x2983e0c
|
|
/* 02983E0C */ cpu->r[6] = cpu->r[4];
|
|
/* 02983E10 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 02983E14 */ _t50 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02983E14 */ rbrew_write32(cpu->mem, _t50, cpu->r[31]);
|
|
/* 02983E18 */ Gambit_fn_02987DC0(cpu);
|
|
/* 02983E1C */ cpu->r[0] = cpu->r[3];
|
|
L_02983E20: ; // 0x2983e20
|
|
/* 02983E20 */ cpu->r[3] = cpu->r[0];
|
|
/* 02983E24 */ _t51 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02983E24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02983E28 */ _t52 = cpu->r[1] + 0x00000024u;
|
|
/* 02983E28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02983E2C */ cpu->lr = cpu->r[0];
|
|
/* 02983E30 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02983E34 */ return;
|
|
}
|
|
|
|
// fn_02983E38 @ 0x2983e38
|
|
void Gambit_fn_02983E38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_02983E38: ; // 0x2983e38
|
|
/* 02983E38 */ _t0 = cpu->r[3] + 0x00000030u;
|
|
/* 02983E38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02983E3C */ _t1 = cpu->r[3] + 0x00000034u;
|
|
/* 02983E3C */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02983E40 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02983E44 */ cpu->r[11] = cpu->r[12] + cpu->r[9];
|
|
/* 02983E48 */ cpu->r[0] = cpu->r[12] + 0xFFFFFFE4u;
|
|
/* 02983E4C */ cpu->r[11] = cpu->r[11] + 0xFFFFFFE4u;
|
|
/* 02983E50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 02983E54 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983E54 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02983E54 */ if (_t3) goto L_02983E94; else goto L_02983E58;
|
|
L_02983E58: ; // 0x2983e58
|
|
/* 02983E58 */ _t4 = cpu->r[11] + 0x00000000u;
|
|
/* 02983E58 */ cpu->r[9] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t4);
|
|
/* 02983E5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 02983E60 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983E60 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02983E60 */ if (_t6) goto L_02983E70; else goto L_02983E64;
|
|
L_02983E64: ; // 0x2983e64
|
|
/* 02983E64 */ _t7 = cpu->r[11] + 0x00000002u;
|
|
/* 02983E64 */ cpu->r[10] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t7);
|
|
/* 02983E68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0xFFFFFFFFu);
|
|
/* 02983E6C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983E6C */ _t9 = _t8 & 0x00000001u;
|
|
/* 02983E6C */ if (_t9) goto L_02983E70; else goto L_02983E88;
|
|
L_02983E70: ; // 0x2983e70
|
|
/* 02983E70 */ cpu->r[9] = cpu->r[11] - cpu->r[12];
|
|
/* 02983E74 */ cpu->r[11] = 0x24920000u;
|
|
/* 02983E78 */ cpu->r[10] = rbrew_rlwinm(cpu->r[9], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 02983E7C */ cpu->r[11] = cpu->r[11] + 0x00004925u;
|
|
/* 02983E80 */ /* nop */
|
|
/* 02983E84 */ return;
|
|
L_02983E88: ; // 0x2983e88
|
|
/* 02983E88 */ cpu->r[11] = cpu->r[11] + 0xFFFFFFE4u;
|
|
/* 02983E8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 02983E90 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983E90 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02983E90 */ if (_t11) goto L_02983E94; else goto L_02983E58;
|
|
L_02983E94: ; // 0x2983e94
|
|
/* 02983E94 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 02983E98 */ return;
|
|
}
|
|
|
|
// fn_02983E9C @ 0x2983e9c
|
|
void Gambit_fn_02983E9C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02983E9C: ; // 0x2983e9c
|
|
/* 02983E9C */ _t0 = cpu->r[3] + 0x00000030u;
|
|
/* 02983E9C */ cpu->r[10] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02983EA0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 02983EA4 */ _t1 = cpu->r[3] + 0x00000034u;
|
|
/* 02983EA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02983EA8 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983EA8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02983EA8 */ if (_t3) goto L_02983EAC; else goto L_02983EB4;
|
|
L_02983EAC: ; // 0x2983eac
|
|
/* 02983EAC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000001Cu);
|
|
/* 02983EB0 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_02983EB4: ; // 0x2983eb4
|
|
/* 02983EB4 */ _t4 = cpu->r[12] + 0x00000010u;
|
|
/* 02983EB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02983EB8 */ _t5 = cpu->r[12] + 0x00000018u;
|
|
/* 02983EB8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02983EBC */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02983EC0 */ cpu->r[0] = cpu->r[10] + cpu->r[12];
|
|
/* 02983EC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 02983EC8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983EC8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02983EC8 */ if (_t7) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02983EC8 */ goto L_02983ECC;
|
|
L_02983ECC: ; // 0x2983ecc
|
|
/* 02983ECC */ cpu->r[11] = 0xFFFFFFFFu;
|
|
L_02983ED0: ; // 0x2983ed0
|
|
/* 02983ED0 */ _t8 = cpu->r[10] + 0x00000000u;
|
|
/* 02983ED0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02983ED4 */ cpu->r[10] = cpu->r[10] + 0x00000004u;
|
|
/* 02983ED8 */ _t9 = cpu->r[12] + 0x00000002u;
|
|
/* 02983ED8 */ rbrew_write16(cpu->mem, _t9, (uint16_t)cpu->r[11]);
|
|
/* 02983EDC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[0]);
|
|
/* 02983EE0 */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 02983EE0 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[11]);
|
|
/* 02983EE4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983EE4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02983EE4 */ if (_t12) goto L_02983EE8; else goto L_02983ED0;
|
|
L_02983EE8: ; // 0x2983ee8
|
|
/* 02983EE8 */ return;
|
|
}
|
|
|
|
// fn_02983EEC @ 0x2983eec
|
|
void Gambit_fn_02983EEC(CPUState* cpu) {
|
|
uint32_t _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_02983EEC: ; // 0x2983eec
|
|
/* 02983EEC */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 02983EEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02983EEC */ cpu->r[1] = _t0;
|
|
/* 02983EF0 */ /* nop */
|
|
/* 02983EF4 */ cpu->r[0] = cpu->lr;
|
|
/* 02983EF8 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 02983EF8 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 02983EFC */ /* nop */
|
|
/* 02983F00 */ _t2 = cpu->r[1] + 0x00000028u;
|
|
/* 02983F00 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 02983F04 */ _t3 = cpu->r[1] + 0x00000034u;
|
|
/* 02983F04 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02983F08 */ cpu->r[31] = cpu->r[3];
|
|
/* 02983F0C */ cpu->r[27] = cpu->r[4];
|
|
/* 02983F10 */ _t4 = cpu->r[31] + 0x00000030u;
|
|
/* 02983F10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02983F14 */ cpu->f[31] = cpu->f[1];
|
|
/* 02983F18 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[0]);
|
|
/* 02983F1C */ _t5 = cpu->r[31] + 0x00000034u;
|
|
/* 02983F1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02983F20 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983F20 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02983F20 */ if (_t7) goto L_02983F24; else goto L_02983F48;
|
|
L_02983F24: ; // 0x2983f24
|
|
/* 02983F24 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[27] * (int32_t)0x0000001Cu);
|
|
/* 02983F28 */ cpu->r[10] = cpu->r[12] + cpu->r[11];
|
|
/* 02983F2C */ _t8 = cpu->r[10] + 0x00000010u;
|
|
/* 02983F2C */ cpu->r[7] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02983F30 */ _t9 = cpu->r[10] + 0x00000018u;
|
|
/* 02983F30 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02983F34 */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02983F38 */ cpu->r[29] = cpu->r[28] + cpu->r[6];
|
|
/* 02983F3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 02983F40 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983F40 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02983F40 */ if (_t11) goto L_02983FA0; else goto L_02983F44;
|
|
L_02983F44: ; // 0x2983f44
|
|
/* 02983F44 */ goto L_02983F60;
|
|
L_02983F48: ; // 0x2983f48
|
|
/* 02983F48 */ _t12 = cpu->r[12] + 0x00000010u;
|
|
/* 02983F48 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02983F4C */ _t13 = cpu->r[12] + 0x00000018u;
|
|
/* 02983F4C */ cpu->r[28] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02983F50 */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02983F54 */ cpu->r[29] = cpu->r[28] + cpu->r[6];
|
|
/* 02983F58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 02983F5C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983F5C */ _t15 = _t14 & 0x00000001u;
|
|
/* 02983F5C */ if (_t15) goto L_02983FA0; else goto L_02983F60;
|
|
L_02983F60: ; // 0x2983f60
|
|
/* 02983F60 */ _t16 = cpu->r[28] + 0x00000000u;
|
|
/* 02983F60 */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02983F64 */ _t17 = cpu->r[8] + 0x00000008u;
|
|
/* 02983F64 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02983F68 */ _t18 = cpu->r[10] + 0x00000000u;
|
|
/* 02983F68 */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02983F6C */ _t19 = cpu->r[30] + 0x00000010u;
|
|
/* 02983F6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02983F70 */ _t20 = cpu->r[30] + 0x00000008u;
|
|
/* 02983F70 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 02983F74 */ cpu->ctr = cpu->r[9];
|
|
/* 02983F78 */ _t21 = cpu->r[30] + 0x00000004u;
|
|
/* 02983F78 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 02983F7C */ cpu->f[1] = cpu->f[31];
|
|
/* 02983F80 */ _t22 = cpu->r[30] + 0x00000014u;
|
|
/* 02983F80 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02983F84 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02983F88 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 02983F8C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 02983F90 */ _t23 = cpu->r[30] + 0x00000000u;
|
|
/* 02983F90 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[1]);
|
|
/* 02983F94 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02983F94 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02983F94 */ if (_t25) goto L_02983F98; else goto L_02983F60;
|
|
L_02983F98: ; // 0x2983f98
|
|
/* 02983F98 */ _t26 = cpu->r[31] + 0x00000030u;
|
|
/* 02983F98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02983F9C */ _t27 = cpu->r[31] + 0x00000034u;
|
|
/* 02983F9C */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
L_02983FA0: ; // 0x2983fa0
|
|
/* 02983FA0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[0]);
|
|
/* 02983FA4 */ _t28 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983FA4 */ _t29 = _t28 & 0x00000001u;
|
|
/* 02983FA4 */ if (_t29) goto L_02983FA8; else goto L_02983FB0;
|
|
L_02983FA8: ; // 0x2983fa8
|
|
/* 02983FA8 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[27] * (int32_t)0x0000001Cu);
|
|
/* 02983FAC */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_02983FB0: ; // 0x2983fb0
|
|
/* 02983FB0 */ _t30 = cpu->r[12] + 0x00000008u;
|
|
/* 02983FB0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02983FB4 */ _t31 = cpu->r[7] + 0x00000000u;
|
|
/* 02983FB4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02983FB8 */ _t32 = cpu->r[9] + 0x00000000u;
|
|
/* 02983FB8 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 02983FBC */ /* nop */
|
|
/* 02983FC0 */ _t33 = cpu->r[1] + 0x00000028u;
|
|
/* 02983FC0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t33);
|
|
/* 02983FC4 */ _t34 = cpu->r[1] + 0x00000020u;
|
|
/* 02983FC4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t34);
|
|
/* 02983FC8 */ _t35 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02983FC8 */ _t36 = _t35 & 0x00000001u;
|
|
/* 02983FC8 */ if (_t36) goto L_02983FCC; // else: addr-0 trap, fall-through
|
|
L_02983FCC: ; // 0x2983fcc
|
|
/* 02983FCC */ _t37 = cpu->r[1] + 0x00000034u;
|
|
/* 02983FCC */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02983FD0 */ cpu->lr = cpu->r[0];
|
|
/* 02983FD4 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 02983FD8 */ return;
|
|
}
|
|
|
|
// fn_02983FDC @ 0x2983fdc
|
|
void Gambit_fn_02983FDC(CPUState* cpu) {
|
|
uint32_t _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_02983FDC: ; // 0x2983fdc
|
|
/* 02983FDC */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 02983FDC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02983FDC */ cpu->r[1] = _t0;
|
|
/* 02983FE0 */ /* nop */
|
|
/* 02983FE4 */ cpu->r[0] = cpu->lr;
|
|
/* 02983FE8 */ _t1 = cpu->r[1] + 0x00000028u;
|
|
/* 02983FE8 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 02983FEC */ /* nop */
|
|
/* 02983FF0 */ _t2 = cpu->r[1] + 0x00000030u;
|
|
/* 02983FF0 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 02983FF4 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02983FF4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02983FF8 */ cpu->r[29] = cpu->r[4];
|
|
/* 02983FFC */ cpu->r[28] = cpu->r[3];
|
|
/* 02984000 */ _t4 = cpu->r[28] + 0x00000030u;
|
|
/* 02984000 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02984004 */ cpu->f[31] = cpu->f[1];
|
|
/* 02984008 */ _t5 = cpu->r[5] + 0x00000000u;
|
|
/* 02984008 */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298400C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[12]);
|
|
/* 02984010 */ _t6 = cpu->r[28] + 0x00000034u;
|
|
/* 02984010 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02984014 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984014 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02984014 */ if (_t8) goto L_02984018; else goto L_02984020;
|
|
L_02984018: ; // 0x2984018
|
|
/* 02984018 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[29] * (int32_t)0x0000001Cu);
|
|
/* 0298401C */ cpu->r[31] = cpu->r[31] + cpu->r[6];
|
|
L_02984020: ; // 0x2984020
|
|
/* 02984020 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 02984020 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02984024 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[30]);
|
|
/* 02984028 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984028 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02984028 */ if (_t11) goto L_029840F8; else goto L_0298402C;
|
|
L_0298402C: ; // 0x298402c
|
|
/* 0298402C */ cpu->r[4] = cpu->r[29];
|
|
/* 02984030 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984034 */ Gambit_fn_02983E9C(cpu);
|
|
/* 02984038 */ cpu->r[6] = 0x00000000u;
|
|
/* 0298403C */ cpu->f[1] = cpu->f[31];
|
|
/* 02984040 */ _t12 = cpu->r[31] + 0x00000010u;
|
|
/* 02984040 */ rbrew_write32(cpu->mem, _t12, cpu->r[6]);
|
|
/* 02984044 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984048 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984048 */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 0298404C */ Gambit_fn_02983C94(cpu);
|
|
/* 02984050 */ _t14 = cpu->r[31] + 0x00000010u;
|
|
/* 02984050 */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02984054 */ _t15 = cpu->r[31] + 0x00000014u;
|
|
/* 02984054 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02984058 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[0]);
|
|
/* 0298405C */ cpu->r[6] = cpu->r[3];
|
|
/* 02984060 */ _t16 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984060 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02984060 */ if (_t17) goto L_02984064; else goto L_0298407C;
|
|
L_02984064: ; // 0x2984064
|
|
/* 02984064 */ _t18 = cpu->r[31] + 0x00000018u;
|
|
/* 02984064 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02984068 */ cpu->r[11] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298406C */ _t19 = cpu->r[11] + cpu->r[0];
|
|
/* 0298406C */ rbrew_write32(cpu->mem, _t19, cpu->r[31]);
|
|
/* 02984070 */ _t20 = cpu->r[31] + 0x00000010u;
|
|
/* 02984070 */ cpu->r[4] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02984074 */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 02984078 */ _t21 = cpu->r[31] + 0x00000010u;
|
|
/* 02984078 */ rbrew_write32(cpu->mem, _t21, cpu->r[4]);
|
|
L_0298407C: ; // 0x298407c
|
|
/* 0298407C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0xFFFFFFFFu);
|
|
/* 02984080 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984080 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02984080 */ if (_t23) goto L_029840F8; else goto L_02984084;
|
|
L_02984084: ; // 0x2984084
|
|
/* 02984084 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984088 */ Gambit_fn_02983E38(cpu);
|
|
/* 0298408C */ cpu->r[27] = cpu->r[3];
|
|
/* 02984090 */ cpu->f[1] = cpu->f[31];
|
|
/* 02984094 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 02984098 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298409C */ cpu->r[3] = cpu->r[28];
|
|
/* 029840A0 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 029840A0 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 029840A4 */ Gambit_fn_02983C94(cpu);
|
|
/* 029840A8 */ _t25 = cpu->r[28] + 0x00000030u;
|
|
/* 029840A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029840AC */ _t26 = cpu->r[31] + 0x00000010u;
|
|
/* 029840AC */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029840B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[7]);
|
|
/* 029840B4 */ _t27 = cpu->r[28] + 0x00000034u;
|
|
/* 029840B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 029840B8 */ cpu->r[6] = cpu->r[3];
|
|
/* 029840BC */ _t28 = cpu->r[31] + 0x00000014u;
|
|
/* 029840BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 029840C0 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029840C0 */ _t30 = _t29 & 0x00000001u;
|
|
/* 029840C0 */ if (_t30) goto L_029840C4; else goto L_029840CC;
|
|
L_029840C4: ; // 0x29840c4
|
|
/* 029840C4 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[27] * (int32_t)0x0000001Cu);
|
|
/* 029840C8 */ cpu->r[12] = cpu->r[12] + cpu->r[8];
|
|
L_029840CC: ; // 0x29840cc
|
|
/* 029840CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[0]);
|
|
/* 029840D0 */ _t31 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029840D0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 029840D0 */ if (_t32) goto L_029840D4; else goto L_029840F0;
|
|
L_029840D4: ; // 0x29840d4
|
|
/* 029840D4 */ _t33 = cpu->r[31] + 0x00000018u;
|
|
/* 029840D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 029840D8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029840DC */ _t34 = cpu->r[11] + cpu->r[0];
|
|
/* 029840DC */ rbrew_write32(cpu->mem, _t34, cpu->r[12]);
|
|
/* 029840E0 */ _t35 = cpu->r[31] + 0x00000010u;
|
|
/* 029840E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029840E4 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 029840E8 */ _t36 = cpu->r[31] + 0x00000010u;
|
|
/* 029840E8 */ rbrew_write32(cpu->mem, _t36, cpu->r[8]);
|
|
/* 029840EC */ goto L_0298407C;
|
|
L_029840F0: ; // 0x29840f0
|
|
/* 029840F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0xFFFFFFFFu);
|
|
/* 029840F4 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029840F4 */ _t38 = _t37 & 0x00000001u;
|
|
/* 029840F4 */ if (_t38) goto L_029840F8; else goto L_02984084;
|
|
L_029840F8: ; // 0x29840f8
|
|
/* 029840F8 */ cpu->f[1] = cpu->f[31];
|
|
/* 029840FC */ cpu->r[3] = cpu->r[28];
|
|
/* 02984100 */ cpu->r[4] = cpu->r[29];
|
|
/* 02984104 */ Gambit_fn_02983EEC(cpu);
|
|
/* 02984108 */ /* nop */
|
|
/* 0298410C */ _t39 = cpu->r[1] + 0x00000030u;
|
|
/* 0298410C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 02984110 */ _t40 = cpu->r[1] + 0x00000028u;
|
|
/* 02984110 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t40);
|
|
/* 02984114 */ _t41 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984114 */ _t42 = _t41 & 0x00000001u;
|
|
/* 02984114 */ if (_t42) goto L_02984118; // else: addr-0 trap, fall-through
|
|
L_02984118: ; // 0x2984118
|
|
/* 02984118 */ _t43 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02984118 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 0298411C */ cpu->lr = cpu->r[0];
|
|
/* 02984120 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 02984124 */ return;
|
|
}
|
|
|
|
// fn_02984128 @ 0x2984128
|
|
void Gambit_fn_02984128(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_02984128: ; // 0x2984128
|
|
/* 02984128 */ _t0 = cpu->r[3] + 0x00000030u;
|
|
/* 02984128 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298412C */ _t1 = cpu->r[3] + 0x00000034u;
|
|
/* 0298412C */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02984130 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000001Cu);
|
|
/* 02984134 */ cpu->r[0] = cpu->r[12] + cpu->r[10];
|
|
/* 02984138 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 0298413C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298413C */ _t3 = _t2 & 0x00000001u;
|
|
/* 0298413C */ if (_t3) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298413C */ goto L_02984140;
|
|
L_02984140: ; // 0x2984140
|
|
/* 02984140 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
L_02984144: ; // 0x2984144
|
|
/* 02984144 */ _t4 = cpu->r[12] + 0x00000002u;
|
|
/* 02984144 */ rbrew_write16(cpu->mem, _t4, (uint16_t)cpu->r[11]);
|
|
/* 02984148 */ _t5 = cpu->r[12] + 0x00000000u;
|
|
/* 02984148 */ rbrew_write16(cpu->mem, _t5, (uint16_t)cpu->r[11]);
|
|
/* 0298414C */ cpu->r[12] = cpu->r[12] + 0x0000001Cu;
|
|
/* 02984150 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 02984154 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984154 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02984154 */ if (_t7) goto L_02984158; else goto L_02984144;
|
|
L_02984158: ; // 0x2984158
|
|
/* 02984158 */ return;
|
|
}
|
|
|
|
// fn_0298415C @ 0x298415c
|
|
void Gambit_fn_0298415C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54;
|
|
|
|
L_0298415C: ; // 0x298415c
|
|
/* 0298415C */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 0298415C */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02984160 */ /* nop */
|
|
/* 02984164 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000003u);
|
|
/* 02984168 */ /* nop */
|
|
/* 0298416C */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298416C */ _t2 = _t1 & 0x00000001u;
|
|
/* 0298416C */ if (_t2) goto L_02984170; else goto L_02984198;
|
|
L_02984170: ; // 0x2984170
|
|
/* 02984170 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000001u);
|
|
/* 02984174 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984174 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02984174 */ if (_t4) goto L_029841B4; else goto L_02984178;
|
|
L_02984178: ; // 0x2984178
|
|
/* 02984178 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984178 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02984178 */ if (_t6) goto L_029841DC; else goto L_0298417C;
|
|
L_0298417C: ; // 0x298417c
|
|
/* 0298417C */ _t7 = cpu->r[3] + 0x00000040u;
|
|
/* 0298417C */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02984180 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 02984184 */ _t8 = cpu->r[3] + 0x00000044u;
|
|
/* 02984184 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02984188 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984188 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02984188 */ if (_t10) goto L_0298418C; else goto L_02984204;
|
|
L_0298418C: ; // 0x298418c
|
|
/* 0298418C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02984190 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
/* 02984194 */ goto L_02984204;
|
|
L_02984198: ; // 0x2984198
|
|
/* 02984198 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000004u);
|
|
/* 0298419C */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298419C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298419C */ if (_t12) goto L_02984214; else goto L_029841A0;
|
|
L_029841A0: ; // 0x29841a0
|
|
/* 029841A0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029841A0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 029841A0 */ if (_t14) goto L_0298423C; else goto L_029841A4;
|
|
L_029841A4: ; // 0x29841a4
|
|
/* 029841A4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000005u);
|
|
/* 029841A8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029841A8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 029841A8 */ if (_t16) goto L_02984264; else goto L_029841AC;
|
|
L_029841AC: ; // 0x29841ac
|
|
/* 029841AC */ cpu->r[3] = 0x00000000u;
|
|
/* 029841B0 */ return;
|
|
L_029841B4: ; // 0x29841b4
|
|
/* 029841B4 */ _t17 = cpu->r[3] + 0x00000050u;
|
|
/* 029841B4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029841B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 029841BC */ _t18 = cpu->r[3] + 0x00000054u;
|
|
/* 029841BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 029841C0 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029841C0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 029841C0 */ if (_t20) goto L_029841C4; else goto L_029841CC;
|
|
L_029841C4: ; // 0x29841c4
|
|
/* 029841C4 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 029841C8 */ cpu->r[10] = cpu->r[10] + cpu->r[9];
|
|
L_029841CC: ; // 0x29841cc
|
|
/* 029841CC */ _t21 = cpu->r[10] + 0x00000000u;
|
|
/* 029841CC */ cpu->r[11] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029841D0 */ _t22 = cpu->r[11] + 0x00000000u;
|
|
/* 029841D0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029841D4 */ _t23 = cpu->r[9] + 0x00000010u;
|
|
/* 029841D4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029841D8 */ return;
|
|
L_029841DC: ; // 0x29841dc
|
|
/* 029841DC */ _t24 = cpu->r[3] + 0x00000048u;
|
|
/* 029841DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029841E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 029841E4 */ _t25 = cpu->r[3] + 0x0000004Cu;
|
|
/* 029841E4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029841E8 */ _t26 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029841E8 */ _t27 = _t26 & 0x00000001u;
|
|
/* 029841E8 */ if (_t27) goto L_029841EC; else goto L_029841F4;
|
|
L_029841EC: ; // 0x29841ec
|
|
/* 029841EC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 029841F0 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_029841F4: ; // 0x29841f4
|
|
/* 029841F4 */ _t28 = cpu->r[11] + 0x00000000u;
|
|
/* 029841F4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t28);
|
|
/* 029841F8 */ _t29 = cpu->r[8] + 0x00000000u;
|
|
/* 029841F8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t29);
|
|
/* 029841FC */ _t30 = cpu->r[9] + 0x00000010u;
|
|
/* 029841FC */ cpu->r[3] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02984200 */ return;
|
|
L_02984204: ; // 0x2984204
|
|
/* 02984204 */ _t31 = cpu->r[12] + 0x00000000u;
|
|
/* 02984204 */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02984208 */ _t32 = cpu->r[11] + 0x00000000u;
|
|
/* 02984208 */ cpu->r[9] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298420C */ _t33 = cpu->r[9] + 0x00000010u;
|
|
/* 0298420C */ cpu->r[3] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02984210 */ return;
|
|
L_02984214: ; // 0x2984214
|
|
/* 02984214 */ _t34 = cpu->r[3] + 0x00000058u;
|
|
/* 02984214 */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02984218 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 0298421C */ _t35 = cpu->r[3] + 0x0000005Cu;
|
|
/* 0298421C */ cpu->r[9] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02984220 */ _t36 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984220 */ _t37 = _t36 & 0x00000001u;
|
|
/* 02984220 */ if (_t37) goto L_02984224; else goto L_0298422C;
|
|
L_02984224: ; // 0x2984224
|
|
/* 02984224 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02984228 */ cpu->r[9] = cpu->r[9] + cpu->r[8];
|
|
L_0298422C: ; // 0x298422c
|
|
/* 0298422C */ _t38 = cpu->r[9] + 0x00000000u;
|
|
/* 0298422C */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02984230 */ _t39 = cpu->r[9] + 0x00000000u;
|
|
/* 02984230 */ cpu->r[11] = rbrew_read32(cpu->mem, _t39);
|
|
/* 02984234 */ _t40 = cpu->r[11] + 0x00000010u;
|
|
/* 02984234 */ cpu->r[3] = rbrew_read32(cpu->mem, _t40);
|
|
/* 02984238 */ return;
|
|
L_0298423C: ; // 0x298423c
|
|
/* 0298423C */ _t41 = cpu->r[3] + 0x00000060u;
|
|
/* 0298423C */ cpu->r[10] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02984240 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 02984244 */ _t42 = cpu->r[3] + 0x00000064u;
|
|
/* 02984244 */ cpu->r[12] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02984248 */ _t43 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984248 */ _t44 = _t43 & 0x00000001u;
|
|
/* 02984248 */ if (_t44) goto L_0298424C; else goto L_02984254;
|
|
L_0298424C: ; // 0x298424c
|
|
/* 0298424C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02984250 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_02984254: ; // 0x2984254
|
|
/* 02984254 */ _t45 = cpu->r[12] + 0x00000000u;
|
|
/* 02984254 */ cpu->r[12] = rbrew_read32(cpu->mem, _t45);
|
|
/* 02984258 */ _t46 = cpu->r[12] + 0x00000000u;
|
|
/* 02984258 */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298425C */ _t47 = cpu->r[12] + 0x00000010u;
|
|
/* 0298425C */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02984260 */ return;
|
|
L_02984264: ; // 0x2984264
|
|
/* 02984264 */ _t48 = cpu->r[3] + 0x00000068u;
|
|
/* 02984264 */ cpu->r[8] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02984268 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 0298426C */ _t49 = cpu->r[3] + 0x0000006Cu;
|
|
/* 0298426C */ cpu->r[11] = rbrew_read32(cpu->mem, _t49);
|
|
/* 02984270 */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984270 */ _t51 = _t50 & 0x00000001u;
|
|
/* 02984270 */ if (_t51) goto L_02984274; else goto L_0298427C;
|
|
L_02984274: ; // 0x2984274
|
|
/* 02984274 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02984278 */ cpu->r[11] = cpu->r[11] + cpu->r[0];
|
|
L_0298427C: ; // 0x298427c
|
|
/* 0298427C */ _t52 = cpu->r[11] + 0x00000000u;
|
|
/* 0298427C */ cpu->r[10] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02984280 */ _t53 = cpu->r[10] + 0x00000000u;
|
|
/* 02984280 */ cpu->r[12] = rbrew_read32(cpu->mem, _t53);
|
|
/* 02984284 */ _t54 = cpu->r[12] + 0x00000010u;
|
|
/* 02984284 */ cpu->r[3] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02984288 */ return;
|
|
}
|
|
|
|
// fn_0298428C @ 0x298428c
|
|
void Gambit_fn_0298428C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54;
|
|
|
|
L_0298428C: ; // 0x298428c
|
|
/* 0298428C */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 0298428C */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02984290 */ /* nop */
|
|
/* 02984294 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000003u);
|
|
/* 02984298 */ /* nop */
|
|
/* 0298429C */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298429C */ _t2 = _t1 & 0x00000001u;
|
|
/* 0298429C */ if (_t2) goto L_029842A0; else goto L_029842C8;
|
|
L_029842A0: ; // 0x29842a0
|
|
/* 029842A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000001u);
|
|
/* 029842A4 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029842A4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 029842A4 */ if (_t4) goto L_029842E4; else goto L_029842A8;
|
|
L_029842A8: ; // 0x29842a8
|
|
/* 029842A8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029842A8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 029842A8 */ if (_t6) goto L_02984310; else goto L_029842AC;
|
|
L_029842AC: ; // 0x29842ac
|
|
/* 029842AC */ _t7 = cpu->r[3] + 0x00000040u;
|
|
/* 029842AC */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029842B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 029842B4 */ _t8 = cpu->r[3] + 0x00000044u;
|
|
/* 029842B4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029842B8 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029842B8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 029842B8 */ if (_t10) goto L_029842BC; else goto L_0298433C;
|
|
L_029842BC: ; // 0x29842bc
|
|
/* 029842BC */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 029842C0 */ cpu->r[11] = cpu->r[11] + cpu->r[10];
|
|
/* 029842C4 */ goto L_0298433C;
|
|
L_029842C8: ; // 0x29842c8
|
|
/* 029842C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000004u);
|
|
/* 029842CC */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029842CC */ _t12 = _t11 & 0x00000001u;
|
|
/* 029842CC */ if (_t12) goto L_02984350; else goto L_029842D0;
|
|
L_029842D0: ; // 0x29842d0
|
|
/* 029842D0 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029842D0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 029842D0 */ if (_t14) goto L_0298437C; else goto L_029842D4;
|
|
L_029842D4: ; // 0x29842d4
|
|
/* 029842D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], 0x00000005u);
|
|
/* 029842D8 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029842D8 */ _t16 = _t15 & 0x00000001u;
|
|
/* 029842D8 */ if (_t16) goto L_029843A8; else goto L_029842DC;
|
|
L_029842DC: ; // 0x29842dc
|
|
/* 029842DC */ cpu->r[3] = 0x00000000u;
|
|
/* 029842E0 */ return;
|
|
L_029842E4: ; // 0x29842e4
|
|
/* 029842E4 */ _t17 = cpu->r[3] + 0x00000050u;
|
|
/* 029842E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029842E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 029842EC */ _t18 = cpu->r[3] + 0x00000054u;
|
|
/* 029842EC */ cpu->r[10] = rbrew_read32(cpu->mem, _t18);
|
|
/* 029842F0 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029842F0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 029842F0 */ if (_t20) goto L_029842F4; else goto L_029842FC;
|
|
L_029842F4: ; // 0x29842f4
|
|
/* 029842F4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 029842F8 */ cpu->r[10] = cpu->r[10] + cpu->r[0];
|
|
L_029842FC: ; // 0x29842fc
|
|
/* 029842FC */ _t21 = cpu->r[10] + 0x00000000u;
|
|
/* 029842FC */ cpu->r[9] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02984300 */ _t22 = cpu->r[9] + 0x00000000u;
|
|
/* 02984300 */ cpu->r[11] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02984304 */ _t23 = cpu->r[11] + 0x0000000Cu;
|
|
/* 02984304 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02984308 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298430C */ return;
|
|
L_02984310: ; // 0x2984310
|
|
/* 02984310 */ _t24 = cpu->r[3] + 0x00000048u;
|
|
/* 02984310 */ cpu->r[9] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02984314 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 02984318 */ _t25 = cpu->r[3] + 0x0000004Cu;
|
|
/* 02984318 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298431C */ _t26 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298431C */ _t27 = _t26 & 0x00000001u;
|
|
/* 0298431C */ if (_t27) goto L_02984320; else goto L_02984328;
|
|
L_02984320: ; // 0x2984320
|
|
/* 02984320 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02984324 */ cpu->r[11] = cpu->r[11] + cpu->r[10];
|
|
L_02984328: ; // 0x2984328
|
|
/* 02984328 */ _t28 = cpu->r[11] + 0x00000000u;
|
|
/* 02984328 */ cpu->r[12] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298432C */ _t29 = cpu->r[12] + 0x00000000u;
|
|
/* 0298432C */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02984330 */ _t30 = cpu->r[11] + 0x0000000Cu;
|
|
/* 02984330 */ cpu->r[8] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02984334 */ cpu->r[3] = rbrew_rlwinm(cpu->r[8], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02984338 */ return;
|
|
L_0298433C: ; // 0x298433c
|
|
/* 0298433C */ _t31 = cpu->r[11] + 0x00000000u;
|
|
/* 0298433C */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02984340 */ _t32 = cpu->r[12] + 0x00000000u;
|
|
/* 02984340 */ cpu->r[11] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02984344 */ _t33 = cpu->r[11] + 0x0000000Cu;
|
|
/* 02984344 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02984348 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298434C */ return;
|
|
L_02984350: ; // 0x2984350
|
|
/* 02984350 */ _t34 = cpu->r[3] + 0x00000058u;
|
|
/* 02984350 */ cpu->r[8] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02984354 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 02984358 */ _t35 = cpu->r[3] + 0x0000005Cu;
|
|
/* 02984358 */ cpu->r[12] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298435C */ _t36 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298435C */ _t37 = _t36 & 0x00000001u;
|
|
/* 0298435C */ if (_t37) goto L_02984360; else goto L_02984368;
|
|
L_02984360: ; // 0x2984360
|
|
/* 02984360 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02984364 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_02984368: ; // 0x2984368
|
|
/* 02984368 */ _t38 = cpu->r[12] + 0x00000000u;
|
|
/* 02984368 */ cpu->r[10] = rbrew_read32(cpu->mem, _t38);
|
|
/* 0298436C */ _t39 = cpu->r[10] + 0x00000000u;
|
|
/* 0298436C */ cpu->r[9] = rbrew_read32(cpu->mem, _t39);
|
|
/* 02984370 */ _t40 = cpu->r[9] + 0x0000000Cu;
|
|
/* 02984370 */ cpu->r[0] = rbrew_read16(cpu->mem, _t40);
|
|
/* 02984374 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02984378 */ return;
|
|
L_0298437C: ; // 0x298437c
|
|
/* 0298437C */ _t41 = cpu->r[3] + 0x00000060u;
|
|
/* 0298437C */ cpu->r[10] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02984380 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 02984384 */ _t42 = cpu->r[3] + 0x00000064u;
|
|
/* 02984384 */ cpu->r[9] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02984388 */ _t43 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984388 */ _t44 = _t43 & 0x00000001u;
|
|
/* 02984388 */ if (_t44) goto L_0298438C; else goto L_02984394;
|
|
L_0298438C: ; // 0x298438c
|
|
/* 0298438C */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02984390 */ cpu->r[9] = cpu->r[9] + cpu->r[8];
|
|
L_02984394: ; // 0x2984394
|
|
/* 02984394 */ _t45 = cpu->r[9] + 0x00000000u;
|
|
/* 02984394 */ cpu->r[11] = rbrew_read32(cpu->mem, _t45);
|
|
/* 02984398 */ _t46 = cpu->r[11] + 0x00000000u;
|
|
/* 02984398 */ cpu->r[10] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298439C */ _t47 = cpu->r[10] + 0x0000000Cu;
|
|
/* 0298439C */ cpu->r[8] = rbrew_read16(cpu->mem, _t47);
|
|
/* 029843A0 */ cpu->r[3] = rbrew_rlwinm(cpu->r[8], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029843A4 */ return;
|
|
L_029843A8: ; // 0x29843a8
|
|
/* 029843A8 */ _t48 = cpu->r[3] + 0x00000068u;
|
|
/* 029843A8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t48);
|
|
/* 029843AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 029843B0 */ _t49 = cpu->r[3] + 0x0000006Cu;
|
|
/* 029843B0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t49);
|
|
/* 029843B4 */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029843B4 */ _t51 = _t50 & 0x00000001u;
|
|
/* 029843B4 */ if (_t51) goto L_029843B8; else goto L_029843C0;
|
|
L_029843B8: ; // 0x29843b8
|
|
/* 029843B8 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 029843BC */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_029843C0: ; // 0x29843c0
|
|
/* 029843C0 */ _t52 = cpu->r[12] + 0x00000000u;
|
|
/* 029843C0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t52);
|
|
/* 029843C4 */ _t53 = cpu->r[8] + 0x00000000u;
|
|
/* 029843C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t53);
|
|
/* 029843C8 */ _t54 = cpu->r[10] + 0x0000000Cu;
|
|
/* 029843C8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t54);
|
|
/* 029843CC */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029843D0 */ return;
|
|
}
|
|
|
|
// fn_029843D4 @ 0x29843d4
|
|
void Gambit_fn_029843D4(CPUState* cpu) {
|
|
uint32_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_029843D4: ; // 0x29843d4
|
|
/* 029843D4 */ cpu->r[0] = cpu->lr;
|
|
/* 029843D8 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 029843D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 029843DC */ cpu->r[0] = cpu->r[4];
|
|
/* 029843E0 */ _t1 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029843E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 029843E0 */ cpu->r[1] = _t1;
|
|
/* 029843E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000003u);
|
|
/* 029843E8 */ cpu->r[4] = cpu->r[5];
|
|
/* 029843EC */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029843EC */ _t3 = _t2 & 0x00000001u;
|
|
/* 029843EC */ if (_t3) goto L_029843F0; else goto L_02984414;
|
|
L_029843F0: ; // 0x29843f0
|
|
/* 029843F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 029843F4 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029843F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029843F4 */ if (_t5) goto L_0298443C; else goto L_029843F8;
|
|
L_029843F8: ; // 0x29843f8
|
|
/* 029843F8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029843F8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029843F8 */ if (_t7) goto L_02984454; else goto L_029843FC;
|
|
L_029843FC: ; // 0x29843fc
|
|
/* 029843FC */ cpu->r[5] = cpu->r[0];
|
|
/* 02984400 */ Gambit_fn_0298817C(cpu);
|
|
/* 02984404 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 02984404 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02984408 */ cpu->lr = cpu->r[0];
|
|
/* 0298440C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984410 */ return;
|
|
L_02984414: ; // 0x2984414
|
|
/* 02984414 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000004u);
|
|
/* 02984418 */ _t9 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984418 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02984418 */ if (_t10) goto L_0298446C; else goto L_0298441C;
|
|
L_0298441C: ; // 0x298441c
|
|
/* 0298441C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298441C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298441C */ if (_t12) goto L_02984484; else goto L_02984420;
|
|
L_02984420: ; // 0x2984420
|
|
/* 02984420 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000005u);
|
|
/* 02984424 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984424 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02984424 */ if (_t14) goto L_0298449C; else goto L_02984428;
|
|
L_02984428: ; // 0x2984428
|
|
/* 02984428 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 0298442C */ _t15 = cpu->r[1] + 0x0000000Au;
|
|
/* 0298442C */ rbrew_write16(cpu->mem, _t15, (uint16_t)cpu->r[11]);
|
|
/* 02984430 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 02984430 */ rbrew_write16(cpu->mem, _t16, (uint16_t)cpu->r[11]);
|
|
/* 02984434 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 02984434 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02984438 */ goto L_029844A4;
|
|
L_0298443C: ; // 0x298443c
|
|
/* 0298443C */ cpu->r[5] = cpu->r[0];
|
|
/* 02984440 */ Gambit_fn_02987FEC(cpu);
|
|
/* 02984444 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02984444 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02984448 */ cpu->lr = cpu->r[0];
|
|
/* 0298444C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984450 */ return;
|
|
L_02984454: ; // 0x2984454
|
|
/* 02984454 */ cpu->r[5] = cpu->r[0];
|
|
/* 02984458 */ Gambit_fn_029880B4(cpu);
|
|
/* 0298445C */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 0298445C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02984460 */ cpu->lr = cpu->r[0];
|
|
/* 02984464 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984468 */ return;
|
|
L_0298446C: ; // 0x298446c
|
|
/* 0298446C */ cpu->r[5] = cpu->r[0];
|
|
/* 02984470 */ Gambit_fn_02988244(cpu);
|
|
/* 02984474 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 02984474 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02984478 */ cpu->lr = cpu->r[0];
|
|
/* 0298447C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984480 */ return;
|
|
L_02984484: ; // 0x2984484
|
|
/* 02984484 */ cpu->r[5] = cpu->r[0];
|
|
/* 02984488 */ Gambit_fn_0298830C(cpu);
|
|
/* 0298448C */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 0298448C */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02984490 */ cpu->lr = cpu->r[0];
|
|
/* 02984494 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984498 */ return;
|
|
L_0298449C: ; // 0x298449c
|
|
/* 0298449C */ cpu->r[5] = cpu->r[0];
|
|
/* 029844A0 */ Gambit_fn_029883D4(cpu);
|
|
L_029844A4: ; // 0x29844a4
|
|
/* 029844A4 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 029844A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029844A8 */ cpu->lr = cpu->r[0];
|
|
/* 029844AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029844B0 */ return;
|
|
}
|
|
|
|
// fn_029843E0 @ 0x29843e0
|
|
void Gambit_fn_029843E0(CPUState* cpu) {
|
|
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_029843E0: ; // 0x29843e0
|
|
/* 029843E0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029843E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029843E0 */ cpu->r[1] = _t0;
|
|
/* 029843E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000003u);
|
|
/* 029843E8 */ cpu->r[4] = cpu->r[5];
|
|
/* 029843EC */ _t1 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029843EC */ _t2 = _t1 & 0x00000001u;
|
|
/* 029843EC */ if (_t2) goto L_029843F0; else goto L_02984414;
|
|
L_029843F0: ; // 0x29843f0
|
|
/* 029843F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000001u);
|
|
/* 029843F4 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029843F4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 029843F4 */ if (_t4) goto L_0298443C; else goto L_029843F8;
|
|
L_029843F8: ; // 0x29843f8
|
|
/* 029843F8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029843F8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 029843F8 */ if (_t6) goto L_02984454; else goto L_029843FC;
|
|
L_029843FC: ; // 0x29843fc
|
|
/* 029843FC */ cpu->r[5] = cpu->r[0];
|
|
/* 02984400 */ Gambit_fn_0298817C(cpu);
|
|
/* 02984404 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 02984404 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02984408 */ cpu->lr = cpu->r[0];
|
|
/* 0298440C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984410 */ return;
|
|
L_02984414: ; // 0x2984414
|
|
/* 02984414 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000004u);
|
|
/* 02984418 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984418 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02984418 */ if (_t9) goto L_0298446C; else goto L_0298441C;
|
|
L_0298441C: ; // 0x298441c
|
|
/* 0298441C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298441C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298441C */ if (_t11) goto L_02984484; else goto L_02984420;
|
|
L_02984420: ; // 0x2984420
|
|
/* 02984420 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000005u);
|
|
/* 02984424 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984424 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02984424 */ if (_t13) goto L_0298449C; else goto L_02984428;
|
|
L_02984428: ; // 0x2984428
|
|
/* 02984428 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 0298442C */ _t14 = cpu->r[1] + 0x0000000Au;
|
|
/* 0298442C */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[11]);
|
|
/* 02984430 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 02984430 */ rbrew_write16(cpu->mem, _t15, (uint16_t)cpu->r[11]);
|
|
/* 02984434 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 02984434 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02984438 */ goto L_029844A4;
|
|
L_0298443C: ; // 0x298443c
|
|
/* 0298443C */ cpu->r[5] = cpu->r[0];
|
|
/* 02984440 */ Gambit_fn_02987FEC(cpu);
|
|
/* 02984444 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 02984444 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02984448 */ cpu->lr = cpu->r[0];
|
|
/* 0298444C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984450 */ return;
|
|
L_02984454: ; // 0x2984454
|
|
/* 02984454 */ cpu->r[5] = cpu->r[0];
|
|
/* 02984458 */ Gambit_fn_029880B4(cpu);
|
|
/* 0298445C */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 0298445C */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02984460 */ cpu->lr = cpu->r[0];
|
|
/* 02984464 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984468 */ return;
|
|
L_0298446C: ; // 0x298446c
|
|
/* 0298446C */ cpu->r[5] = cpu->r[0];
|
|
/* 02984470 */ Gambit_fn_02988244(cpu);
|
|
/* 02984474 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 02984474 */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02984478 */ cpu->lr = cpu->r[0];
|
|
/* 0298447C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984480 */ return;
|
|
L_02984484: ; // 0x2984484
|
|
/* 02984484 */ cpu->r[5] = cpu->r[0];
|
|
/* 02984488 */ Gambit_fn_0298830C(cpu);
|
|
/* 0298448C */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 0298448C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02984490 */ cpu->lr = cpu->r[0];
|
|
/* 02984494 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02984498 */ return;
|
|
L_0298449C: ; // 0x298449c
|
|
/* 0298449C */ cpu->r[5] = cpu->r[0];
|
|
/* 029844A0 */ Gambit_fn_029883D4(cpu);
|
|
L_029844A4: ; // 0x29844a4
|
|
/* 029844A4 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 029844A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029844A8 */ cpu->lr = cpu->r[0];
|
|
/* 029844AC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029844B0 */ return;
|
|
}
|
|
|
|
// fn_029844B4 @ 0x29844b4
|
|
void Gambit_fn_029844B4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_029844B4: ; // 0x29844b4
|
|
/* 029844B4 */ _t0 = cpu->r[3] + 0x00000094u;
|
|
/* 029844B4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 029844B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029844BC */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029844BC */ _t2 = _t1 & 0x00000001u;
|
|
/* 029844BC */ if (_t2) goto L_029844CC; else goto L_029844C0;
|
|
L_029844C0: ; // 0x29844c0
|
|
/* 029844C0 */ _t3 = cpu->r[12] + 0x00000000u;
|
|
/* 029844C0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t3);
|
|
/* 029844C4 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029844C8 */ return;
|
|
L_029844CC: ; // 0x29844cc
|
|
/* 029844CC */ cpu->r[3] = 0x00000000u;
|
|
/* 029844D0 */ return;
|
|
}
|
|
|
|
// fn_029844D4 @ 0x29844d4
|
|
void Gambit_fn_029844D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_029844D4: ; // 0x29844d4
|
|
/* 029844D4 */ _t0 = cpu->r[3] + 0x00000094u;
|
|
/* 029844D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 029844D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029844DC */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029844DC */ _t2 = _t1 & 0x00000001u;
|
|
/* 029844DC */ if (_t2) goto L_029844FC; else goto L_029844E0;
|
|
L_029844E0: ; // 0x29844e0
|
|
/* 029844E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], 0x00000002u);
|
|
/* 029844E4 */ cpu->r[12] = cpu->r[12] + 0x0000000Cu;
|
|
/* 029844E8 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029844E8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 029844E8 */ if (_t4) goto L_029844EC; else goto L_029844F4;
|
|
L_029844EC: ; // 0x29844ec
|
|
/* 029844EC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000006Cu);
|
|
/* 029844F0 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_029844F4: ; // 0x29844f4
|
|
/* 029844F4 */ _t5 = cpu->r[12] + 0x00000068u;
|
|
/* 029844F4 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 029844F8 */ return;
|
|
L_029844FC: ; // 0x29844fc
|
|
/* 029844FC */ cpu->r[12] = 0x10150000u;
|
|
/* 02984500 */ _t6 = cpu->r[12] + 0xFFFFEE20u;
|
|
/* 02984500 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 02984504 */ return;
|
|
}
|
|
|
|
// fn_02984508 @ 0x2984508
|
|
void Gambit_fn_02984508(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02984508: ; // 0x2984508
|
|
/* 02984508 */ cpu->r[0] = cpu->lr;
|
|
/* 0298450C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298450C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298450C */ cpu->r[1] = _t0;
|
|
/* 02984510 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 02984510 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02984514 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02984514 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 02984518 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984518 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298451C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298451C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02984520 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984520 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02984524 */ _t6 = cpu->r[3] + 0x00000028u;
|
|
/* 02984524 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02984528 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 0298452C */ _t7 = cpu->r[3] + 0x0000002Cu;
|
|
/* 0298452C */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02984530 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984530 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02984530 */ if (_t9) goto L_02984534; else goto L_0298453C;
|
|
L_02984534: ; // 0x2984534
|
|
/* 02984534 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000006Cu);
|
|
/* 02984538 */ cpu->r[30] = cpu->r[30] + cpu->r[0];
|
|
L_0298453C: ; // 0x298453c
|
|
/* 0298453C */ _t10 = cpu->r[30] + 0x00000068u;
|
|
/* 0298453C */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02984540 */ cpu->r[9] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02984540 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02984544 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984544 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02984544 */ if (_t12) goto L_02984548; else goto L_02984554;
|
|
L_02984548: ; // 0x2984548
|
|
/* 02984548 */ _t13 = cpu->r[30] + 0x00000004u;
|
|
/* 02984548 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298454C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02984550 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984550 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02984550 */ if (_t15) goto L_02984614; else goto L_02984554;
|
|
L_02984554: ; // 0x2984554
|
|
/* 02984554 */ _t16 = cpu->r[30] + 0x00000002u;
|
|
/* 02984554 */ cpu->r[8] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t16);
|
|
/* 02984558 */ cpu->r[28] = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298455C */ _t17 = cpu->r[3] + 0x00000038u;
|
|
/* 0298455C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02984560 */ _t18 = cpu->r[3] + 0x0000003Cu;
|
|
/* 02984560 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02984564 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 02984568 */ _t19 = cpu->r[5] + 0x000000ACu;
|
|
/* 02984568 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298456C */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298456C */ _t21 = _t20 & 0x00000001u;
|
|
/* 0298456C */ if (_t21) goto L_02984570; else goto L_02984578;
|
|
L_02984570: ; // 0x2984570
|
|
/* 02984570 */ cpu->r[7] = rbrew_rlwinm(cpu->r[8], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02984574 */ cpu->r[31] = cpu->r[31] + cpu->r[7];
|
|
L_02984578: ; // 0x2984578
|
|
/* 02984578 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 0298457C */ _t22 = cpu->r[12] + 0x00000000u;
|
|
/* 0298457C */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02984580 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984580 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02984580 */ if (_t24) goto L_029845DC; else goto L_02984584;
|
|
L_02984584: ; // 0x2984584
|
|
/* 02984584 */ _t25 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02984584 */ cpu->r[5] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02984588 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298458C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02984590 */ cpu->r[4] = cpu->r[29];
|
|
/* 02984594 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984594 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02984594 */ if (_t27) goto L_029845B8; else goto L_02984598;
|
|
L_02984598: ; // 0x2984598
|
|
/* 02984598 */ Gambit_fn_02C549A0(cpu);
|
|
/* 0298459C */ _t28 = cpu->r[30] + 0x00000068u;
|
|
/* 0298459C */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 029845A0 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 029845A4 */ _t29 = cpu->r[30] + 0x00000068u;
|
|
/* 029845A4 */ rbrew_write32(cpu->mem, _t29, cpu->r[10]);
|
|
/* 029845A8 */ _t30 = cpu->r[31] + 0x00000004u;
|
|
/* 029845A8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 029845AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000001u);
|
|
/* 029845B0 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029845B0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 029845B0 */ if (_t32) goto L_029845B4; else goto L_029845DC;
|
|
L_029845B4: ; // 0x29845b4
|
|
/* 029845B4 */ goto L_029845D4;
|
|
L_029845B8: ; // 0x29845b8
|
|
/* 029845B8 */ Gambit_fn_02C54314(cpu);
|
|
/* 029845BC */ _t33 = cpu->r[30] + 0x00000068u;
|
|
/* 029845BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t33);
|
|
/* 029845C0 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 029845C4 */ _t34 = cpu->r[30] + 0x00000068u;
|
|
/* 029845C4 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
/* 029845C8 */ _t35 = cpu->r[31] + 0x00000004u;
|
|
/* 029845C8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029845CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000001u);
|
|
/* 029845D0 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029845D0 */ _t37 = _t36 & 0x00000001u;
|
|
/* 029845D0 */ if (_t37) goto L_029845D4; else goto L_029845DC;
|
|
L_029845D4: ; // 0x29845d4
|
|
/* 029845D4 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 029845D8 */ _t38 = cpu->r[30] + 0x00000068u;
|
|
/* 029845D8 */ rbrew_write32(cpu->mem, _t38, cpu->r[10]);
|
|
L_029845DC: ; // 0x29845dc
|
|
/* 029845DC */ _t39 = cpu->r[30] + 0x00000004u;
|
|
/* 029845DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029845E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029845E4 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029845E4 */ _t41 = _t40 & 0x00000001u;
|
|
/* 029845E4 */ if (_t41) goto L_02984614; else goto L_029845E8;
|
|
L_029845E8: ; // 0x29845e8
|
|
/* 029845E8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029845E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 029845EC */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029845EC */ _t43 = _t42 & 0x00000001u;
|
|
/* 029845EC */ if (_t43) goto L_02984614; else goto L_029845F0;
|
|
L_029845F0: ; // 0x29845f0
|
|
/* 029845F0 */ cpu->r[5] = 0x00000000u;
|
|
/* 029845F4 */ cpu->r[4] = cpu->r[29];
|
|
/* 029845F8 */ cpu->r[3] = cpu->r[28];
|
|
/* 029845FC */ cpu->r[6] = cpu->r[5];
|
|
/* 02984600 */ Gambit_fn_02C54A3C(cpu);
|
|
/* 02984604 */ _t44 = cpu->r[30] + 0x00000004u;
|
|
/* 02984604 */ cpu->r[3] = rbrew_read32(cpu->mem, _t44);
|
|
/* 02984608 */ cpu->r[5] = cpu->r[28];
|
|
/* 0298460C */ cpu->r[4] = cpu->r[29];
|
|
/* 02984610 */ Gambit_fn_029892B4(cpu);
|
|
L_02984614: ; // 0x2984614
|
|
/* 02984614 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 02984614 */ cpu->r[28] = rbrew_read32(cpu->mem, _t45);
|
|
/* 02984618 */ _t46 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984618 */ cpu->r[29] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298461C */ _t47 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298461C */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02984620 */ _t48 = cpu->r[1] + 0x00000010u;
|
|
/* 02984620 */ cpu->r[30] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02984624 */ cpu->lr = cpu->r[0];
|
|
/* 02984628 */ _t49 = cpu->r[1] + 0x00000014u;
|
|
/* 02984628 */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298462C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02984630 */ return;
|
|
}
|
|
|
|
// fn_0298450C @ 0x298450c
|
|
void Gambit_fn_0298450C(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298450C: ; // 0x298450c
|
|
/* 0298450C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298450C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298450C */ cpu->r[1] = _t0;
|
|
/* 02984510 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 02984510 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02984514 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02984514 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 02984518 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984518 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298451C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298451C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02984520 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984520 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02984524 */ _t6 = cpu->r[3] + 0x00000028u;
|
|
/* 02984524 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02984528 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 0298452C */ _t7 = cpu->r[3] + 0x0000002Cu;
|
|
/* 0298452C */ cpu->r[30] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02984530 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984530 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02984530 */ if (_t9) goto L_02984534; else goto L_0298453C;
|
|
L_02984534: ; // 0x2984534
|
|
/* 02984534 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000006Cu);
|
|
/* 02984538 */ cpu->r[30] = cpu->r[30] + cpu->r[0];
|
|
L_0298453C: ; // 0x298453c
|
|
/* 0298453C */ _t10 = cpu->r[30] + 0x00000068u;
|
|
/* 0298453C */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02984540 */ cpu->r[9] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02984540 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02984544 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984544 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02984544 */ if (_t12) goto L_02984548; else goto L_02984554;
|
|
L_02984548: ; // 0x2984548
|
|
/* 02984548 */ _t13 = cpu->r[30] + 0x00000004u;
|
|
/* 02984548 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298454C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02984550 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984550 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02984550 */ if (_t15) goto L_02984614; else goto L_02984554;
|
|
L_02984554: ; // 0x2984554
|
|
/* 02984554 */ _t16 = cpu->r[30] + 0x00000002u;
|
|
/* 02984554 */ cpu->r[8] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t16);
|
|
/* 02984558 */ cpu->r[28] = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298455C */ _t17 = cpu->r[3] + 0x00000038u;
|
|
/* 0298455C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02984560 */ _t18 = cpu->r[3] + 0x0000003Cu;
|
|
/* 02984560 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02984564 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[0]);
|
|
/* 02984568 */ _t19 = cpu->r[5] + 0x000000ACu;
|
|
/* 02984568 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298456C */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298456C */ _t21 = _t20 & 0x00000001u;
|
|
/* 0298456C */ if (_t21) goto L_02984570; else goto L_02984578;
|
|
L_02984570: ; // 0x2984570
|
|
/* 02984570 */ cpu->r[7] = rbrew_rlwinm(cpu->r[8], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02984574 */ cpu->r[31] = cpu->r[31] + cpu->r[7];
|
|
L_02984578: ; // 0x2984578
|
|
/* 02984578 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 0298457C */ _t22 = cpu->r[12] + 0x00000000u;
|
|
/* 0298457C */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02984580 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984580 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02984580 */ if (_t24) goto L_029845DC; else goto L_02984584;
|
|
L_02984584: ; // 0x2984584
|
|
/* 02984584 */ _t25 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02984584 */ cpu->r[5] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02984588 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298458C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02984590 */ cpu->r[4] = cpu->r[29];
|
|
/* 02984594 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984594 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02984594 */ if (_t27) goto L_029845B8; else goto L_02984598;
|
|
L_02984598: ; // 0x2984598
|
|
/* 02984598 */ Gambit_fn_02C549A0(cpu);
|
|
/* 0298459C */ _t28 = cpu->r[30] + 0x00000068u;
|
|
/* 0298459C */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 029845A0 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 029845A4 */ _t29 = cpu->r[30] + 0x00000068u;
|
|
/* 029845A4 */ rbrew_write32(cpu->mem, _t29, cpu->r[10]);
|
|
/* 029845A8 */ _t30 = cpu->r[31] + 0x00000004u;
|
|
/* 029845A8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 029845AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000001u);
|
|
/* 029845B0 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029845B0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 029845B0 */ if (_t32) goto L_029845B4; else goto L_029845DC;
|
|
L_029845B4: ; // 0x29845b4
|
|
/* 029845B4 */ goto L_029845D4;
|
|
L_029845B8: ; // 0x29845b8
|
|
/* 029845B8 */ Gambit_fn_02C54314(cpu);
|
|
/* 029845BC */ _t33 = cpu->r[30] + 0x00000068u;
|
|
/* 029845BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t33);
|
|
/* 029845C0 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 029845C4 */ _t34 = cpu->r[30] + 0x00000068u;
|
|
/* 029845C4 */ rbrew_write32(cpu->mem, _t34, cpu->r[10]);
|
|
/* 029845C8 */ _t35 = cpu->r[31] + 0x00000004u;
|
|
/* 029845C8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029845CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000001u);
|
|
/* 029845D0 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029845D0 */ _t37 = _t36 & 0x00000001u;
|
|
/* 029845D0 */ if (_t37) goto L_029845D4; else goto L_029845DC;
|
|
L_029845D4: ; // 0x29845d4
|
|
/* 029845D4 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 029845D8 */ _t38 = cpu->r[30] + 0x00000068u;
|
|
/* 029845D8 */ rbrew_write32(cpu->mem, _t38, cpu->r[10]);
|
|
L_029845DC: ; // 0x29845dc
|
|
/* 029845DC */ _t39 = cpu->r[30] + 0x00000004u;
|
|
/* 029845DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029845E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029845E4 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029845E4 */ _t41 = _t40 & 0x00000001u;
|
|
/* 029845E4 */ if (_t41) goto L_02984614; else goto L_029845E8;
|
|
L_029845E8: ; // 0x29845e8
|
|
/* 029845E8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029845E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 029845EC */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029845EC */ _t43 = _t42 & 0x00000001u;
|
|
/* 029845EC */ if (_t43) goto L_02984614; else goto L_029845F0;
|
|
L_029845F0: ; // 0x29845f0
|
|
/* 029845F0 */ cpu->r[5] = 0x00000000u;
|
|
/* 029845F4 */ cpu->r[4] = cpu->r[29];
|
|
/* 029845F8 */ cpu->r[3] = cpu->r[28];
|
|
/* 029845FC */ cpu->r[6] = cpu->r[5];
|
|
/* 02984600 */ Gambit_fn_02C54A3C(cpu);
|
|
/* 02984604 */ _t44 = cpu->r[30] + 0x00000004u;
|
|
/* 02984604 */ cpu->r[3] = rbrew_read32(cpu->mem, _t44);
|
|
/* 02984608 */ cpu->r[5] = cpu->r[28];
|
|
/* 0298460C */ cpu->r[4] = cpu->r[29];
|
|
/* 02984610 */ Gambit_fn_029892B4(cpu);
|
|
L_02984614: ; // 0x2984614
|
|
/* 02984614 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 02984614 */ cpu->r[28] = rbrew_read32(cpu->mem, _t45);
|
|
/* 02984618 */ _t46 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984618 */ cpu->r[29] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298461C */ _t47 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298461C */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02984620 */ _t48 = cpu->r[1] + 0x00000010u;
|
|
/* 02984620 */ cpu->r[30] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02984624 */ cpu->lr = cpu->r[0];
|
|
/* 02984628 */ _t49 = cpu->r[1] + 0x00000014u;
|
|
/* 02984628 */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298462C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02984630 */ return;
|
|
}
|
|
|
|
// fn_02984634 @ 0x2984634
|
|
void Gambit_fn_02984634(CPUState* cpu) {
|
|
uint32_t _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_02984634: ; // 0x2984634
|
|
/* 02984634 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 02984634 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02984634 */ cpu->r[1] = _t0;
|
|
/* 02984638 */ /* nop */
|
|
/* 0298463C */ cpu->r[0] = cpu->lr;
|
|
/* 02984640 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02984640 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02984644 */ cpu->r[23] = cpu->r[3];
|
|
/* 02984648 */ _t2 = cpu->r[23] + 0x00000038u;
|
|
/* 02984648 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298464C */ cpu->r[24] = cpu->r[4];
|
|
/* 02984650 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02984654 */ cpu->r[25] = cpu->r[5];
|
|
/* 02984658 */ _t3 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02984658 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02984658 */ if (_t4) goto L_0298465C; else goto L_02984790;
|
|
L_0298465C: ; // 0x298465c
|
|
/* 0298465C */ _t5 = cpu->r[23] + 0x00000094u;
|
|
/* 0298465C */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02984660 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02984664 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984664 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02984664 */ if (_t7) goto L_02984674; else goto L_02984668;
|
|
L_02984668: ; // 0x2984668
|
|
/* 02984668 */ _t8 = cpu->r[9] + 0x00000000u;
|
|
/* 02984668 */ cpu->r[7] = rbrew_read16(cpu->mem, _t8);
|
|
/* 0298466C */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298466C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02984670 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984670 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02984670 */ if (_t10) goto L_02984674; else goto L_02984790;
|
|
L_02984674: ; // 0x2984674
|
|
/* 02984674 */ _t11 = cpu->r[23] + 0x00000008u;
|
|
/* 02984674 */ cpu->r[7] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02984678 */ cpu->r[22] = 0x00000000u;
|
|
/* 0298467C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], cpu->r[7]);
|
|
/* 02984680 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984680 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02984680 */ if (_t13) goto L_02984684; else goto L_02984790;
|
|
L_02984684: ; // 0x2984684
|
|
/* 02984684 */ cpu->r[26] = 0x00000000u;
|
|
/* 02984688 */ cpu->r[29] = 0x101D0000u;
|
|
/* 0298468C */ cpu->r[27] = 0x101D0000u;
|
|
/* 02984690 */ cpu->r[28] = cpu->r[26];
|
|
/* 02984694 */ cpu->r[21] = 0x00000001u;
|
|
L_02984698: ; // 0x2984698
|
|
/* 02984698 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[22], cpu->r[7]);
|
|
/* 0298469C */ _t14 = cpu->r[23] + 0x0000000Cu;
|
|
/* 0298469C */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029846A0 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029846A0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 029846A0 */ if (_t16) goto L_029846A4; else goto L_029846A8;
|
|
L_029846A4: ; // 0x29846a4
|
|
/* 029846A4 */ cpu->r[31] = cpu->r[31] + cpu->r[26];
|
|
L_029846A8: ; // 0x29846a8
|
|
/* 029846A8 */ _t17 = cpu->r[31] + 0x00000008u;
|
|
/* 029846A8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t17);
|
|
/* 029846AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029846B0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029846B0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 029846B0 */ if (_t19) goto L_0298477C; else goto L_029846B4;
|
|
L_029846B4: ; // 0x29846b4
|
|
/* 029846B4 */ cpu->r[4] = cpu->r[22];
|
|
/* 029846B8 */ cpu->r[3] = cpu->r[24];
|
|
/* 029846BC */ Gambit_fn_0297FC7C(cpu);
|
|
/* 029846C0 */ _t20 = cpu->r[24] + 0x0000001Cu;
|
|
/* 029846C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029846C4 */ cpu->r[6] = 0x00000000u;
|
|
/* 029846C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[22], cpu->r[0]);
|
|
/* 029846CC */ _t21 = cpu->r[29] + 0xFFFFE218u;
|
|
/* 029846CC */ cpu->r[5] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029846D0 */ _t22 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029846D0 */ _t23 = _t22 & 0x00000001u;
|
|
/* 029846D0 */ if (_t23) goto L_029846D4; else goto L_029846DC;
|
|
L_029846D4: ; // 0x29846d4
|
|
/* 029846D4 */ _t24 = cpu->r[24] + 0x00000024u;
|
|
/* 029846D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029846D8 */ _t25 = cpu->r[12] + cpu->r[28];
|
|
/* 029846D8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t25);
|
|
L_029846DC: ; // 0x29846dc
|
|
/* 029846DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 029846E0 */ _t26 = cpu->r[6] + 0x00000000u;
|
|
/* 029846E0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029846E4 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029846E4 */ _t28 = _t27 & 0x00000001u;
|
|
/* 029846E4 */ if (_t28) goto L_029846E8; else goto L_029846F8;
|
|
L_029846E8: ; // 0x29846e8
|
|
/* 029846E8 */ cpu->r[8] = 0x10150000u;
|
|
/* 029846EC */ _t29 = cpu->r[29] + 0xFFFFE218u;
|
|
/* 029846EC */ rbrew_write32(cpu->mem, _t29, cpu->r[21]);
|
|
/* 029846F0 */ cpu->r[8] = cpu->r[8] + 0xFFFFEDC8u;
|
|
/* 029846F4 */ _t30 = cpu->r[27] + 0xFFFFEF88u;
|
|
/* 029846F4 */ rbrew_write32(cpu->mem, _t30, cpu->r[8]);
|
|
L_029846F8: ; // 0x29846f8
|
|
/* 029846F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 029846FC */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029846FC */ _t32 = _t31 & 0x00000001u;
|
|
/* 029846FC */ if (_t32) goto L_02984778; else goto L_02984700;
|
|
L_02984700: ; // 0x2984700
|
|
/* 02984700 */ _t33 = cpu->r[30] + 0x00000088u;
|
|
/* 02984700 */ cpu->r[10] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02984704 */ _t34 = cpu->r[10] + 0x0000000Cu;
|
|
/* 02984704 */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02984708 */ cpu->ctr = cpu->r[12];
|
|
/* 0298470C */ cpu->r[3] = cpu->r[30];
|
|
/* 02984710 */ cpu->r[4] = cpu->r[27] + 0xFFFFEF88u;
|
|
/* 02984714 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984718 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298471C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298471C */ _t36 = _t35 & 0x00000001u;
|
|
/* 0298471C */ if (_t36) goto L_02984778; else goto L_02984720;
|
|
L_02984720: ; // 0x2984720
|
|
/* 02984720 */ cpu->r[5] = cpu->r[30];
|
|
/* 02984720 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02984724 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984724 */ _t38 = _t37 & 0x00000001u;
|
|
/* 02984724 */ if (_t38) goto L_02984778; else goto L_02984728;
|
|
L_02984728: ; // 0x2984728
|
|
/* 02984728 */ _t39 = cpu->r[5] + 0x000000C8u;
|
|
/* 02984728 */ cpu->r[0] = rbrew_read8(cpu->mem, _t39);
|
|
/* 0298472C */ cpu->r[0] = cpu->r[0] | 0x00000010u;
|
|
/* 02984730 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 02984734 */ _t40 = cpu->r[5] + 0x000000C8u;
|
|
/* 02984734 */ rbrew_write8(cpu->mem, _t40, (uint8_t)cpu->r[0]);
|
|
/* 02984738 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984738 */ _t42 = _t41 & 0x00000001u;
|
|
/* 02984738 */ if (_t42) goto L_02984764; else goto L_0298473C;
|
|
L_0298473C: ; // 0x298473c
|
|
/* 0298473C */ _t43 = cpu->r[25] + 0x00000004u;
|
|
/* 0298473C */ cpu->r[8] = rbrew_read32(cpu->mem, _t43);
|
|
/* 02984740 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02984744 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984744 */ _t45 = _t44 & 0x00000001u;
|
|
/* 02984744 */ if (_t45) goto L_02984764; else goto L_02984748;
|
|
L_02984748: ; // 0x2984748
|
|
/* 02984748 */ cpu->r[6] = 0x00000001u;
|
|
/* 0298474C */ cpu->r[7] = cpu->r[25];
|
|
/* 02984750 */ cpu->r[4] = cpu->r[31];
|
|
/* 02984754 */ cpu->r[3] = cpu->r[23];
|
|
/* 02984758 */ Gambit_fn_02988670(cpu);
|
|
/* 0298475C */ _t46 = cpu->r[23] + 0x00000008u;
|
|
/* 0298475C */ cpu->r[7] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02984760 */ goto L_0298477C;
|
|
L_02984764: ; // 0x2984764
|
|
/* 02984764 */ cpu->r[6] = 0x00000001u;
|
|
/* 02984768 */ cpu->r[7] = cpu->r[25];
|
|
/* 0298476C */ cpu->r[4] = cpu->r[31];
|
|
/* 02984770 */ cpu->r[3] = cpu->r[23];
|
|
/* 02984774 */ Gambit_fn_02988A1C(cpu);
|
|
L_02984778: ; // 0x2984778
|
|
/* 02984778 */ _t47 = cpu->r[23] + 0x00000008u;
|
|
/* 02984778 */ cpu->r[7] = rbrew_read32(cpu->mem, _t47);
|
|
L_0298477C: ; // 0x298477c
|
|
/* 0298477C */ cpu->r[22] = cpu->r[22] + 0x00000001u;
|
|
/* 02984780 */ cpu->r[26] = cpu->r[26] + 0x0000000Cu;
|
|
/* 02984784 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[22], cpu->r[7]);
|
|
/* 02984788 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298478C */ _t48 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298478C */ _t49 = _t48 & 0x00000001u;
|
|
/* 0298478C */ if (_t49) goto L_02984698; else goto L_02984790;
|
|
L_02984790: ; // 0x2984790
|
|
/* 02984790 */ /* nop */
|
|
/* 02984794 */ _t50 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02984794 */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 02984798 */ cpu->lr = cpu->r[0];
|
|
/* 0298479C */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 029847A0 */ return;
|
|
}
|
|
|
|
// fn_029847A4 @ 0x29847a4
|
|
void Gambit_fn_029847A4(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_029847A4: ; // 0x29847a4
|
|
/* 029847A4 */ _t0 = cpu->r[3] + 0x00000008u;
|
|
/* 029847A4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t0);
|
|
/* 029847A8 */ cpu->r[0] = cpu->r[4];
|
|
/* 029847AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 029847B0 */ _t1 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029847B0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t1);
|
|
/* 029847B4 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029847B4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 029847B4 */ if (_t3) goto L_029847B8; else goto L_029847C0;
|
|
L_029847B8: ; // 0x29847b8
|
|
/* 029847B8 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 029847BC */ cpu->r[4] = cpu->r[4] + cpu->r[11];
|
|
L_029847C0: ; // 0x29847c0
|
|
/* 029847C0 */ _t4 = cpu->r[4] + 0x00000008u;
|
|
/* 029847C0 */ cpu->r[12] = rbrew_read16(cpu->mem, _t4);
|
|
/* 029847C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029847C8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029847C8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 029847C8 */ if (_t6) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029847C8 */ goto L_029847CC;
|
|
L_029847CC: ; // 0x29847cc
|
|
/* 029847CC */ _t7 = cpu->r[5] + 0x000000C8u;
|
|
/* 029847CC */ cpu->r[8] = rbrew_read8(cpu->mem, _t7);
|
|
/* 029847D0 */ cpu->r[8] = cpu->r[8] | 0x00000010u;
|
|
/* 029847D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 029847D8 */ _t8 = cpu->r[5] + 0x000000C8u;
|
|
/* 029847D8 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[8]);
|
|
/* 029847DC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029847DC */ _t10 = _t9 & 0x00000001u;
|
|
/* 029847DC */ if (_t10) goto L_029847F4; else goto L_029847E0;
|
|
L_029847E0: ; // 0x29847e0
|
|
/* 029847E0 */ _t11 = cpu->r[7] + 0x00000004u;
|
|
/* 029847E0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029847E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 029847E8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029847E8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029847E8 */ if (_t13) goto L_029847F4; else goto L_029847EC;
|
|
L_029847EC: ; // 0x29847ec
|
|
/* 029847EC */ cpu->r[6] = 0x00000001u;
|
|
/* 029847F0 */ goto L_02988670;
|
|
L_029847F4: ; // 0x29847f4
|
|
/* 029847F4 */ cpu->r[6] = 0x00000001u;
|
|
/* 029847F8 */ goto L_02988A1C;
|
|
L_02988670: ; // 0x2988670
|
|
/* 02988670 */ _t14 = cpu->r[1] + 0xFFFFFBB8u;
|
|
/* 02988670 */ rbrew_write32(cpu->mem, _t14, cpu->r[1]);
|
|
/* 02988670 */ cpu->r[1] = _t14;
|
|
/* 02988674 */ /* nop */
|
|
/* 02988678 */ cpu->r[0] = cpu->lr;
|
|
/* 0298867C */ _t15 = cpu->r[1] + 0x0000044Cu;
|
|
/* 0298867C */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 02988680 */ cpu->r[29] = cpu->r[4];
|
|
/* 02988684 */ cpu->r[24] = cpu->r[5];
|
|
/* 02988688 */ cpu->r[23] = cpu->r[3];
|
|
/* 0298868C */ _t16 = cpu->r[24] + 0x000000ACu;
|
|
/* 0298868C */ cpu->r[26] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02988690 */ cpu->r[27] = cpu->r[7];
|
|
/* 02988694 */ _t17 = cpu->r[23] + 0x00000090u;
|
|
/* 02988694 */ rbrew_write32(cpu->mem, _t17, cpu->r[24]);
|
|
/* 02988698 */ _t18 = cpu->r[27] + 0x0000000Cu;
|
|
/* 02988698 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298869C */ _t19 = cpu->r[26] + 0x0000002Cu;
|
|
/* 0298869C */ cpu->r[8] = rbrew_read16(cpu->mem, _t19);
|
|
/* 029886A0 */ cpu->r[25] = cpu->r[6];
|
|
/* 029886A4 */ _t20 = cpu->r[29] + 0x00000008u;
|
|
/* 029886A4 */ cpu->r[9] = rbrew_read16(cpu->mem, _t20);
|
|
/* 029886A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 029886AC */ cpu->r[0] = 0x00000000u;
|
|
/* 029886B0 */ _t21 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029886B0 */ _t22 = _t21 & 0x00000001u;
|
|
/* 029886B0 */ if (_t22) goto L_029886C4; else goto L_029886B4;
|
|
L_029886B4: ; // 0x29886b4
|
|
/* 029886B4 */ _t23 = cpu->r[27] + 0x00000002u;
|
|
/* 029886B4 */ cpu->r[5] = rbrew_read16(cpu->mem, _t23);
|
|
/* 029886B8 */ cpu->r[7] = rbrew_rlwinm(cpu->r[5], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029886B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 029886BC */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029886BC */ _t25 = _t24 & 0x00000001u;
|
|
/* 029886BC */ if (_t25) goto L_029886C4; else goto L_029886C0;
|
|
L_029886C0: ; // 0x29886c0
|
|
/* 029886C0 */ cpu->r[0] = 0x00000001u;
|
|
L_029886C4: ; // 0x29886c4
|
|
/* 029886C4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 029886C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000001u);
|
|
/* 029886CC */ cpu->r[25] = cpu->r[25] & cpu->r[0];
|
|
/* 029886D0 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029886D0 */ _t27 = _t26 & 0x00000001u;
|
|
/* 029886D0 */ if (_t27) goto L_029886D4; else goto L_02988744;
|
|
L_029886D4: ; // 0x29886d4
|
|
/* 029886D4 */ _t28 = cpu->r[29] + 0x00000004u;
|
|
/* 029886D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t28);
|
|
/* 029886D8 */ cpu->r[3] = cpu->r[23];
|
|
/* 029886DC */ _t29 = cpu->r[12] + 0x00000000u;
|
|
/* 029886DC */ cpu->r[4] = rbrew_read8(cpu->mem, _t29);
|
|
/* 029886E0 */ cpu->r[5] = cpu->r[24];
|
|
/* 029886E4 */ Gambit_fn_02984508(cpu);
|
|
/* 029886E8 */ _t30 = cpu->r[29] + 0x00000004u;
|
|
/* 029886E8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t30);
|
|
/* 029886EC */ _t31 = cpu->r[23] + 0x00000028u;
|
|
/* 029886EC */ cpu->r[10] = rbrew_read32(cpu->mem, _t31);
|
|
/* 029886F0 */ _t32 = cpu->r[6] + 0x00000000u;
|
|
/* 029886F0 */ cpu->r[8] = rbrew_read8(cpu->mem, _t32);
|
|
/* 029886F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[10]);
|
|
/* 029886F8 */ _t33 = cpu->r[23] + 0x0000002Cu;
|
|
/* 029886F8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 029886FC */ _t34 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029886FC */ _t35 = _t34 & 0x00000001u;
|
|
/* 029886FC */ if (_t35) goto L_02988700; else goto L_02988708;
|
|
L_02988700: ; // 0x2988700
|
|
/* 02988700 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000006Cu);
|
|
/* 02988704 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_02988708: ; // 0x2988708
|
|
/* 02988708 */ _t36 = cpu->r[12] + 0x00000000u;
|
|
/* 02988708 */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 0298870C */ cpu->r[3] = cpu->r[23];
|
|
/* 02988710 */ cpu->r[4] = cpu->r[24];
|
|
/* 02988714 */ cpu->r[5] = cpu->r[27];
|
|
/* 02988718 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988718 */ rbrew_write32(cpu->mem, _t37, cpu->r[0]);
|
|
/* 0298871C */ cpu->r[8] = cpu->r[12] + 0x0000000Cu;
|
|
/* 02988720 */ cpu->r[7] = cpu->r[26];
|
|
/* 02988724 */ cpu->r[6] = cpu->r[25];
|
|
/* 02988728 */ cpu->r[9] = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298872C */ Gambit_fn_0298849C(cpu);
|
|
/* 02988730 */ /* nop */
|
|
/* 02988734 */ _t38 = cpu->r[1] + 0x0000044Cu;
|
|
/* 02988734 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02988738 */ cpu->lr = cpu->r[0];
|
|
/* 0298873C */ cpu->r[1] = cpu->r[1] + 0x00000448u;
|
|
/* 02988740 */ return;
|
|
L_02988744: ; // 0x2988744
|
|
/* 02988744 */ _t39 = cpu->r[23] + 0x00000016u;
|
|
/* 02988744 */ rbrew_write16(cpu->mem, _t39, (uint16_t)cpu->r[8]);
|
|
/* 02988748 */ _t40 = cpu->r[27] + 0x00000008u;
|
|
/* 02988748 */ cpu->r[8] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298874C */ cpu->r[6] = 0x00000000u;
|
|
/* 02988750 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988754 */ _t41 = cpu->r[27] + 0x00000018u;
|
|
/* 02988754 */ cpu->r[4] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02988758 */ cpu->r[5] = rbrew_rlwinm(cpu->r[8], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 0298875C */ Gambit_fn_02C55114(cpu);
|
|
/* 02988760 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988764 */ Gambit_fn_02C54F48(cpu);
|
|
/* 02988768 */ _t42 = cpu->r[29] + 0x00000008u;
|
|
/* 02988768 */ cpu->r[0] = rbrew_read16(cpu->mem, _t42);
|
|
/* 0298876C */ _t43 = cpu->r[29] + 0x00000000u;
|
|
/* 0298876C */ cpu->r[9] = rbrew_read32(cpu->mem, _t43);
|
|
/* 02988770 */ _t44 = cpu->r[29] + 0x00000004u;
|
|
/* 02988770 */ cpu->r[31] = rbrew_read32(cpu->mem, _t44);
|
|
/* 02988774 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 02988778 */ cpu->r[28] = 0x00000000u;
|
|
/* 0298877C */ cpu->r[30] = cpu->r[31];
|
|
/* 02988780 */ _t45 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02988780 */ _t46 = _t45 & 0x00000001u;
|
|
/* 02988780 */ if (_t46) goto L_02988798; else goto L_02988784;
|
|
L_02988784: ; // 0x2988784
|
|
/* 02988784 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 02988788 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 0298878C */ _t47 = cpu->r[1] + 0x00000010u;
|
|
/* 0298878C */ rbrew_write32(cpu->mem, _t47, cpu->r[29]);
|
|
/* 02988790 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988790 */ _t49 = _t48 & 0x00000001u;
|
|
/* 02988790 */ if (_t49) goto L_02988854; else goto L_02988794;
|
|
L_02988794: ; // 0x2988794
|
|
/* 02988794 */ goto L_029887A8;
|
|
L_02988798: ; // 0x2988798
|
|
/* 02988798 */ cpu->r[29] = cpu->r[31] + cpu->r[9];
|
|
/* 0298879C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 029887A0 */ _t50 = cpu->r[1] + 0x00000010u;
|
|
/* 029887A0 */ rbrew_write32(cpu->mem, _t50, cpu->r[29]);
|
|
/* 029887A4 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029887A4 */ _t52 = _t51 & 0x00000001u;
|
|
/* 029887A4 */ if (_t52) goto L_02988854; else goto L_029887A8;
|
|
L_029887A8: ; // 0x29887a8
|
|
/* 029887A8 */ cpu->r[10] = cpu->r[1] + 0x00000018u;
|
|
/* 029887AC */ cpu->r[9] = rbrew_rlwinm(cpu->r[28], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029887B0 */ cpu->r[21] = cpu->r[10] + cpu->r[9];
|
|
L_029887B4: ; // 0x29887b4
|
|
/* 029887B4 */ _t53 = cpu->r[30] + 0x00000000u;
|
|
/* 029887B4 */ cpu->r[4] = rbrew_read8(cpu->mem, _t53);
|
|
/* 029887B8 */ cpu->r[5] = cpu->r[24];
|
|
/* 029887BC */ cpu->r[3] = cpu->r[23];
|
|
/* 029887C0 */ _t54 = cpu->r[23] + 0x0000008Eu;
|
|
/* 029887C0 */ rbrew_write8(cpu->mem, _t54, (uint8_t)cpu->r[4]);
|
|
/* 029887C4 */ Gambit_fn_02984508(cpu);
|
|
/* 029887C8 */ _t55 = cpu->r[23] + 0x0000008Eu;
|
|
/* 029887C8 */ cpu->r[7] = rbrew_read8(cpu->mem, _t55);
|
|
/* 029887CC */ _t56 = cpu->r[23] + 0x00000028u;
|
|
/* 029887CC */ cpu->r[11] = rbrew_read32(cpu->mem, _t56);
|
|
/* 029887D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[11]);
|
|
/* 029887D4 */ _t57 = cpu->r[23] + 0x0000002Cu;
|
|
/* 029887D4 */ cpu->r[22] = rbrew_read32(cpu->mem, _t57);
|
|
/* 029887D8 */ _t58 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029887D8 */ _t59 = _t58 & 0x00000001u;
|
|
/* 029887D8 */ if (_t59) goto L_029887DC; else goto L_029887E4;
|
|
L_029887DC: ; // 0x29887dc
|
|
/* 029887DC */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x0000006Cu);
|
|
/* 029887E0 */ cpu->r[22] = cpu->r[22] + cpu->r[12];
|
|
L_029887E4: ; // 0x29887e4
|
|
/* 029887E4 */ _t60 = cpu->r[22] + 0x00000068u;
|
|
/* 029887E4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t60);
|
|
/* 029887E8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029887E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029887EC */ cpu->r[20] = cpu->r[22] + 0x0000000Cu;
|
|
/* 029887F0 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029887F0 */ _t62 = _t61 & 0x00000001u;
|
|
/* 029887F0 */ if (_t62) goto L_02988814; else goto L_029887F4;
|
|
L_029887F4: ; // 0x29887f4
|
|
/* 029887F4 */ cpu->r[6] = cpu->r[30] - cpu->r[31];
|
|
/* 029887F8 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 029887FC */ _t63 = cpu->r[21] + 0x00000000u;
|
|
/* 029887FC */ rbrew_write32(cpu->mem, _t63, cpu->r[6]);
|
|
/* 02988800 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988804 */ cpu->r[21] = cpu->r[21] + 0x00000004u;
|
|
/* 02988808 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 0298880C */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298880C */ _t65 = _t64 & 0x00000001u;
|
|
/* 0298880C */ if (_t65) goto L_02988810; else goto L_029887B4;
|
|
L_02988810: ; // 0x2988810
|
|
/* 02988810 */ goto L_02988854;
|
|
L_02988814: ; // 0x2988814
|
|
/* 02988814 */ _t66 = cpu->r[27] + 0x00000008u;
|
|
/* 02988814 */ cpu->r[0] = rbrew_read32(cpu->mem, _t66);
|
|
/* 02988818 */ cpu->r[3] = cpu->r[20];
|
|
/* 0298881C */ cpu->r[6] = 0x00000001u;
|
|
/* 02988820 */ _t67 = cpu->r[27] + 0x00000014u;
|
|
/* 02988820 */ cpu->r[4] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02988824 */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 02988828 */ Gambit_fn_02C54CCC(cpu);
|
|
/* 0298882C */ _t68 = cpu->r[22] + 0x00000008u;
|
|
/* 0298882C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 02988830 */ cpu->r[4] = cpu->r[20];
|
|
/* 02988834 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988838 */ Gambit_fn_02C54F70(cpu);
|
|
/* 0298883C */ cpu->r[4] = 0x00000001u;
|
|
/* 02988840 */ cpu->r[3] = cpu->r[20];
|
|
/* 02988844 */ Gambit_fn_02C54DA0(cpu);
|
|
/* 02988848 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 0298884C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988850 */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988850 */ _t70 = _t69 & 0x00000001u;
|
|
/* 02988850 */ if (_t70) goto L_02988854; else goto L_029887B4;
|
|
L_02988854: ; // 0x2988854
|
|
/* 02988854 */ _t71 = cpu->r[23] + 0x00000070u;
|
|
/* 02988854 */ cpu->r[3] = rbrew_read32(cpu->mem, _t71);
|
|
/* 02988858 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298885C */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298885C */ _t73 = _t72 & 0x00000001u;
|
|
/* 0298885C */ if (_t73) goto L_0298887C; else goto L_02988860;
|
|
L_02988860: ; // 0x2988860
|
|
/* 02988860 */ _t74 = cpu->r[3] + 0x00000000u;
|
|
/* 02988860 */ cpu->r[8] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02988864 */ _t75 = cpu->r[8] + 0x00000014u;
|
|
/* 02988864 */ cpu->r[9] = rbrew_read32(cpu->mem, _t75);
|
|
/* 02988868 */ cpu->ctr = cpu->r[9];
|
|
/* 0298886C */ cpu->r[4] = cpu->r[23];
|
|
/* 02988870 */ cpu->r[5] = cpu->r[24];
|
|
/* 02988874 */ cpu->r[6] = cpu->r[23] + 0x00000010u;
|
|
/* 02988878 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298887C: ; // 0x298887c
|
|
/* 0298887C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 02988880 */ _t76 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988880 */ _t77 = _t76 & 0x00000001u;
|
|
/* 02988880 */ if (_t77) goto L_029888D4; else goto L_02988884;
|
|
L_02988884: ; // 0x2988884
|
|
/* 02988884 */ _t78 = cpu->r[27] + 0x00000008u;
|
|
/* 02988884 */ cpu->r[10] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02988888 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298888C */ cpu->r[6] = 0x00000001u;
|
|
/* 02988890 */ _t79 = cpu->r[27] + 0x0000001Cu;
|
|
/* 02988890 */ cpu->r[4] = rbrew_read32(cpu->mem, _t79);
|
|
/* 02988894 */ cpu->r[5] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 02988898 */ Gambit_fn_02C5AD44(cpu);
|
|
/* 0298889C */ cpu->r[4] = cpu->r[26];
|
|
/* 029888A0 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 029888A4 */ _t80 = cpu->r[27] + 0x0000002Cu;
|
|
/* 029888A4 */ rbrew_write32(cpu->mem, _t80, cpu->r[26]);
|
|
/* 029888A8 */ Gambit_fn_02C55078(cpu);
|
|
/* 029888AC */ cpu->r[4] = 0x00000001u;
|
|
/* 029888B0 */ cpu->r[3] = cpu->r[26];
|
|
/* 029888B4 */ Gambit_fn_02C5AE1C(cpu);
|
|
/* 029888B8 */ cpu->r[4] = 0x00000000u;
|
|
/* 029888BC */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 029888C0 */ _t81 = cpu->r[27] + 0x0000002Cu;
|
|
/* 029888C0 */ rbrew_write32(cpu->mem, _t81, cpu->r[4]);
|
|
/* 029888C4 */ Gambit_fn_02C551E8(cpu);
|
|
/* 029888C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029888CC */ _t82 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029888CC */ _t83 = _t82 & 0x00000001u;
|
|
/* 029888CC */ if (_t83) goto L_029888D0; else goto L_02988944;
|
|
L_029888D0: ; // 0x29888d0
|
|
/* 029888D0 */ goto L_029888F4;
|
|
L_029888D4: ; // 0x29888d4
|
|
/* 029888D4 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 029888D8 */ cpu->r[4] = cpu->r[26];
|
|
/* 029888DC */ Gambit_fn_02C55078(cpu);
|
|
/* 029888E0 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 029888E4 */ cpu->r[4] = 0x00000000u;
|
|
/* 029888E8 */ Gambit_fn_02C551E8(cpu);
|
|
/* 029888EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029888F0 */ _t84 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029888F0 */ _t85 = _t84 & 0x00000001u;
|
|
/* 029888F0 */ if (_t85) goto L_029888F4; else goto L_02988944;
|
|
L_029888F4: ; // 0x29888f4
|
|
/* 029888F4 */ cpu->r[31] = cpu->r[1] + 0x00000014u;
|
|
L_029888F8: ; // 0x29888f8
|
|
/* 029888F8 */ _t86 = cpu->r[31] + 0x00000004u;
|
|
/* 029888F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t86);
|
|
/* 029888F8 */ cpu->r[31] = _t86;
|
|
/* 029888FC */ _t87 = cpu->r[23] + 0x00000028u;
|
|
/* 029888FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02988900 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02988904 */ _t88 = cpu->r[23] + 0x0000002Cu;
|
|
/* 02988904 */ cpu->r[11] = rbrew_read32(cpu->mem, _t88);
|
|
/* 02988908 */ _t89 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988908 */ _t90 = _t89 & 0x00000001u;
|
|
/* 02988908 */ if (_t90) goto L_0298890C; else goto L_02988914;
|
|
L_0298890C: ; // 0x298890c
|
|
/* 0298890C */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000006Cu);
|
|
/* 02988910 */ cpu->r[11] = cpu->r[11] + cpu->r[5];
|
|
L_02988914: ; // 0x2988914
|
|
/* 02988914 */ _t91 = cpu->r[11] + 0x00000000u;
|
|
/* 02988914 */ cpu->r[7] = rbrew_read32(cpu->mem, _t91);
|
|
/* 02988918 */ cpu->r[4] = cpu->r[24];
|
|
/* 0298891C */ cpu->r[5] = cpu->r[27];
|
|
/* 02988920 */ cpu->r[6] = cpu->r[25];
|
|
/* 02988924 */ _t92 = cpu->r[1] + 0x00000008u;
|
|
/* 02988924 */ rbrew_write32(cpu->mem, _t92, cpu->r[7]);
|
|
/* 02988928 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
/* 0298892C */ cpu->r[8] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02988930 */ cpu->r[7] = cpu->r[26];
|
|
/* 02988934 */ cpu->r[3] = cpu->r[23];
|
|
/* 02988938 */ Gambit_fn_02988598(cpu);
|
|
/* 0298893C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 0298893C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02988940 */ _t93 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988940 */ _t94 = _t93 & 0x00000001u;
|
|
/* 02988940 */ if (_t94) goto L_02988944; else goto L_029888F8;
|
|
L_02988944: ; // 0x2988944
|
|
/* 02988944 */ /* nop */
|
|
/* 02988948 */ _t95 = cpu->r[1] + 0x0000044Cu;
|
|
/* 02988948 */ cpu->r[0] = rbrew_read32(cpu->mem, _t95);
|
|
/* 0298894C */ cpu->lr = cpu->r[0];
|
|
/* 02988950 */ cpu->r[1] = cpu->r[1] + 0x00000448u;
|
|
/* 02988954 */ return;
|
|
L_02988A1C: ; // 0x2988a1c
|
|
/* 02988A1C */ _t96 = cpu->r[1] + 0xFFFFFBC0u;
|
|
/* 02988A1C */ rbrew_write32(cpu->mem, _t96, cpu->r[1]);
|
|
/* 02988A1C */ cpu->r[1] = _t96;
|
|
/* 02988A20 */ /* nop */
|
|
/* 02988A24 */ cpu->r[0] = cpu->lr;
|
|
/* 02988A28 */ _t97 = cpu->r[1] + 0x00000444u;
|
|
/* 02988A28 */ rbrew_write32(cpu->mem, _t97, cpu->r[0]);
|
|
/* 02988A2C */ cpu->r[24] = cpu->r[5];
|
|
/* 02988A30 */ cpu->r[23] = cpu->r[3];
|
|
/* 02988A34 */ _t98 = cpu->r[24] + 0x000000ACu;
|
|
/* 02988A34 */ cpu->r[26] = rbrew_read32(cpu->mem, _t98);
|
|
/* 02988A38 */ cpu->r[31] = cpu->r[4];
|
|
/* 02988A3C */ _t99 = cpu->r[23] + 0x00000090u;
|
|
/* 02988A3C */ rbrew_write32(cpu->mem, _t99, cpu->r[24]);
|
|
/* 02988A40 */ _t100 = cpu->r[31] + 0x00000008u;
|
|
/* 02988A40 */ cpu->r[11] = rbrew_read16(cpu->mem, _t100);
|
|
/* 02988A44 */ cpu->r[25] = cpu->r[6];
|
|
/* 02988A48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000001u);
|
|
/* 02988A4C */ cpu->r[27] = cpu->r[7];
|
|
/* 02988A50 */ _t101 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988A50 */ _t102 = _t101 & 0x00000001u;
|
|
/* 02988A50 */ if (_t102) goto L_02988A54; else goto L_02988AC4;
|
|
L_02988A54: ; // 0x2988a54
|
|
/* 02988A54 */ _t103 = cpu->r[31] + 0x00000004u;
|
|
/* 02988A54 */ cpu->r[7] = rbrew_read32(cpu->mem, _t103);
|
|
/* 02988A58 */ cpu->r[3] = cpu->r[23];
|
|
/* 02988A5C */ _t104 = cpu->r[7] + 0x00000000u;
|
|
/* 02988A5C */ cpu->r[4] = rbrew_read8(cpu->mem, _t104);
|
|
/* 02988A60 */ cpu->r[5] = cpu->r[24];
|
|
/* 02988A64 */ Gambit_fn_02984508(cpu);
|
|
/* 02988A68 */ _t105 = cpu->r[31] + 0x00000004u;
|
|
/* 02988A68 */ cpu->r[8] = rbrew_read32(cpu->mem, _t105);
|
|
/* 02988A6C */ _t106 = cpu->r[23] + 0x00000028u;
|
|
/* 02988A6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t106);
|
|
/* 02988A70 */ _t107 = cpu->r[8] + 0x00000000u;
|
|
/* 02988A70 */ cpu->r[10] = rbrew_read8(cpu->mem, _t107);
|
|
/* 02988A74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 02988A78 */ _t108 = cpu->r[23] + 0x0000002Cu;
|
|
/* 02988A78 */ cpu->r[12] = rbrew_read32(cpu->mem, _t108);
|
|
/* 02988A7C */ _t109 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988A7C */ _t110 = _t109 & 0x00000001u;
|
|
/* 02988A7C */ if (_t110) goto L_02988A80; else goto L_02988A88;
|
|
L_02988A80: ; // 0x2988a80
|
|
/* 02988A80 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x0000006Cu);
|
|
/* 02988A84 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_02988A88: ; // 0x2988a88
|
|
/* 02988A88 */ _t111 = cpu->r[12] + 0x00000000u;
|
|
/* 02988A88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t111);
|
|
/* 02988A8C */ cpu->r[3] = cpu->r[23];
|
|
/* 02988A90 */ cpu->r[4] = cpu->r[24];
|
|
/* 02988A94 */ cpu->r[5] = cpu->r[27];
|
|
/* 02988A98 */ _t112 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988A98 */ rbrew_write32(cpu->mem, _t112, cpu->r[0]);
|
|
/* 02988A9C */ cpu->r[8] = cpu->r[12] + 0x0000000Cu;
|
|
/* 02988AA0 */ cpu->r[7] = cpu->r[26];
|
|
/* 02988AA4 */ cpu->r[6] = cpu->r[25];
|
|
/* 02988AA8 */ cpu->r[9] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988AAC */ Gambit_fn_02988958(cpu);
|
|
/* 02988AB0 */ /* nop */
|
|
/* 02988AB4 */ _t113 = cpu->r[1] + 0x00000444u;
|
|
/* 02988AB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t113);
|
|
/* 02988AB8 */ cpu->lr = cpu->r[0];
|
|
/* 02988ABC */ cpu->r[1] = cpu->r[1] + 0x00000440u;
|
|
/* 02988AC0 */ return;
|
|
L_02988AC4: ; // 0x2988ac4
|
|
/* 02988AC4 */ _t114 = cpu->r[26] + 0x0000002Cu;
|
|
/* 02988AC4 */ cpu->r[9] = rbrew_read16(cpu->mem, _t114);
|
|
/* 02988AC8 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988ACC */ _t115 = cpu->r[23] + 0x00000016u;
|
|
/* 02988ACC */ rbrew_write16(cpu->mem, _t115, (uint16_t)cpu->r[9]);
|
|
/* 02988AD0 */ Gambit_fn_02C54F48(cpu);
|
|
/* 02988AD4 */ _t116 = cpu->r[31] + 0x00000008u;
|
|
/* 02988AD4 */ cpu->r[7] = rbrew_read16(cpu->mem, _t116);
|
|
/* 02988AD8 */ _t117 = cpu->r[31] + 0x00000004u;
|
|
/* 02988AD8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t117);
|
|
/* 02988ADC */ _t118 = cpu->r[31] + 0x00000000u;
|
|
/* 02988ADC */ cpu->r[0] = rbrew_read32(cpu->mem, _t118);
|
|
/* 02988AE0 */ cpu->r[31] = cpu->r[30];
|
|
/* 02988AE4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 02988AE8 */ cpu->r[28] = 0x00000000u;
|
|
/* 02988AEC */ _t119 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02988AEC */ _t120 = _t119 & 0x00000001u;
|
|
/* 02988AEC */ if (_t120) goto L_02988B04; else goto L_02988AF0;
|
|
L_02988AF0: ; // 0x2988af0
|
|
/* 02988AF0 */ cpu->r[29] = cpu->r[30] + cpu->r[7];
|
|
/* 02988AF4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988AF8 */ _t121 = cpu->r[1] + 0x00000010u;
|
|
/* 02988AF8 */ rbrew_write32(cpu->mem, _t121, cpu->r[29]);
|
|
/* 02988AFC */ _t122 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988AFC */ _t123 = _t122 & 0x00000001u;
|
|
/* 02988AFC */ if (_t123) goto L_02988B98; else goto L_02988B00;
|
|
L_02988B00: ; // 0x2988b00
|
|
/* 02988B00 */ goto L_02988B14;
|
|
L_02988B04: ; // 0x2988b04
|
|
/* 02988B04 */ cpu->r[29] = cpu->r[30] + cpu->r[0];
|
|
/* 02988B08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988B0C */ _t124 = cpu->r[1] + 0x00000010u;
|
|
/* 02988B0C */ rbrew_write32(cpu->mem, _t124, cpu->r[29]);
|
|
/* 02988B10 */ _t125 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988B10 */ _t126 = _t125 & 0x00000001u;
|
|
/* 02988B10 */ if (_t126) goto L_02988B98; else goto L_02988B14;
|
|
L_02988B14: ; // 0x2988b14
|
|
/* 02988B14 */ cpu->r[12] = cpu->r[1] + 0x00000018u;
|
|
/* 02988B18 */ cpu->r[11] = rbrew_rlwinm(cpu->r[28], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02988B1C */ cpu->r[22] = cpu->r[12] + cpu->r[11];
|
|
L_02988B20: ; // 0x2988b20
|
|
/* 02988B20 */ _t127 = cpu->r[30] + 0x00000000u;
|
|
/* 02988B20 */ cpu->r[4] = rbrew_read8(cpu->mem, _t127);
|
|
/* 02988B24 */ cpu->r[5] = cpu->r[24];
|
|
/* 02988B28 */ cpu->r[3] = cpu->r[23];
|
|
/* 02988B2C */ _t128 = cpu->r[23] + 0x0000008Eu;
|
|
/* 02988B2C */ rbrew_write8(cpu->mem, _t128, (uint8_t)cpu->r[4]);
|
|
/* 02988B30 */ Gambit_fn_02984508(cpu);
|
|
/* 02988B34 */ _t129 = cpu->r[23] + 0x0000008Eu;
|
|
/* 02988B34 */ cpu->r[8] = rbrew_read8(cpu->mem, _t129);
|
|
/* 02988B38 */ _t130 = cpu->r[23] + 0x00000028u;
|
|
/* 02988B38 */ cpu->r[5] = rbrew_read32(cpu->mem, _t130);
|
|
/* 02988B3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[5]);
|
|
/* 02988B40 */ _t131 = cpu->r[23] + 0x0000002Cu;
|
|
/* 02988B40 */ cpu->r[11] = rbrew_read32(cpu->mem, _t131);
|
|
/* 02988B44 */ _t132 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988B44 */ _t133 = _t132 & 0x00000001u;
|
|
/* 02988B44 */ if (_t133) goto L_02988B48; else goto L_02988B50;
|
|
L_02988B48: ; // 0x2988b48
|
|
/* 02988B48 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000006Cu);
|
|
/* 02988B4C */ cpu->r[11] = cpu->r[11] + cpu->r[7];
|
|
L_02988B50: ; // 0x2988b50
|
|
/* 02988B50 */ _t134 = cpu->r[11] + 0x00000068u;
|
|
/* 02988B50 */ cpu->r[9] = rbrew_read32(cpu->mem, _t134);
|
|
/* 02988B54 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02988B54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02988B58 */ cpu->r[4] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02988B5C */ _t135 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988B5C */ _t136 = _t135 & 0x00000001u;
|
|
/* 02988B5C */ if (_t136) goto L_02988B80; else goto L_02988B60;
|
|
L_02988B60: ; // 0x2988b60
|
|
/* 02988B60 */ cpu->r[10] = cpu->r[30] - cpu->r[31];
|
|
/* 02988B64 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 02988B68 */ _t137 = cpu->r[22] + 0x00000000u;
|
|
/* 02988B68 */ rbrew_write32(cpu->mem, _t137, cpu->r[10]);
|
|
/* 02988B6C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988B70 */ cpu->r[22] = cpu->r[22] + 0x00000004u;
|
|
/* 02988B74 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 02988B78 */ _t138 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988B78 */ _t139 = _t138 & 0x00000001u;
|
|
/* 02988B78 */ if (_t139) goto L_02988B7C; else goto L_02988B20;
|
|
L_02988B7C: ; // 0x2988b7c
|
|
/* 02988B7C */ goto L_02988B98;
|
|
L_02988B80: ; // 0x2988b80
|
|
/* 02988B80 */ _t140 = cpu->r[11] + 0x00000008u;
|
|
/* 02988B80 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t140);
|
|
/* 02988B84 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988B88 */ Gambit_fn_02C54F70(cpu);
|
|
/* 02988B8C */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 02988B90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988B94 */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988B94 */ _t142 = _t141 & 0x00000001u;
|
|
/* 02988B94 */ if (_t142) goto L_02988B98; else goto L_02988B20;
|
|
L_02988B98: ; // 0x2988b98
|
|
/* 02988B98 */ _t143 = cpu->r[23] + 0x00000070u;
|
|
/* 02988B98 */ cpu->r[3] = rbrew_read32(cpu->mem, _t143);
|
|
/* 02988B9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02988BA0 */ _t144 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988BA0 */ _t145 = _t144 & 0x00000001u;
|
|
/* 02988BA0 */ if (_t145) goto L_02988BC0; else goto L_02988BA4;
|
|
L_02988BA4: ; // 0x2988ba4
|
|
/* 02988BA4 */ _t146 = cpu->r[3] + 0x00000000u;
|
|
/* 02988BA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t146);
|
|
/* 02988BA8 */ _t147 = cpu->r[12] + 0x00000014u;
|
|
/* 02988BA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t147);
|
|
/* 02988BAC */ cpu->ctr = cpu->r[0];
|
|
/* 02988BB0 */ cpu->r[4] = cpu->r[23];
|
|
/* 02988BB4 */ cpu->r[5] = cpu->r[24];
|
|
/* 02988BB8 */ cpu->r[6] = cpu->r[23] + 0x00000010u;
|
|
/* 02988BBC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02988BC0: ; // 0x2988bc0
|
|
/* 02988BC0 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988BC4 */ cpu->r[4] = cpu->r[26];
|
|
/* 02988BC8 */ Gambit_fn_02C55078(cpu);
|
|
/* 02988BCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02988BD0 */ _t148 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02988BD0 */ _t149 = _t148 & 0x00000001u;
|
|
/* 02988BD0 */ if (_t149) goto L_02988BD4; else goto L_02988C24;
|
|
L_02988BD4: ; // 0x2988bd4
|
|
/* 02988BD4 */ cpu->r[31] = cpu->r[1] + 0x00000014u;
|
|
L_02988BD8: ; // 0x2988bd8
|
|
/* 02988BD8 */ _t150 = cpu->r[31] + 0x00000004u;
|
|
/* 02988BD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t150);
|
|
/* 02988BD8 */ cpu->r[31] = _t150;
|
|
/* 02988BDC */ _t151 = cpu->r[23] + 0x00000028u;
|
|
/* 02988BDC */ cpu->r[12] = rbrew_read32(cpu->mem, _t151);
|
|
/* 02988BE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02988BE4 */ _t152 = cpu->r[23] + 0x0000002Cu;
|
|
/* 02988BE4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t152);
|
|
/* 02988BE8 */ _t153 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988BE8 */ _t154 = _t153 & 0x00000001u;
|
|
/* 02988BE8 */ if (_t154) goto L_02988BEC; else goto L_02988BF4;
|
|
L_02988BEC: ; // 0x2988bec
|
|
/* 02988BEC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000006Cu);
|
|
/* 02988BF0 */ cpu->r[10] = cpu->r[10] + cpu->r[0];
|
|
L_02988BF4: ; // 0x2988bf4
|
|
/* 02988BF4 */ _t155 = cpu->r[10] + 0x00000000u;
|
|
/* 02988BF4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t155);
|
|
/* 02988BF8 */ cpu->r[3] = cpu->r[23];
|
|
/* 02988BFC */ cpu->r[4] = cpu->r[24];
|
|
/* 02988C00 */ cpu->r[5] = cpu->r[27];
|
|
/* 02988C04 */ _t156 = cpu->r[1] + 0x00000008u;
|
|
/* 02988C04 */ rbrew_write32(cpu->mem, _t156, cpu->r[6]);
|
|
/* 02988C08 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
/* 02988C0C */ cpu->r[8] = cpu->r[10] + 0x0000000Cu;
|
|
/* 02988C10 */ cpu->r[7] = cpu->r[26];
|
|
/* 02988C14 */ cpu->r[6] = cpu->r[25];
|
|
/* 02988C18 */ Gambit_fn_029889D4(cpu);
|
|
/* 02988C1C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 02988C1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02988C20 */ _t157 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988C20 */ _t158 = _t157 & 0x00000001u;
|
|
/* 02988C20 */ if (_t158) goto L_02988C24; else goto L_02988BD8;
|
|
L_02988C24: ; // 0x2988c24
|
|
/* 02988C24 */ /* nop */
|
|
/* 02988C28 */ _t159 = cpu->r[1] + 0x00000444u;
|
|
/* 02988C28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t159);
|
|
/* 02988C2C */ cpu->lr = cpu->r[0];
|
|
/* 02988C30 */ cpu->r[1] = cpu->r[1] + 0x00000440u;
|
|
/* 02988C34 */ return;
|
|
}
|
|
|
|
// fn_029847FC @ 0x29847fc
|
|
void Gambit_fn_029847FC(CPUState* cpu) {
|
|
uint32_t _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_029847FC: ; // 0x29847fc
|
|
/* 029847FC */ cpu->r[0] = cpu->lr;
|
|
/* 02984800 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02984800 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02984800 */ cpu->r[1] = _t0;
|
|
/* 02984804 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02984804 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02984808 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02984808 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298480C */ cpu->r[31] = cpu->r[4];
|
|
/* 02984810 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984810 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02984814 */ _t4 = cpu->r[31] + 0x00000030u;
|
|
/* 02984814 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02984818 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298481C */ cpu->r[30] = cpu->r[3];
|
|
/* 02984820 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02984820 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02984820 */ if (_t6) goto L_02984824; else goto L_02984898;
|
|
L_02984824: ; // 0x2984824
|
|
/* 02984824 */ cpu->r[3] = cpu->r[31];
|
|
/* 02984828 */ Gambit_fn_02984128(cpu);
|
|
/* 0298482C */ _t7 = cpu->r[30] + 0x000000E8u;
|
|
/* 0298482C */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t7);
|
|
/* 02984830 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02984834 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984834 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02984834 */ if (_t9) goto L_02984898; else goto L_02984838;
|
|
L_02984838: ; // 0x2984838
|
|
/* 02984838 */ _t10 = cpu->r[30] + 0x000000EAu;
|
|
/* 02984838 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t10);
|
|
/* 0298483C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02984840 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984840 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02984840 */ if (_t12) goto L_02984898; else goto L_02984844;
|
|
L_02984844: ; // 0x2984844
|
|
/* 02984844 */ _t13 = cpu->r[30] + 0x000000E8u;
|
|
/* 02984844 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02984848 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298484C */ cpu->r[3] = cpu->r[31];
|
|
/* 02984850 */ _t14 = cpu->r[12] + 0xFFFFEE20u;
|
|
/* 02984850 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 02984854 */ cpu->r[4] = 0x00000000u;
|
|
/* 02984858 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298485C */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 0298485C */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 02984860 */ Gambit_fn_02983FDC(cpu);
|
|
/* 02984864 */ cpu->r[3] = cpu->r[31];
|
|
/* 02984868 */ _t16 = cpu->r[30] + 0x000000ECu;
|
|
/* 02984868 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 0298486C */ cpu->r[4] = 0x00000000u;
|
|
/* 02984870 */ Gambit_fn_02983EEC(cpu);
|
|
/* 02984874 */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 02984874 */ cpu->r[6] = rbrew_read16(cpu->mem, _t17);
|
|
/* 02984878 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x0000001Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298487C */ cpu->r[9] = cpu->r[0] ^ 0x00000001u;
|
|
/* 02984880 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02984884 */ _t18 = cpu->r[30] + 0x000000ECu;
|
|
/* 02984884 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[1]);
|
|
/* 02984888 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984888 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02984888 */ if (_t20) goto L_02984898; else goto L_0298488C;
|
|
L_0298488C: ; // 0x298488c
|
|
/* 0298488C */ _t21 = cpu->r[30] + 0x000000E4u;
|
|
/* 0298488C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 02984890 */ cpu->f[0] = cpu->f[1] + cpu->f[0];
|
|
/* 02984894 */ _t22 = cpu->r[30] + 0x000000ECu;
|
|
/* 02984894 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[0]);
|
|
L_02984898: ; // 0x2984898
|
|
/* 02984898 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298489C */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 0298489C */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029848A0 */ cpu->lr = cpu->r[0];
|
|
/* 029848A4 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 029848A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029848A8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029848AC */ return;
|
|
}
|
|
|
|
// fn_02984800 @ 0x2984800
|
|
void Gambit_fn_02984800(CPUState* cpu) {
|
|
uint32_t _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_02984800: ; // 0x2984800
|
|
/* 02984800 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02984800 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02984800 */ cpu->r[1] = _t0;
|
|
/* 02984804 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02984804 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02984808 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02984808 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298480C */ cpu->r[31] = cpu->r[4];
|
|
/* 02984810 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984810 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02984814 */ _t4 = cpu->r[31] + 0x00000030u;
|
|
/* 02984814 */ cpu->r[11] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02984818 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298481C */ cpu->r[30] = cpu->r[3];
|
|
/* 02984820 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02984820 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02984820 */ if (_t6) goto L_02984824; else goto L_02984898;
|
|
L_02984824: ; // 0x2984824
|
|
/* 02984824 */ cpu->r[3] = cpu->r[31];
|
|
/* 02984828 */ Gambit_fn_02984128(cpu);
|
|
/* 0298482C */ _t7 = cpu->r[30] + 0x000000E8u;
|
|
/* 0298482C */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t7);
|
|
/* 02984830 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02984834 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984834 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02984834 */ if (_t9) goto L_02984898; else goto L_02984838;
|
|
L_02984838: ; // 0x2984838
|
|
/* 02984838 */ _t10 = cpu->r[30] + 0x000000EAu;
|
|
/* 02984838 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t10);
|
|
/* 0298483C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02984840 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984840 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02984840 */ if (_t12) goto L_02984898; else goto L_02984844;
|
|
L_02984844: ; // 0x2984844
|
|
/* 02984844 */ _t13 = cpu->r[30] + 0x000000E8u;
|
|
/* 02984844 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02984848 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298484C */ cpu->r[3] = cpu->r[31];
|
|
/* 02984850 */ _t14 = cpu->r[12] + 0xFFFFEE20u;
|
|
/* 02984850 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 02984854 */ cpu->r[4] = 0x00000000u;
|
|
/* 02984858 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298485C */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 0298485C */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 02984860 */ Gambit_fn_02983FDC(cpu);
|
|
/* 02984864 */ cpu->r[3] = cpu->r[31];
|
|
/* 02984868 */ _t16 = cpu->r[30] + 0x000000ECu;
|
|
/* 02984868 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 0298486C */ cpu->r[4] = 0x00000000u;
|
|
/* 02984870 */ Gambit_fn_02983EEC(cpu);
|
|
/* 02984874 */ _t17 = cpu->r[30] + 0x00000000u;
|
|
/* 02984874 */ cpu->r[6] = rbrew_read16(cpu->mem, _t17);
|
|
/* 02984878 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x0000001Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298487C */ cpu->r[9] = cpu->r[0] ^ 0x00000001u;
|
|
/* 02984880 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02984884 */ _t18 = cpu->r[30] + 0x000000ECu;
|
|
/* 02984884 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[1]);
|
|
/* 02984888 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984888 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02984888 */ if (_t20) goto L_02984898; else goto L_0298488C;
|
|
L_0298488C: ; // 0x298488c
|
|
/* 0298488C */ _t21 = cpu->r[30] + 0x000000E4u;
|
|
/* 0298488C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 02984890 */ cpu->f[0] = cpu->f[1] + cpu->f[0];
|
|
/* 02984894 */ _t22 = cpu->r[30] + 0x000000ECu;
|
|
/* 02984894 */ rbrew_write_f32(cpu->mem, _t22, cpu->f[0]);
|
|
L_02984898: ; // 0x2984898
|
|
/* 02984898 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298489C */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 0298489C */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029848A0 */ cpu->lr = cpu->r[0];
|
|
/* 029848A4 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 029848A4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029848A8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029848AC */ return;
|
|
}
|
|
|
|
// fn_029848B0 @ 0x29848b0
|
|
void Gambit_fn_029848B0(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_029848B0: ; // 0x29848b0
|
|
/* 029848B0 */ _t0 = cpu->r[1] + 0xFFFFFFB8u;
|
|
/* 029848B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029848B0 */ cpu->r[1] = _t0;
|
|
/* 029848B4 */ /* nop */
|
|
/* 029848B8 */ cpu->r[0] = cpu->lr;
|
|
/* 029848BC */ _t1 = cpu->r[1] + 0x0000004Cu;
|
|
/* 029848BC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029848C0 */ cpu->r[25] = cpu->r[3];
|
|
/* 029848C4 */ _t2 = cpu->r[25] + 0x00000094u;
|
|
/* 029848C4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t2);
|
|
/* 029848C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029848CC */ cpu->r[26] = cpu->r[4];
|
|
/* 029848D0 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029848D0 */ _t4 = _t3 & 0x00000001u;
|
|
/* 029848D0 */ if (_t4) goto L_029848E8; else goto L_029848D4;
|
|
L_029848D4: ; // 0x29848d4
|
|
/* 029848D4 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 029848D4 */ cpu->r[10] = rbrew_read16(cpu->mem, _t5);
|
|
/* 029848D8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[10], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029848D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029848DC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029848DC */ _t7 = _t6 & 0x00000001u;
|
|
/* 029848DC */ if (_t7) goto L_029848E8; else goto L_029848E0;
|
|
L_029848E0: ; // 0x29848e0
|
|
/* 029848E0 */ cpu->r[4] = cpu->r[25];
|
|
/* 029848E4 */ Gambit_fn_029847FC(cpu);
|
|
L_029848E8: ; // 0x29848e8
|
|
/* 029848E8 */ _t8 = cpu->r[25] + 0x00000030u;
|
|
/* 029848E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029848EC */ _t9 = cpu->r[25] + 0x00000034u;
|
|
/* 029848EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029848F0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x0000001Cu);
|
|
/* 029848F4 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 029848F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 029848FC */ cpu->r[30] = cpu->r[31];
|
|
/* 02984900 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984900 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02984900 */ if (_t11) goto L_02984BE8; else goto L_02984904;
|
|
L_02984904: ; // 0x2984904
|
|
/* 02984904 */ cpu->r[24] = 0x00000001u;
|
|
/* 02984908 */ cpu->r[22] = 0x101D0000u;
|
|
/* 0298490C */ cpu->r[23] = 0x101D0000u;
|
|
L_02984910: ; // 0x2984910
|
|
/* 02984910 */ _t12 = cpu->r[31] + 0x00000000u;
|
|
/* 02984910 */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t12);
|
|
/* 02984914 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0xFFFFFFFFu);
|
|
/* 02984918 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984918 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02984918 */ if (_t14) goto L_02984BDC; else goto L_0298491C;
|
|
L_0298491C: ; // 0x298491c
|
|
/* 0298491C */ _t15 = cpu->r[31] + 0x00000002u;
|
|
/* 0298491C */ cpu->r[6] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t15);
|
|
/* 02984920 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0xFFFFFFFFu);
|
|
/* 02984924 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984924 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02984924 */ if (_t17) goto L_02984BDC; else goto L_02984928;
|
|
L_02984928: ; // 0x2984928
|
|
/* 02984928 */ _t18 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02984928 */ cpu->r[28] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t18);
|
|
/* 0298492C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0xFFFFFFFFu);
|
|
/* 02984930 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984930 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02984930 */ if (_t20) goto L_02984BDC; else goto L_02984934;
|
|
L_02984934: ; // 0x2984934
|
|
/* 02984934 */ cpu->r[3] = cpu->r[26];
|
|
/* 02984938 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298493C */ _t21 = cpu->r[31] + 0x00000008u;
|
|
/* 0298493C */ cpu->r[27] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02984940 */ Gambit_fn_0297FC7C(cpu);
|
|
/* 02984944 */ _t22 = cpu->r[26] + 0x0000001Cu;
|
|
/* 02984944 */ cpu->r[7] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02984948 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298494C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 02984950 */ _t23 = cpu->r[22] + 0xFFFFE218u;
|
|
/* 02984950 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02984954 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984954 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02984954 */ if (_t25) goto L_02984958; else goto L_02984964;
|
|
L_02984958: ; // 0x2984958
|
|
/* 02984958 */ _t26 = cpu->r[26] + 0x00000024u;
|
|
/* 02984958 */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298495C */ cpu->r[8] = rbrew_rlwinm(cpu->r[28], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02984960 */ _t27 = cpu->r[8] + cpu->r[9];
|
|
/* 02984960 */ cpu->r[4] = rbrew_read32(cpu->mem, _t27);
|
|
L_02984964: ; // 0x2984964
|
|
/* 02984964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02984968 */ _t28 = cpu->r[4] + 0x00000000u;
|
|
/* 02984968 */ cpu->r[28] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298496C */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298496C */ _t30 = _t29 & 0x00000001u;
|
|
/* 0298496C */ if (_t30) goto L_02984970; else goto L_02984980;
|
|
L_02984970: ; // 0x2984970
|
|
/* 02984970 */ cpu->r[11] = 0x10150000u;
|
|
/* 02984974 */ _t31 = cpu->r[22] + 0xFFFFE218u;
|
|
/* 02984974 */ rbrew_write32(cpu->mem, _t31, cpu->r[24]);
|
|
/* 02984978 */ cpu->r[11] = cpu->r[11] + 0xFFFFEDC8u;
|
|
/* 0298497C */ _t32 = cpu->r[23] + 0xFFFFEF88u;
|
|
/* 0298497C */ rbrew_write32(cpu->mem, _t32, cpu->r[11]);
|
|
L_02984980: ; // 0x2984980
|
|
/* 02984980 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02984984 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984984 */ _t34 = _t33 & 0x00000001u;
|
|
/* 02984984 */ if (_t34) goto L_029849A8; else goto L_02984988;
|
|
L_02984988: ; // 0x2984988
|
|
/* 02984988 */ _t35 = cpu->r[28] + 0x00000088u;
|
|
/* 02984988 */ cpu->r[12] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298498C */ _t36 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0298498C */ cpu->r[0] = rbrew_read32(cpu->mem, _t36);
|
|
/* 02984990 */ cpu->ctr = cpu->r[0];
|
|
/* 02984994 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984998 */ cpu->r[4] = cpu->r[23] + 0xFFFFEF88u;
|
|
/* 0298499C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029849A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029849A4 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029849A4 */ _t38 = _t37 & 0x00000001u;
|
|
/* 029849A4 */ if (_t38) goto L_029849A8; else goto L_029849AC;
|
|
L_029849A8: ; // 0x29849a8
|
|
/* 029849A8 */ cpu->r[28] = 0x00000000u;
|
|
L_029849AC: ; // 0x29849ac
|
|
/* 029849AC */ _t39 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029849AC */ cpu->r[6] = rbrew_read16(cpu->mem, _t39);
|
|
/* 029849B0 */ cpu->r[5] = rbrew_rlwinm(cpu->r[6], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029849B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 029849B4 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029849B4 */ _t41 = _t40 & 0x00000001u;
|
|
/* 029849B4 */ if (_t41) goto L_02984B5C; else goto L_029849B8;
|
|
L_029849B8: ; // 0x29849b8
|
|
/* 029849B8 */ _t42 = cpu->r[27] + 0x00000034u;
|
|
/* 029849B8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t42);
|
|
/* 029849BC */ _t43 = cpu->r[7] + 0x00000024u;
|
|
/* 029849BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 029849C0 */ cpu->ctr = cpu->r[0];
|
|
/* 029849C4 */ _t44 = cpu->r[28] + 0x00000094u;
|
|
/* 029849C4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t44);
|
|
/* 029849C8 */ cpu->r[3] = cpu->r[27];
|
|
/* 029849CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029849D0 */ _t45 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029849D0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t45);
|
|
/* 029849D4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000000u, 0x0000001Eu);
|
|
/* 029849D8 */ _t46 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029849D8 */ rbrew_write16(cpu->mem, _t46, (uint16_t)cpu->r[0]);
|
|
/* 029849DC */ _t47 = cpu->r[25] + 0x00000070u;
|
|
/* 029849DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 029849E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029849E4 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029849E4 */ _t49 = _t48 & 0x00000001u;
|
|
/* 029849E4 */ if (_t49) goto L_02984B5C; else goto L_029849E8;
|
|
L_029849E8: ; // 0x29849e8
|
|
/* 029849E8 */ _t50 = cpu->r[31] + 0x00000000u;
|
|
/* 029849E8 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t50);
|
|
/* 029849EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000003u);
|
|
/* 029849F0 */ _t51 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029849F0 */ _t52 = _t51 & 0x00000001u;
|
|
/* 029849F0 */ if (_t52) goto L_02984A3C; else goto L_029849F4;
|
|
L_029849F4: ; // 0x29849f4
|
|
/* 029849F4 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029849F4 */ _t54 = _t53 & 0x00000001u;
|
|
/* 029849F4 */ if (_t54) goto L_02984AB0; else goto L_029849F8;
|
|
L_029849F8: ; // 0x29849f8
|
|
/* 029849F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000005u);
|
|
/* 029849FC */ _t55 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029849FC */ _t56 = _t55 & 0x00000001u;
|
|
/* 029849FC */ if (_t56) goto L_02984A00; else goto L_02984B24;
|
|
L_02984A00: ; // 0x2984a00
|
|
/* 02984A00 */ _t57 = cpu->r[27] + 0x00000034u;
|
|
/* 02984A00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02984A04 */ _t58 = cpu->r[12] + 0x0000001Cu;
|
|
/* 02984A04 */ cpu->r[4] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02984A08 */ cpu->ctr = cpu->r[4];
|
|
/* 02984A0C */ cpu->r[3] = cpu->r[27];
|
|
/* 02984A10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984A14 */ _t59 = cpu->r[27] + 0x00000034u;
|
|
/* 02984A14 */ cpu->r[6] = rbrew_read32(cpu->mem, _t59);
|
|
/* 02984A18 */ _t60 = cpu->r[6] + 0x0000003Cu;
|
|
/* 02984A18 */ cpu->r[7] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02984A1C */ cpu->ctr = cpu->r[7];
|
|
/* 02984A20 */ cpu->r[3] = cpu->r[27];
|
|
/* 02984A24 */ cpu->r[4] = cpu->r[28] + 0x00000094u;
|
|
/* 02984A28 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984A2C */ _t61 = cpu->r[31] + 0x00000000u;
|
|
/* 02984A2C */ cpu->r[8] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t61);
|
|
/* 02984A30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000003u);
|
|
/* 02984A34 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984A34 */ _t63 = _t62 & 0x00000001u;
|
|
/* 02984A34 */ if (_t63) goto L_02984A38; else goto L_02984BDC;
|
|
L_02984A38: ; // 0x2984a38
|
|
/* 02984A38 */ goto L_02984B94;
|
|
L_02984A3C: ; // 0x2984a3c
|
|
/* 02984A3C */ cpu->r[0] = cpu->r[31] - cpu->r[30];
|
|
/* 02984A40 */ _t64 = cpu->r[3] + 0x00000000u;
|
|
/* 02984A40 */ cpu->r[11] = rbrew_read32(cpu->mem, _t64);
|
|
/* 02984A44 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 02984A48 */ cpu->r[0] = 0x24920000u;
|
|
/* 02984A4C */ _t65 = cpu->r[11] + 0x00000024u;
|
|
/* 02984A4C */ cpu->r[12] = rbrew_read32(cpu->mem, _t65);
|
|
/* 02984A50 */ cpu->r[0] = cpu->r[0] | 0x00004925u;
|
|
/* 02984A54 */ _t66 = cpu->r[31] + 0x00000000u;
|
|
/* 02984A54 */ cpu->r[8] = rbrew_read32(cpu->mem, _t66);
|
|
/* 02984A58 */ cpu->ctr = cpu->r[12];
|
|
/* 02984A5C */ /* nop */
|
|
/* 02984A60 */ cpu->r[4] = cpu->r[25];
|
|
/* 02984A64 */ _t67 = cpu->r[1] + 0x00000008u;
|
|
/* 02984A64 */ rbrew_write32(cpu->mem, _t67, cpu->r[8]);
|
|
/* 02984A68 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 02984A6C */ cpu->r[7] = cpu->r[27];
|
|
/* 02984A70 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984A74 */ _t68 = cpu->r[27] + 0x00000034u;
|
|
/* 02984A74 */ cpu->r[12] = rbrew_read32(cpu->mem, _t68);
|
|
/* 02984A78 */ _t69 = cpu->r[12] + 0x0000001Cu;
|
|
/* 02984A78 */ cpu->r[4] = rbrew_read32(cpu->mem, _t69);
|
|
/* 02984A7C */ cpu->ctr = cpu->r[4];
|
|
/* 02984A80 */ cpu->r[3] = cpu->r[27];
|
|
/* 02984A84 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984A88 */ _t70 = cpu->r[27] + 0x00000034u;
|
|
/* 02984A88 */ cpu->r[6] = rbrew_read32(cpu->mem, _t70);
|
|
/* 02984A8C */ _t71 = cpu->r[6] + 0x0000003Cu;
|
|
/* 02984A8C */ cpu->r[7] = rbrew_read32(cpu->mem, _t71);
|
|
/* 02984A90 */ cpu->ctr = cpu->r[7];
|
|
/* 02984A94 */ cpu->r[4] = cpu->r[28] + 0x00000094u;
|
|
/* 02984A98 */ cpu->r[3] = cpu->r[27];
|
|
/* 02984A9C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984AA0 */ _t72 = cpu->r[31] + 0x00000000u;
|
|
/* 02984AA0 */ cpu->r[8] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t72);
|
|
/* 02984AA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000003u);
|
|
/* 02984AA8 */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984AA8 */ _t74 = _t73 & 0x00000001u;
|
|
/* 02984AA8 */ if (_t74) goto L_02984AAC; else goto L_02984BDC;
|
|
L_02984AAC: ; // 0x2984aac
|
|
/* 02984AAC */ goto L_02984B94;
|
|
L_02984AB0: ; // 0x2984ab0
|
|
/* 02984AB0 */ cpu->r[10] = 0x24920000u;
|
|
/* 02984AB4 */ _t75 = cpu->r[3] + 0x00000000u;
|
|
/* 02984AB4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t75);
|
|
/* 02984AB8 */ cpu->r[0] = cpu->r[31] - cpu->r[30];
|
|
/* 02984ABC */ cpu->r[10] = cpu->r[10] + 0x00004925u;
|
|
/* 02984AC0 */ _t76 = cpu->r[31] + 0x00000000u;
|
|
/* 02984AC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t76);
|
|
/* 02984AC4 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 02984AC8 */ _t77 = cpu->r[12] + 0x0000002Cu;
|
|
/* 02984AC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02984ACC */ /* nop */
|
|
/* 02984AD0 */ cpu->ctr = cpu->r[0];
|
|
/* 02984AD4 */ _t78 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984AD4 */ rbrew_write32(cpu->mem, _t78, cpu->r[7]);
|
|
/* 02984AD8 */ cpu->r[4] = cpu->r[25];
|
|
/* 02984ADC */ cpu->r[7] = cpu->r[27];
|
|
/* 02984AE0 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984AE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984AE8 */ _t79 = cpu->r[27] + 0x00000034u;
|
|
/* 02984AE8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t79);
|
|
/* 02984AEC */ _t80 = cpu->r[12] + 0x0000001Cu;
|
|
/* 02984AEC */ cpu->r[4] = rbrew_read32(cpu->mem, _t80);
|
|
/* 02984AF0 */ cpu->ctr = cpu->r[4];
|
|
/* 02984AF4 */ cpu->r[3] = cpu->r[27];
|
|
/* 02984AF8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984AFC */ _t81 = cpu->r[27] + 0x00000034u;
|
|
/* 02984AFC */ cpu->r[6] = rbrew_read32(cpu->mem, _t81);
|
|
/* 02984B00 */ _t82 = cpu->r[6] + 0x0000003Cu;
|
|
/* 02984B00 */ cpu->r[7] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02984B04 */ cpu->ctr = cpu->r[7];
|
|
/* 02984B08 */ cpu->r[4] = cpu->r[28] + 0x00000094u;
|
|
/* 02984B0C */ cpu->r[3] = cpu->r[27];
|
|
/* 02984B10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984B14 */ _t83 = cpu->r[31] + 0x00000000u;
|
|
/* 02984B14 */ cpu->r[8] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t83);
|
|
/* 02984B18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000003u);
|
|
/* 02984B1C */ _t84 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984B1C */ _t85 = _t84 & 0x00000001u;
|
|
/* 02984B1C */ if (_t85) goto L_02984B20; else goto L_02984BDC;
|
|
L_02984B20: ; // 0x2984b20
|
|
/* 02984B20 */ goto L_02984B94;
|
|
L_02984B24: ; // 0x2984b24
|
|
/* 02984B24 */ cpu->r[0] = 0x24920000u;
|
|
/* 02984B28 */ _t86 = cpu->r[3] + 0x00000000u;
|
|
/* 02984B28 */ cpu->r[11] = rbrew_read32(cpu->mem, _t86);
|
|
/* 02984B2C */ cpu->r[8] = cpu->r[31] - cpu->r[30];
|
|
/* 02984B30 */ cpu->r[0] = cpu->r[0] | 0x00004925u;
|
|
/* 02984B34 */ _t87 = cpu->r[31] + 0x00000000u;
|
|
/* 02984B34 */ cpu->r[7] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02984B38 */ cpu->r[9] = rbrew_rlwinm(cpu->r[8], 0x0000001Eu, 0x00000002u, 0x0000001Fu);
|
|
/* 02984B3C */ _t88 = cpu->r[11] + 0x00000034u;
|
|
/* 02984B3C */ cpu->r[12] = rbrew_read32(cpu->mem, _t88);
|
|
/* 02984B40 */ /* nop */
|
|
/* 02984B44 */ cpu->ctr = cpu->r[12];
|
|
/* 02984B48 */ _t89 = cpu->r[1] + 0x00000010u;
|
|
/* 02984B48 */ rbrew_write32(cpu->mem, _t89, cpu->r[7]);
|
|
/* 02984B4C */ cpu->r[4] = cpu->r[25];
|
|
/* 02984B50 */ cpu->r[7] = cpu->r[27];
|
|
/* 02984B54 */ cpu->r[5] = cpu->r[1] + 0x00000010u;
|
|
/* 02984B58 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02984B5C: ; // 0x2984b5c
|
|
/* 02984B5C */ _t90 = cpu->r[27] + 0x00000034u;
|
|
/* 02984B5C */ cpu->r[12] = rbrew_read32(cpu->mem, _t90);
|
|
/* 02984B60 */ _t91 = cpu->r[12] + 0x0000001Cu;
|
|
/* 02984B60 */ cpu->r[4] = rbrew_read32(cpu->mem, _t91);
|
|
/* 02984B64 */ cpu->ctr = cpu->r[4];
|
|
/* 02984B68 */ cpu->r[3] = cpu->r[27];
|
|
/* 02984B6C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984B70 */ _t92 = cpu->r[27] + 0x00000034u;
|
|
/* 02984B70 */ cpu->r[6] = rbrew_read32(cpu->mem, _t92);
|
|
/* 02984B74 */ _t93 = cpu->r[6] + 0x0000003Cu;
|
|
/* 02984B74 */ cpu->r[7] = rbrew_read32(cpu->mem, _t93);
|
|
/* 02984B78 */ cpu->ctr = cpu->r[7];
|
|
/* 02984B7C */ cpu->r[3] = cpu->r[27];
|
|
/* 02984B80 */ cpu->r[4] = cpu->r[28] + 0x00000094u;
|
|
/* 02984B84 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984B88 */ _t94 = cpu->r[31] + 0x00000000u;
|
|
/* 02984B88 */ cpu->r[8] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t94);
|
|
/* 02984B8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000003u);
|
|
/* 02984B90 */ _t95 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984B90 */ _t96 = _t95 & 0x00000001u;
|
|
/* 02984B90 */ if (_t96) goto L_02984B94; else goto L_02984BDC;
|
|
L_02984B94: ; // 0x2984b94
|
|
/* 02984B94 */ _t97 = cpu->r[27] + 0x00000040u;
|
|
/* 02984B94 */ cpu->r[5] = rbrew_read16(cpu->mem, _t97);
|
|
/* 02984B98 */ cpu->r[21] = 0x00000000u;
|
|
/* 02984B9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], cpu->r[5]);
|
|
/* 02984BA0 */ cpu->r[20] = cpu->r[27] + 0x00000038u;
|
|
/* 02984BA4 */ _t98 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984BA4 */ _t99 = _t98 & 0x00000001u;
|
|
/* 02984BA4 */ if (_t99) goto L_02984BA8; else goto L_02984BDC;
|
|
L_02984BA8: ; // 0x2984ba8
|
|
/* 02984BA8 */ cpu->r[27] = 0x00000000u;
|
|
L_02984BAC: ; // 0x2984bac
|
|
/* 02984BAC */ _t100 = cpu->r[20] + 0x00000000u;
|
|
/* 02984BAC */ cpu->r[9] = rbrew_read32(cpu->mem, _t100);
|
|
/* 02984BB0 */ _t101 = cpu->r[9] + cpu->r[27];
|
|
/* 02984BB0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t101);
|
|
/* 02984BB4 */ cpu->r[4] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000011u, 0x0000001Fu);
|
|
/* 02984BB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00007FFFu);
|
|
/* 02984BBC */ _t102 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984BBC */ _t103 = _t102 & 0x00000001u;
|
|
/* 02984BBC */ if (_t103) goto L_02984BCC; else goto L_02984BC0;
|
|
L_02984BC0: ; // 0x2984bc0
|
|
/* 02984BC0 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984BC4 */ Gambit_fn_02991DA8(cpu);
|
|
/* 02984BC8 */ _t104 = cpu->r[20] + 0x00000008u;
|
|
/* 02984BC8 */ cpu->r[5] = rbrew_read16(cpu->mem, _t104);
|
|
L_02984BCC: ; // 0x2984bcc
|
|
/* 02984BCC */ cpu->r[21] = cpu->r[21] + 0x00000001u;
|
|
/* 02984BD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], cpu->r[5]);
|
|
/* 02984BD4 */ cpu->r[27] = cpu->r[27] + 0x00000004u;
|
|
/* 02984BD8 */ _t105 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02984BD8 */ _t106 = _t105 & 0x00000001u;
|
|
/* 02984BD8 */ if (_t106) goto L_02984BAC; else goto L_02984BDC;
|
|
L_02984BDC: ; // 0x2984bdc
|
|
/* 02984BDC */ cpu->r[31] = cpu->r[31] + 0x0000001Cu;
|
|
/* 02984BE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[29]);
|
|
/* 02984BE4 */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984BE4 */ _t108 = _t107 & 0x00000001u;
|
|
/* 02984BE4 */ if (_t108) goto L_02984BE8; else goto L_02984910;
|
|
L_02984BE8: ; // 0x2984be8
|
|
/* 02984BE8 */ /* nop */
|
|
/* 02984BEC */ _t109 = cpu->r[1] + 0x0000004Cu;
|
|
/* 02984BEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t109);
|
|
/* 02984BF0 */ cpu->lr = cpu->r[0];
|
|
/* 02984BF4 */ cpu->r[1] = cpu->r[1] + 0x00000048u;
|
|
/* 02984BF8 */ return;
|
|
}
|
|
|
|
// fn_02984BFC @ 0x2984bfc
|
|
void Gambit_fn_02984BFC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_02984BFC: ; // 0x2984bfc
|
|
/* 02984BFC */ cpu->r[0] = cpu->lr;
|
|
/* 02984C00 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02984C00 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02984C00 */ cpu->r[1] = _t0;
|
|
/* 02984C04 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984C04 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02984C08 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02984C08 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02984C0C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02984C0C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02984C10 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984C10 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02984C14 */ _t5 = cpu->r[3] + 0x00000074u;
|
|
/* 02984C14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02984C18 */ _t6 = cpu->r[3] + 0x0000007Cu;
|
|
/* 02984C18 */ cpu->r[29] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02984C1C */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02984C20 */ cpu->r[30] = cpu->r[29] + cpu->r[12];
|
|
/* 02984C24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 02984C28 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984C28 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02984C28 */ if (_t8) goto L_02984C4C; else goto L_02984C2C;
|
|
L_02984C2C: ; // 0x2984c2c
|
|
/* 02984C2C */ cpu->r[31] = 0x101D0000u;
|
|
L_02984C30: ; // 0x2984c30
|
|
/* 02984C30 */ _t9 = cpu->r[29] + 0x00000000u;
|
|
/* 02984C30 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02984C34 */ cpu->r[5] = 0x00000001u;
|
|
/* 02984C38 */ _t10 = cpu->r[31] + 0xFFFFA708u;
|
|
/* 02984C38 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02984C3C */ Gambit_fn_0299C09C(cpu);
|
|
/* 02984C40 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 02984C44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 02984C48 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984C48 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02984C48 */ if (_t12) goto L_02984C4C; else goto L_02984C30;
|
|
L_02984C4C: ; // 0x2984c4c
|
|
/* 02984C4C */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984C4C */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02984C50 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984C50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02984C54 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 02984C54 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02984C58 */ cpu->lr = cpu->r[0];
|
|
/* 02984C5C */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 02984C5C */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02984C60 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02984C64 */ return;
|
|
}
|
|
|
|
// fn_02984C00 @ 0x2984c00
|
|
void Gambit_fn_02984C00(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_02984C00: ; // 0x2984c00
|
|
/* 02984C00 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02984C00 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02984C00 */ cpu->r[1] = _t0;
|
|
/* 02984C04 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984C04 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02984C08 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02984C08 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02984C0C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02984C0C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02984C10 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984C10 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02984C14 */ _t5 = cpu->r[3] + 0x00000074u;
|
|
/* 02984C14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02984C18 */ _t6 = cpu->r[3] + 0x0000007Cu;
|
|
/* 02984C18 */ cpu->r[29] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02984C1C */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02984C20 */ cpu->r[30] = cpu->r[29] + cpu->r[12];
|
|
/* 02984C24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 02984C28 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984C28 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02984C28 */ if (_t8) goto L_02984C4C; else goto L_02984C2C;
|
|
L_02984C2C: ; // 0x2984c2c
|
|
/* 02984C2C */ cpu->r[31] = 0x101D0000u;
|
|
L_02984C30: ; // 0x2984c30
|
|
/* 02984C30 */ _t9 = cpu->r[29] + 0x00000000u;
|
|
/* 02984C30 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02984C34 */ cpu->r[5] = 0x00000001u;
|
|
/* 02984C38 */ _t10 = cpu->r[31] + 0xFFFFA708u;
|
|
/* 02984C38 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02984C3C */ Gambit_fn_0299C09C(cpu);
|
|
/* 02984C40 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 02984C44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 02984C48 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984C48 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02984C48 */ if (_t12) goto L_02984C4C; else goto L_02984C30;
|
|
L_02984C4C: ; // 0x2984c4c
|
|
/* 02984C4C */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984C4C */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02984C50 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984C50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02984C54 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 02984C54 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02984C58 */ cpu->lr = cpu->r[0];
|
|
/* 02984C5C */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 02984C5C */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02984C60 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02984C64 */ return;
|
|
}
|
|
|
|
// fn_02984C68 @ 0x2984c68
|
|
void Gambit_fn_02984C68(CPUState* cpu) {
|
|
uint32_t _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_02984C68: ; // 0x2984c68
|
|
/* 02984C68 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02984C68 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02984C68 */ cpu->r[1] = _t0;
|
|
/* 02984C6C */ cpu->r[0] = cpu->lr;
|
|
/* 02984C70 */ /* nop */
|
|
/* 02984C74 */ cpu->r[28] = cpu->r[3];
|
|
/* 02984C74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02984C78 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02984C78 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02984C7C */ cpu->r[29] = cpu->r[4];
|
|
/* 02984C80 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984C80 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02984C80 */ if (_t3) goto L_02984EF8; else goto L_02984C84;
|
|
L_02984C84: ; // 0x2984c84
|
|
/* 02984C84 */ cpu->r[11] = 0x10150000u;
|
|
/* 02984C88 */ _t4 = cpu->r[28] + 0x00000028u;
|
|
/* 02984C88 */ cpu->r[5] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02984C8C */ cpu->r[0] = 0x10150000u;
|
|
/* 02984C90 */ cpu->r[11] = cpu->r[11] + 0xFFFFEE44u;
|
|
/* 02984C94 */ cpu->r[26] = 0x101D0000u;
|
|
/* 02984C98 */ cpu->r[0] = cpu->r[0] + 0xFFFFEE5Cu;
|
|
/* 02984C9C */ _t5 = cpu->r[28] + 0x00000000u;
|
|
/* 02984C9C */ rbrew_write32(cpu->mem, _t5, cpu->r[11]);
|
|
/* 02984CA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02984CA4 */ cpu->r[27] = 0x00000000u;
|
|
/* 02984CA8 */ _t6 = cpu->r[28] + 0x00000004u;
|
|
/* 02984CA8 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 02984CAC */ _t7 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02984CAC */ _t8 = _t7 & 0x00000001u;
|
|
/* 02984CAC */ if (_t8) goto L_02984CB0; else goto L_02984D00;
|
|
L_02984CB0: ; // 0x2984cb0
|
|
/* 02984CB0 */ _t9 = cpu->r[28] + 0x0000002Cu;
|
|
/* 02984CB0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02984CB4 */ _t10 = cpu->r[4] + 0x0000003Cu;
|
|
/* 02984CB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02984CB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02984CBC */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984CBC */ _t12 = _t11 & 0x00000001u;
|
|
/* 02984CBC */ if (_t12) goto L_02984CCC; else goto L_02984CC0;
|
|
L_02984CC0: ; // 0x2984cc0
|
|
/* 02984CC0 */ _t13 = cpu->r[4] + 0x0000003Cu;
|
|
/* 02984CC0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02984CC4 */ Gambit_fn_02801BB0(cpu);
|
|
/* 02984CC8 */ _t14 = cpu->r[28] + 0x0000002Cu;
|
|
/* 02984CC8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
L_02984CCC: ; // 0x2984ccc
|
|
/* 02984CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02984CD0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984CD0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02984CD0 */ if (_t16) goto L_02984D00; else goto L_02984CD4;
|
|
L_02984CD4: ; // 0x2984cd4
|
|
/* 02984CD4 */ _t17 = cpu->r[28] + 0x00000028u;
|
|
/* 02984CD4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02984CD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02984CDC */ _t18 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 02984CDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02984CE0 */ Gambit_fn_02826B90(cpu);
|
|
/* 02984CE4 */ _t19 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02984CE4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02984CE8 */ _t20 = cpu->r[8] + 0x0000003Cu;
|
|
/* 02984CE8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02984CEC */ cpu->ctr = cpu->r[9];
|
|
/* 02984CF0 */ _t21 = cpu->r[28] + 0x0000002Cu;
|
|
/* 02984CF0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02984CF4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984CF8 */ _t22 = cpu->r[28] + 0x00000028u;
|
|
/* 02984CF8 */ rbrew_write32(cpu->mem, _t22, cpu->r[27]);
|
|
/* 02984CFC */ _t23 = cpu->r[28] + 0x0000002Cu;
|
|
/* 02984CFC */ rbrew_write32(cpu->mem, _t23, cpu->r[27]);
|
|
L_02984D00: ; // 0x2984d00
|
|
/* 02984D00 */ _t24 = cpu->r[28] + 0x00000030u;
|
|
/* 02984D00 */ cpu->r[10] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02984D04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02984D08 */ _t25 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02984D08 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02984D08 */ if (_t26) goto L_02984D0C; else goto L_02984D5C;
|
|
L_02984D0C: ; // 0x2984d0c
|
|
/* 02984D0C */ _t27 = cpu->r[28] + 0x00000034u;
|
|
/* 02984D0C */ cpu->r[4] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02984D10 */ _t28 = cpu->r[4] + 0x00000004u;
|
|
/* 02984D10 */ cpu->r[11] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02984D14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02984D18 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984D18 */ _t30 = _t29 & 0x00000001u;
|
|
/* 02984D18 */ if (_t30) goto L_02984D28; else goto L_02984D1C;
|
|
L_02984D1C: ; // 0x2984d1c
|
|
/* 02984D1C */ _t31 = cpu->r[4] + 0x00000004u;
|
|
/* 02984D1C */ cpu->r[3] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02984D20 */ Gambit_fn_02801BB0(cpu);
|
|
/* 02984D24 */ _t32 = cpu->r[28] + 0x00000034u;
|
|
/* 02984D24 */ cpu->r[4] = rbrew_read32(cpu->mem, _t32);
|
|
L_02984D28: ; // 0x2984d28
|
|
/* 02984D28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02984D2C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984D2C */ _t34 = _t33 & 0x00000001u;
|
|
/* 02984D2C */ if (_t34) goto L_02984D5C; else goto L_02984D30;
|
|
L_02984D30: ; // 0x2984d30
|
|
/* 02984D30 */ _t35 = cpu->r[28] + 0x00000030u;
|
|
/* 02984D30 */ cpu->r[9] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02984D34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02984D38 */ _t36 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 02984D38 */ cpu->r[3] = rbrew_read32(cpu->mem, _t36);
|
|
/* 02984D3C */ Gambit_fn_02826B90(cpu);
|
|
/* 02984D40 */ _t37 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02984D40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02984D44 */ _t38 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02984D44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02984D48 */ cpu->ctr = cpu->r[0];
|
|
/* 02984D4C */ _t39 = cpu->r[28] + 0x00000034u;
|
|
/* 02984D4C */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 02984D50 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984D54 */ _t40 = cpu->r[28] + 0x00000030u;
|
|
/* 02984D54 */ rbrew_write32(cpu->mem, _t40, cpu->r[27]);
|
|
/* 02984D58 */ _t41 = cpu->r[28] + 0x00000034u;
|
|
/* 02984D58 */ rbrew_write32(cpu->mem, _t41, cpu->r[27]);
|
|
L_02984D5C: ; // 0x2984d5c
|
|
/* 02984D5C */ cpu->r[3] = cpu->r[28] + 0x00000074u;
|
|
/* 02984D60 */ Gambit_fn_02802424(cpu);
|
|
/* 02984D64 */ _t42 = cpu->r[28] + 0x00000008u;
|
|
/* 02984D64 */ cpu->r[7] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02984D68 */ _t43 = cpu->r[28] + 0x0000000Cu;
|
|
/* 02984D68 */ cpu->r[4] = rbrew_read32(cpu->mem, _t43);
|
|
/* 02984D6C */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x0000000Cu);
|
|
/* 02984D70 */ cpu->r[30] = cpu->r[4] + cpu->r[5];
|
|
/* 02984D74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[30]);
|
|
/* 02984D78 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984D78 */ _t45 = _t44 & 0x00000001u;
|
|
/* 02984D78 */ if (_t45) goto L_02984DCC; else goto L_02984D7C;
|
|
L_02984D7C: ; // 0x2984d7c
|
|
/* 02984D7C */ cpu->r[27] = 0x00000000u;
|
|
/* 02984D80 */ cpu->r[31] = cpu->r[4];
|
|
L_02984D84: ; // 0x2984d84
|
|
/* 02984D84 */ _t46 = cpu->r[31] + 0x00000004u;
|
|
/* 02984D84 */ cpu->r[4] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02984D88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02984D8C */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984D8C */ _t48 = _t47 & 0x00000001u;
|
|
/* 02984D8C */ if (_t48) goto L_02984DBC; else goto L_02984D90;
|
|
L_02984D90: ; // 0x2984d90
|
|
/* 02984D90 */ _t49 = cpu->r[31] + 0x00000000u;
|
|
/* 02984D90 */ cpu->r[5] = rbrew_read32(cpu->mem, _t49);
|
|
/* 02984D94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02984D98 */ _t50 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 02984D98 */ cpu->r[3] = rbrew_read32(cpu->mem, _t50);
|
|
/* 02984D9C */ Gambit_fn_02826B90(cpu);
|
|
/* 02984DA0 */ _t51 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02984DA0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02984DA4 */ _t52 = cpu->r[6] + 0x0000003Cu;
|
|
/* 02984DA4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02984DA8 */ cpu->ctr = cpu->r[8];
|
|
/* 02984DAC */ _t53 = cpu->r[31] + 0x00000004u;
|
|
/* 02984DAC */ cpu->r[4] = rbrew_read32(cpu->mem, _t53);
|
|
/* 02984DB0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984DB4 */ _t54 = cpu->r[31] + 0x00000000u;
|
|
/* 02984DB4 */ rbrew_write32(cpu->mem, _t54, cpu->r[27]);
|
|
/* 02984DB8 */ _t55 = cpu->r[31] + 0x00000004u;
|
|
/* 02984DB8 */ rbrew_write32(cpu->mem, _t55, cpu->r[27]);
|
|
L_02984DBC: ; // 0x2984dbc
|
|
/* 02984DBC */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02984DC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02984DC4 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984DC4 */ _t57 = _t56 & 0x00000001u;
|
|
/* 02984DC4 */ if (_t57) goto L_02984DC8; else goto L_02984D84;
|
|
L_02984DC8: ; // 0x2984dc8
|
|
/* 02984DC8 */ _t58 = cpu->r[28] + 0x0000000Cu;
|
|
/* 02984DC8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t58);
|
|
L_02984DCC: ; // 0x2984dcc
|
|
/* 02984DCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02984DD0 */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984DD0 */ _t60 = _t59 & 0x00000001u;
|
|
/* 02984DD0 */ if (_t60) goto L_02984E00; else goto L_02984DD4;
|
|
L_02984DD4: ; // 0x2984dd4
|
|
/* 02984DD4 */ _t61 = cpu->r[28] + 0x00000008u;
|
|
/* 02984DD4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t61);
|
|
/* 02984DD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02984DDC */ _t62 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 02984DDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t62);
|
|
/* 02984DE0 */ Gambit_fn_02826B90(cpu);
|
|
/* 02984DE4 */ _t63 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02984DE4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02984DE8 */ _t64 = cpu->r[9] + 0x0000003Cu;
|
|
/* 02984DE8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t64);
|
|
/* 02984DEC */ cpu->ctr = cpu->r[10];
|
|
/* 02984DF0 */ _t65 = cpu->r[28] + 0x0000000Cu;
|
|
/* 02984DF0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t65);
|
|
/* 02984DF4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984DF8 */ _t66 = cpu->r[28] + 0x00000008u;
|
|
/* 02984DF8 */ rbrew_write32(cpu->mem, _t66, cpu->r[27]);
|
|
/* 02984DFC */ _t67 = cpu->r[28] + 0x0000000Cu;
|
|
/* 02984DFC */ rbrew_write32(cpu->mem, _t67, cpu->r[27]);
|
|
L_02984E00: ; // 0x2984e00
|
|
/* 02984E00 */ _t68 = cpu->r[28] + 0x00000038u;
|
|
/* 02984E00 */ cpu->r[6] = rbrew_read32(cpu->mem, _t68);
|
|
/* 02984E04 */ _t69 = cpu->r[28] + 0x0000003Cu;
|
|
/* 02984E04 */ cpu->r[4] = rbrew_read32(cpu->mem, _t69);
|
|
/* 02984E08 */ cpu->r[0] = rbrew_rlwinm(cpu->r[6], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02984E0C */ cpu->r[30] = cpu->r[4] + cpu->r[0];
|
|
/* 02984E10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[30]);
|
|
/* 02984E14 */ _t70 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984E14 */ _t71 = _t70 & 0x00000001u;
|
|
/* 02984E14 */ if (_t71) goto L_02984E6C; else goto L_02984E18;
|
|
L_02984E18: ; // 0x2984e18
|
|
/* 02984E18 */ cpu->r[27] = 0x00000000u;
|
|
/* 02984E1C */ cpu->r[31] = cpu->r[4];
|
|
L_02984E20: ; // 0x2984e20
|
|
/* 02984E20 */ _t72 = cpu->r[31] + 0x00000008u;
|
|
/* 02984E20 */ cpu->r[4] = rbrew_read32(cpu->mem, _t72);
|
|
/* 02984E24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02984E28 */ cpu->r[25] = cpu->r[31] + 0x00000004u;
|
|
/* 02984E2C */ _t73 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984E2C */ _t74 = _t73 & 0x00000001u;
|
|
/* 02984E2C */ if (_t74) goto L_02984E5C; else goto L_02984E30;
|
|
L_02984E30: ; // 0x2984e30
|
|
/* 02984E30 */ _t75 = cpu->r[25] + 0x00000000u;
|
|
/* 02984E30 */ cpu->r[6] = rbrew_read32(cpu->mem, _t75);
|
|
/* 02984E34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02984E38 */ _t76 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 02984E38 */ cpu->r[3] = rbrew_read32(cpu->mem, _t76);
|
|
/* 02984E3C */ Gambit_fn_02826B90(cpu);
|
|
/* 02984E40 */ _t77 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02984E40 */ cpu->r[12] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02984E44 */ _t78 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02984E44 */ cpu->r[11] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02984E48 */ cpu->ctr = cpu->r[11];
|
|
/* 02984E4C */ _t79 = cpu->r[25] + 0x00000004u;
|
|
/* 02984E4C */ cpu->r[4] = rbrew_read32(cpu->mem, _t79);
|
|
/* 02984E50 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984E54 */ _t80 = cpu->r[25] + 0x00000000u;
|
|
/* 02984E54 */ rbrew_write32(cpu->mem, _t80, cpu->r[27]);
|
|
/* 02984E58 */ _t81 = cpu->r[25] + 0x00000004u;
|
|
/* 02984E58 */ rbrew_write32(cpu->mem, _t81, cpu->r[27]);
|
|
L_02984E5C: ; // 0x2984e5c
|
|
/* 02984E5C */ cpu->r[31] = cpu->r[31] + 0x00000010u;
|
|
/* 02984E60 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02984E64 */ _t82 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984E64 */ _t83 = _t82 & 0x00000001u;
|
|
/* 02984E64 */ if (_t83) goto L_02984E68; else goto L_02984E20;
|
|
L_02984E68: ; // 0x2984e68
|
|
/* 02984E68 */ _t84 = cpu->r[28] + 0x0000003Cu;
|
|
/* 02984E68 */ cpu->r[4] = rbrew_read32(cpu->mem, _t84);
|
|
L_02984E6C: ; // 0x2984e6c
|
|
/* 02984E6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02984E70 */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984E70 */ _t86 = _t85 & 0x00000001u;
|
|
/* 02984E70 */ if (_t86) goto L_02984EA0; else goto L_02984E74;
|
|
L_02984E74: ; // 0x2984e74
|
|
/* 02984E74 */ _t87 = cpu->r[28] + 0x00000038u;
|
|
/* 02984E74 */ cpu->r[7] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02984E78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02984E7C */ _t88 = cpu->r[26] + 0xFFFF98F0u;
|
|
/* 02984E7C */ cpu->r[3] = rbrew_read32(cpu->mem, _t88);
|
|
/* 02984E80 */ Gambit_fn_02826B90(cpu);
|
|
/* 02984E84 */ _t89 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02984E84 */ cpu->r[12] = rbrew_read32(cpu->mem, _t89);
|
|
/* 02984E88 */ _t90 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02984E88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t90);
|
|
/* 02984E8C */ cpu->ctr = cpu->r[0];
|
|
/* 02984E90 */ _t91 = cpu->r[28] + 0x0000003Cu;
|
|
/* 02984E90 */ cpu->r[4] = rbrew_read32(cpu->mem, _t91);
|
|
/* 02984E94 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02984E98 */ _t92 = cpu->r[28] + 0x00000038u;
|
|
/* 02984E98 */ rbrew_write32(cpu->mem, _t92, cpu->r[27]);
|
|
/* 02984E9C */ _t93 = cpu->r[28] + 0x0000003Cu;
|
|
/* 02984E9C */ rbrew_write32(cpu->mem, _t93, cpu->r[27]);
|
|
L_02984EA0: ; // 0x2984ea0
|
|
/* 02984EA0 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984EA4 */ cpu->r[4] = cpu->r[28] + 0x00000040u;
|
|
/* 02984EA8 */ Gambit_fn_02988C38(cpu);
|
|
/* 02984EAC */ cpu->r[3] = cpu->r[28];
|
|
/* 02984EB0 */ cpu->r[4] = cpu->r[28] + 0x00000048u;
|
|
/* 02984EB4 */ Gambit_fn_02988D08(cpu);
|
|
/* 02984EB8 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984EBC */ cpu->r[4] = cpu->r[28] + 0x00000050u;
|
|
/* 02984EC0 */ Gambit_fn_02988DD8(cpu);
|
|
/* 02984EC4 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984EC8 */ cpu->r[4] = cpu->r[28] + 0x00000058u;
|
|
/* 02984ECC */ Gambit_fn_02988EA8(cpu);
|
|
/* 02984ED0 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984ED4 */ cpu->r[4] = cpu->r[28] + 0x00000060u;
|
|
/* 02984ED8 */ Gambit_fn_02988F78(cpu);
|
|
/* 02984EDC */ cpu->r[3] = cpu->r[28];
|
|
/* 02984EE0 */ cpu->r[4] = cpu->r[28] + 0x00000068u;
|
|
/* 02984EE4 */ Gambit_fn_02989048(cpu);
|
|
/* 02984EE8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02984EE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02984EEC */ _t94 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984EEC */ _t95 = _t94 & 0x00000001u;
|
|
/* 02984EEC */ if (_t95) goto L_02984EF8; else goto L_02984EF0;
|
|
L_02984EF0: ; // 0x2984ef0
|
|
/* 02984EF0 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984EF4 */ Gambit_fn_02801BB0(cpu);
|
|
L_02984EF8: ; // 0x2984ef8
|
|
/* 02984EF8 */ /* nop */
|
|
/* 02984EFC */ _t96 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02984EFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t96);
|
|
/* 02984F00 */ cpu->lr = cpu->r[0];
|
|
/* 02984F04 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02984F08 */ return;
|
|
}
|
|
|
|
// fn_02984F0C @ 0x2984f0c
|
|
void Gambit_fn_02984F0C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_02984F0C: ; // 0x2984f0c
|
|
/* 02984F0C */ cpu->r[11] = cpu->r[3];
|
|
/* 02984F10 */ _t0 = cpu->r[11] + 0x00000070u;
|
|
/* 02984F10 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02984F14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02984F18 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984F18 */ _t2 = _t1 & 0x00000001u;
|
|
/* 02984F18 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02984F18 */ goto L_02984F1C;
|
|
L_02984F1C: ; // 0x2984f1c
|
|
/* 02984F1C */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 02984F1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02984F20 */ _t4 = cpu->r[12] + 0x0000001Cu;
|
|
/* 02984F20 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02984F24 */ cpu->r[7] = cpu->r[4];
|
|
/* 02984F28 */ _t5 = cpu->r[11] + 0x0000008Eu;
|
|
/* 02984F28 */ cpu->r[6] = rbrew_read8(cpu->mem, _t5);
|
|
/* 02984F2C */ cpu->ctr = cpu->r[0];
|
|
/* 02984F30 */ _t6 = cpu->r[11] + 0x00000090u;
|
|
/* 02984F30 */ cpu->r[5] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02984F34 */ cpu->r[4] = cpu->r[11];
|
|
/* 02984F38 */ rbrew_dispatch(cpu, cpu->ctr); return;
|
|
}
|
|
|
|
// fn_02984F3C @ 0x2984f3c
|
|
void Gambit_fn_02984F3C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_02984F3C: ; // 0x2984f3c
|
|
/* 02984F3C */ cpu->r[0] = cpu->lr;
|
|
/* 02984F40 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 02984F40 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 02984F44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02984F48 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02984F48 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 02984F48 */ cpu->r[1] = _t1;
|
|
/* 02984F4C */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984F4C */ _t3 = _t2 & 0x00000001u;
|
|
/* 02984F4C */ if (_t3) goto L_02984F50; else goto L_02984F60;
|
|
L_02984F50: ; // 0x2984f50
|
|
/* 02984F50 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02984F54 */ Gambit_fn_02801A78(cpu);
|
|
/* 02984F58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02984F5C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984F5C */ _t5 = _t4 & 0x00000001u;
|
|
/* 02984F5C */ if (_t5) goto L_02984F74; else goto L_02984F60;
|
|
L_02984F60: ; // 0x2984f60
|
|
/* 02984F60 */ cpu->r[0] = 0x00000004u;
|
|
/* 02984F64 */ cpu->r[12] = 0x00000000u;
|
|
/* 02984F68 */ _t6 = cpu->r[3] + 0x00000004u;
|
|
/* 02984F68 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 02984F6C */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 02984F6C */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 02984F70 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 02984F70 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
L_02984F74: ; // 0x2984f74
|
|
/* 02984F74 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984F74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02984F78 */ cpu->lr = cpu->r[0];
|
|
/* 02984F7C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02984F80 */ return;
|
|
}
|
|
|
|
// fn_02984F48 @ 0x2984f48
|
|
void Gambit_fn_02984F48(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_02984F48: ; // 0x2984f48
|
|
/* 02984F48 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02984F48 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02984F48 */ cpu->r[1] = _t0;
|
|
/* 02984F4C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984F4C */ _t2 = _t1 & 0x00000001u;
|
|
/* 02984F4C */ if (_t2) goto L_02984F50; else goto L_02984F60;
|
|
L_02984F50: ; // 0x2984f50
|
|
/* 02984F50 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02984F54 */ Gambit_fn_02801A78(cpu);
|
|
/* 02984F58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02984F5C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984F5C */ _t4 = _t3 & 0x00000001u;
|
|
/* 02984F5C */ if (_t4) goto L_02984F74; else goto L_02984F60;
|
|
L_02984F60: ; // 0x2984f60
|
|
/* 02984F60 */ cpu->r[0] = 0x00000004u;
|
|
/* 02984F64 */ cpu->r[12] = 0x00000000u;
|
|
/* 02984F68 */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 02984F68 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02984F6C */ _t6 = cpu->r[3] + 0x00000008u;
|
|
/* 02984F6C */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 02984F70 */ _t7 = cpu->r[3] + 0x00000000u;
|
|
/* 02984F70 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
L_02984F74: ; // 0x2984f74
|
|
/* 02984F74 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984F74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02984F78 */ cpu->lr = cpu->r[0];
|
|
/* 02984F7C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02984F80 */ return;
|
|
}
|
|
|
|
// fn_02984F84 @ 0x2984f84
|
|
void Gambit_fn_02984F84(CPUState* cpu) {
|
|
uint32_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_02984F84: ; // 0x2984f84
|
|
/* 02984F84 */ cpu->r[0] = cpu->lr;
|
|
/* 02984F88 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02984F88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02984F88 */ cpu->r[1] = _t0;
|
|
/* 02984F8C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02984F8C */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 02984F90 */ cpu->r[28] = cpu->r[3];
|
|
/* 02984F90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02984F94 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02984F94 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02984F98 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984F98 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02984F9C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 02984F9C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02984FA0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984FA0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02984FA4 */ cpu->r[29] = cpu->r[4];
|
|
/* 02984FA8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FA8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02984FA8 */ if (_t7) goto L_02984FF0; else goto L_02984FAC;
|
|
L_02984FAC: ; // 0x2984fac
|
|
/* 02984FAC */ cpu->r[30] = cpu->r[28] + 0x0000000Cu;
|
|
/* 02984FB0 */ cpu->r[31] = cpu->r[28] + 0x000000E4u;
|
|
/* 02984FB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02984FB8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FB8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02984FB8 */ if (_t9) goto L_02984FE0; else goto L_02984FBC;
|
|
L_02984FBC: ; // 0x2984fbc
|
|
/* 02984FBC */ _t10 = cpu->r[30] + 0x0000003Cu;
|
|
/* 02984FBC */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02984FC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02984FC4 */ cpu->r[11] = cpu->r[30] + 0x0000000Cu;
|
|
/* 02984FC8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FC8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02984FC8 */ if (_t12) goto L_02984FD4; else goto L_02984FCC;
|
|
L_02984FCC: ; // 0x2984fcc
|
|
/* 02984FCC */ _t13 = cpu->r[11] + 0x00000030u;
|
|
/* 02984FCC */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02984FD0 */ Gambit_fn_02801BB4(cpu);
|
|
L_02984FD4: ; // 0x2984fd4
|
|
/* 02984FD4 */ cpu->r[30] = cpu->r[30] + 0x0000006Cu;
|
|
/* 02984FD8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02984FDC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FDC */ _t15 = _t14 & 0x00000001u;
|
|
/* 02984FDC */ if (_t15) goto L_02984FE0; else goto L_02984FBC;
|
|
L_02984FE0: ; // 0x2984fe0
|
|
/* 02984FE0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02984FE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02984FE4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FE4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02984FE4 */ if (_t17) goto L_02984FF0; else goto L_02984FE8;
|
|
L_02984FE8: ; // 0x2984fe8
|
|
/* 02984FE8 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984FEC */ Gambit_fn_02801BB0(cpu);
|
|
L_02984FF0: ; // 0x2984ff0
|
|
/* 02984FF0 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 02984FF0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02984FF4 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984FF4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02984FF8 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984FF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02984FFC */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 02984FFC */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02985000 */ cpu->lr = cpu->r[0];
|
|
/* 02985004 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 02985004 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02985008 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298500C */ return;
|
|
}
|
|
|
|
// fn_02984F88 @ 0x2984f88
|
|
void Gambit_fn_02984F88(CPUState* cpu) {
|
|
uint32_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_02984F88: ; // 0x2984f88
|
|
/* 02984F88 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02984F88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02984F88 */ cpu->r[1] = _t0;
|
|
/* 02984F8C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02984F8C */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 02984F90 */ cpu->r[28] = cpu->r[3];
|
|
/* 02984F90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02984F94 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02984F94 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02984F98 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984F98 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02984F9C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 02984F9C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02984FA0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984FA0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02984FA4 */ cpu->r[29] = cpu->r[4];
|
|
/* 02984FA8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FA8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02984FA8 */ if (_t7) goto L_02984FF0; else goto L_02984FAC;
|
|
L_02984FAC: ; // 0x2984fac
|
|
/* 02984FAC */ cpu->r[30] = cpu->r[28] + 0x0000000Cu;
|
|
/* 02984FB0 */ cpu->r[31] = cpu->r[28] + 0x000000E4u;
|
|
/* 02984FB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02984FB8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FB8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02984FB8 */ if (_t9) goto L_02984FE0; else goto L_02984FBC;
|
|
L_02984FBC: ; // 0x2984fbc
|
|
/* 02984FBC */ _t10 = cpu->r[30] + 0x0000003Cu;
|
|
/* 02984FBC */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02984FC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02984FC4 */ cpu->r[11] = cpu->r[30] + 0x0000000Cu;
|
|
/* 02984FC8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FC8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02984FC8 */ if (_t12) goto L_02984FD4; else goto L_02984FCC;
|
|
L_02984FCC: ; // 0x2984fcc
|
|
/* 02984FCC */ _t13 = cpu->r[11] + 0x00000030u;
|
|
/* 02984FCC */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02984FD0 */ Gambit_fn_02801BB4(cpu);
|
|
L_02984FD4: ; // 0x2984fd4
|
|
/* 02984FD4 */ cpu->r[30] = cpu->r[30] + 0x0000006Cu;
|
|
/* 02984FD8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02984FDC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FDC */ _t15 = _t14 & 0x00000001u;
|
|
/* 02984FDC */ if (_t15) goto L_02984FE0; else goto L_02984FBC;
|
|
L_02984FE0: ; // 0x2984fe0
|
|
/* 02984FE0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[29], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02984FE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02984FE4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02984FE4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02984FE4 */ if (_t17) goto L_02984FF0; else goto L_02984FE8;
|
|
L_02984FE8: ; // 0x2984fe8
|
|
/* 02984FE8 */ cpu->r[3] = cpu->r[28];
|
|
/* 02984FEC */ Gambit_fn_02801BB0(cpu);
|
|
L_02984FF0: ; // 0x2984ff0
|
|
/* 02984FF0 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 02984FF0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02984FF4 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02984FF4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02984FF8 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02984FF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02984FFC */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 02984FFC */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02985000 */ cpu->lr = cpu->r[0];
|
|
/* 02985004 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 02985004 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02985008 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298500C */ return;
|
|
}
|
|
|
|
// fn_02985010 @ 0x2985010
|
|
void Gambit_fn_02985010(CPUState* cpu) {
|
|
uint32_t _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_02985010: ; // 0x2985010
|
|
/* 02985010 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 02985010 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02985010 */ cpu->r[1] = _t0;
|
|
/* 02985014 */ /* nop */
|
|
/* 02985018 */ _t1 = cpu->r[1] + 0x00000028u;
|
|
/* 02985018 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298501C */ /* nop */
|
|
/* 02985020 */ _t2 = cpu->r[1] + 0x00000030u;
|
|
/* 02985020 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 02985024 */ cpu->r[0] = cpu->lr;
|
|
/* 02985028 */ _t3 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985028 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298502C */ cpu->r[24] = cpu->r[4];
|
|
/* 02985030 */ _t4 = cpu->r[24] + 0x00000000u;
|
|
/* 02985030 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02985034 */ cpu->r[30] = cpu->r[3];
|
|
/* 02985038 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298503C */ cpu->r[25] = cpu->r[5];
|
|
/* 02985040 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985040 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02985040 */ if (_t6) goto L_0298507C; else goto L_02985044;
|
|
L_02985044: ; // 0x2985044
|
|
/* 02985044 */ _t7 = cpu->r[24] + 0x00000004u;
|
|
/* 02985044 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02985048 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298504C */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298504C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298504C */ if (_t9) goto L_0298507C; else goto L_02985050;
|
|
L_02985050: ; // 0x2985050
|
|
/* 02985050 */ _t10 = cpu->r[24] + 0x00000008u;
|
|
/* 02985050 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02985054 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02985058 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985058 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02985058 */ if (_t12) goto L_0298507C; else goto L_0298505C;
|
|
L_0298505C: ; // 0x298505c
|
|
/* 0298505C */ cpu->r[3] = cpu->r[24];
|
|
/* 02985060 */ Gambit_fn_02C53FC4(cpu);
|
|
/* 02985064 */ cpu->r[31] = cpu->r[30] + 0x000000E4u;
|
|
/* 02985068 */ cpu->r[30] = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298506C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02985070 */ cpu->r[26] = cpu->r[3];
|
|
/* 02985074 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985074 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02985074 */ if (_t14) goto L_029850F8; else goto L_02985078;
|
|
L_02985078: ; // 0x2985078
|
|
/* 02985078 */ goto L_02985090;
|
|
L_0298507C: ; // 0x298507c
|
|
/* 0298507C */ cpu->r[31] = cpu->r[30] + 0x000000E4u;
|
|
/* 02985080 */ cpu->r[30] = cpu->r[30] + 0x0000000Cu;
|
|
/* 02985084 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 02985088 */ cpu->r[26] = 0x00000000u;
|
|
/* 0298508C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298508C */ _t16 = _t15 & 0x00000001u;
|
|
/* 0298508C */ if (_t16) goto L_029850F8; else goto L_02985090;
|
|
L_02985090: ; // 0x2985090
|
|
/* 02985090 */ cpu->r[10] = 0x10150000u;
|
|
/* 02985094 */ cpu->r[28] = 0x02C50000u;
|
|
/* 02985098 */ cpu->r[27] = 0xFFFFFFFFu;
|
|
/* 0298509C */ _t17 = cpu->r[10] + 0xFFFFEE20u;
|
|
/* 0298509C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 029850A0 */ cpu->r[28] = cpu->r[28] + 0xFFFFF0A4u;
|
|
L_029850A4: ; // 0x29850a4
|
|
/* 029850A4 */ _t18 = cpu->r[30] + 0x00000068u;
|
|
/* 029850A4 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[31]);
|
|
/* 029850A8 */ cpu->r[29] = cpu->r[30] + 0x0000000Cu;
|
|
/* 029850AC */ _t19 = cpu->r[30] + 0x00000000u;
|
|
/* 029850AC */ rbrew_write16(cpu->mem, _t19, (uint16_t)cpu->r[27]);
|
|
/* 029850B0 */ _t20 = cpu->r[30] + 0x00000002u;
|
|
/* 029850B0 */ rbrew_write16(cpu->mem, _t20, (uint16_t)cpu->r[27]);
|
|
/* 029850B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 029850B8 */ _t21 = cpu->r[30] + 0x00000008u;
|
|
/* 029850B8 */ rbrew_write_f32(cpu->mem, _t21, cpu->f[31]);
|
|
/* 029850BC */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029850BC */ _t23 = _t22 & 0x00000001u;
|
|
/* 029850BC */ if (_t23) goto L_029850E4; else goto L_029850C0;
|
|
L_029850C0: ; // 0x29850c0
|
|
/* 029850C0 */ cpu->r[5] = 0x00000040u;
|
|
/* 029850C4 */ cpu->r[4] = cpu->r[25];
|
|
/* 029850C8 */ cpu->r[3] = cpu->r[26];
|
|
/* 029850CC */ Gambit_fn_02801ADC(cpu);
|
|
/* 029850D0 */ cpu->r[5] = cpu->r[3];
|
|
/* 029850D4 */ cpu->r[6] = cpu->r[26];
|
|
/* 029850D8 */ cpu->r[4] = cpu->r[24];
|
|
/* 029850DC */ cpu->r[3] = cpu->r[29];
|
|
/* 029850E0 */ Gambit_fn_02C53E8C(cpu);
|
|
L_029850E4: ; // 0x29850e4
|
|
/* 029850E4 */ _t24 = cpu->r[29] + 0x00000000u;
|
|
/* 029850E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029850E8 */ cpu->r[30] = cpu->r[30] + 0x0000006Cu;
|
|
/* 029850EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[31]);
|
|
/* 029850F0 */ _t25 = cpu->r[12] + 0x00000010u;
|
|
/* 029850F0 */ rbrew_write32(cpu->mem, _t25, cpu->r[28]);
|
|
/* 029850F4 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029850F4 */ _t27 = _t26 & 0x00000001u;
|
|
/* 029850F4 */ if (_t27) goto L_029850F8; else goto L_029850A4;
|
|
L_029850F8: ; // 0x29850f8
|
|
/* 029850F8 */ /* nop */
|
|
/* 029850FC */ _t28 = cpu->r[1] + 0x00000030u;
|
|
/* 029850FC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 02985100 */ _t29 = cpu->r[1] + 0x00000028u;
|
|
/* 02985100 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t29);
|
|
/* 02985104 */ _t30 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985104 */ _t31 = _t30 & 0x00000001u;
|
|
/* 02985104 */ if (_t31) goto L_02985108; // else: addr-0 trap, fall-through
|
|
L_02985108: ; // 0x2985108
|
|
/* 02985108 */ _t32 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985108 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298510C */ cpu->lr = cpu->r[0];
|
|
/* 02985110 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 02985114 */ return;
|
|
}
|
|
|
|
// fn_02985118 @ 0x2985118
|
|
void Gambit_fn_02985118(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_02985118: ; // 0x2985118
|
|
/* 02985118 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298511C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298511C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298511C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298511C */ goto L_02985120;
|
|
L_02985120: ; // 0x2985120
|
|
/* 02985120 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02985120 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02985124 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985124 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02985124 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02985124 */ goto L_02985128;
|
|
L_02985128: ; // 0x2985128
|
|
/* 02985128 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298512C @ 0x298512c
|
|
void Gambit_fn_0298512C(CPUState* cpu) {
|
|
L_0298512C: ; // 0x298512c
|
|
/* 0298512C */ return;
|
|
}
|
|
|
|
// fn_02985130 @ 0x2985130
|
|
void Gambit_fn_02985130(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_02985130: ; // 0x2985130
|
|
/* 02985130 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 02985130 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02985134 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 02985134 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02985138 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 0298513C */ cpu->r[11] = 0x10110000u;
|
|
/* 02985140 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 02985140 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 02985144 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 02985144 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 02985148 */ return;
|
|
}
|
|
|
|
// fn_0298514C @ 0x298514c
|
|
void Gambit_fn_0298514C(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_0298514C: ; // 0x298514c
|
|
/* 0298514C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985150 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985150 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02985150 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02985150 */ goto L_02985154;
|
|
L_02985154: ; // 0x2985154
|
|
/* 02985154 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02985154 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02985158 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985158 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02985158 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02985158 */ goto L_0298515C;
|
|
L_0298515C: ; // 0x298515c
|
|
/* 0298515C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_02985160 @ 0x2985160
|
|
void Gambit_fn_02985160(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_02985160: ; // 0x2985160
|
|
/* 02985160 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985164 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985164 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02985164 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02985164 */ goto L_02985168;
|
|
L_02985168: ; // 0x2985168
|
|
/* 02985168 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02985168 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298516C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298516C */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298516C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298516C */ goto L_02985170;
|
|
L_02985170: ; // 0x2985170
|
|
/* 02985170 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_02985174 @ 0x2985174
|
|
void Gambit_fn_02985174(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_02985174: ; // 0x2985174
|
|
/* 02985174 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985178 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985178 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02985178 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02985178 */ goto L_0298517C;
|
|
L_0298517C: ; // 0x298517c
|
|
/* 0298517C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298517C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02985180 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985180 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02985180 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02985180 */ goto L_02985184;
|
|
L_02985184: ; // 0x2985184
|
|
/* 02985184 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_02985188 @ 0x2985188
|
|
void Gambit_fn_02985188(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_02985188: ; // 0x2985188
|
|
/* 02985188 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298518C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298518C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298518C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298518C */ goto L_02985190;
|
|
L_02985190: ; // 0x2985190
|
|
/* 02985190 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02985190 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02985194 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985194 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02985194 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02985194 */ goto L_02985198;
|
|
L_02985198: ; // 0x2985198
|
|
/* 02985198 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298519C @ 0x298519c
|
|
void Gambit_fn_0298519C(CPUState* cpu) {
|
|
uint32_t _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_0298519C: ; // 0x298519c
|
|
/* 0298519C */ cpu->r[0] = cpu->lr;
|
|
/* 029851A0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029851A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029851A0 */ cpu->r[1] = _t0;
|
|
/* 029851A4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029851A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029851A8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029851A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 029851AC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029851AC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029851B0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 029851B0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 029851B4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029851B4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029851B8 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 029851B8 */ cpu->r[28] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029851BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029851C0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029851C0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029851C0 */ if (_t8) goto L_02985254; else goto L_029851C4;
|
|
L_029851C4: ; // 0x29851c4
|
|
/* 029851C4 */ cpu->r[30] = cpu->r[3] + 0x0000002Cu;
|
|
/* 029851C8 */ cpu->r[31] = cpu->r[4] + 0x00000018u;
|
|
/* 029851CC */ cpu->r[29] = 0x00000000u;
|
|
L_029851D0: ; // 0x29851d0
|
|
/* 029851D0 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 029851D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029851D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 029851D8 */ cpu->r[8] = 0x00000000u;
|
|
/* 029851DC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029851DC */ _t11 = _t10 & 0x00000001u;
|
|
/* 029851DC */ if (_t11) goto L_029851E4; else goto L_029851E0;
|
|
L_029851E0: ; // 0x29851e0
|
|
/* 029851E0 */ cpu->r[8] = cpu->r[30] + cpu->r[10];
|
|
L_029851E4: ; // 0x29851e4
|
|
/* 029851E4 */ cpu->r[12] = cpu->r[8] + cpu->r[29];
|
|
/* 029851E8 */ _t12 = cpu->r[12] + 0x00000010u;
|
|
/* 029851E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029851EC */ cpu->r[9] = cpu->r[12] + 0x00000010u;
|
|
/* 029851F0 */ cpu->r[4] = 0x00000000u;
|
|
/* 029851F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 029851F8 */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 029851F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029851FC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029851FC */ _t15 = _t14 & 0x00000001u;
|
|
/* 029851FC */ if (_t15) goto L_02985208; else goto L_02985200;
|
|
L_02985200: ; // 0x2985200
|
|
/* 02985200 */ cpu->r[7] = cpu->r[9] + cpu->r[11];
|
|
/* 02985204 */ cpu->r[4] = cpu->r[7] + 0xFFFFFFFCu;
|
|
L_02985208: ; // 0x2985208
|
|
/* 02985208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298520C */ cpu->r[3] = 0x00000000u;
|
|
/* 02985210 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985210 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02985210 */ if (_t17) goto L_02985218; else goto L_02985214;
|
|
L_02985214: ; // 0x2985214
|
|
/* 02985214 */ cpu->r[3] = cpu->r[31] + cpu->r[0];
|
|
L_02985218: ; // 0x2985218
|
|
/* 02985218 */ Gambit_fn_02C605E4(cpu);
|
|
/* 0298521C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985220 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985220 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02985220 */ if (_t19) goto L_02985248; else goto L_02985224;
|
|
L_02985224: ; // 0x2985224
|
|
/* 02985224 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 02985224 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02985228 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02985228 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298522C */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298522C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02985230 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 02985230 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02985234 */ cpu->lr = cpu->r[0];
|
|
/* 02985238 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 02985238 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298523C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02985240 */ cpu->r[3] = 0x00000001u;
|
|
/* 02985244 */ return;
|
|
L_02985248: ; // 0x2985248
|
|
/* 02985248 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 02985248 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298524C */ cpu->r[29] = cpu->r[29] + 0x00000020u;
|
|
/* 02985250 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985250 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02985250 */ if (_t26) goto L_02985254; else goto L_029851D0;
|
|
L_02985254: ; // 0x2985254
|
|
/* 02985254 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 02985254 */ cpu->r[28] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02985258 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02985258 */ cpu->r[29] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298525C */ _t29 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298525C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02985260 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 02985260 */ cpu->r[30] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02985264 */ cpu->lr = cpu->r[0];
|
|
/* 02985268 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 02985268 */ cpu->r[31] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298526C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02985270 */ cpu->r[3] = 0x00000000u;
|
|
/* 02985274 */ return;
|
|
}
|
|
|
|
// fn_029851A0 @ 0x29851a0
|
|
void Gambit_fn_029851A0(CPUState* cpu) {
|
|
uint32_t _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_029851A0: ; // 0x29851a0
|
|
/* 029851A0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029851A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029851A0 */ cpu->r[1] = _t0;
|
|
/* 029851A4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029851A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029851A8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029851A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 029851AC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029851AC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029851B0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 029851B0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 029851B4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029851B4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029851B8 */ _t6 = cpu->r[3] + 0x00000014u;
|
|
/* 029851B8 */ cpu->r[28] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029851BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029851C0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029851C0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029851C0 */ if (_t8) goto L_02985254; else goto L_029851C4;
|
|
L_029851C4: ; // 0x29851c4
|
|
/* 029851C4 */ cpu->r[30] = cpu->r[3] + 0x0000002Cu;
|
|
/* 029851C8 */ cpu->r[31] = cpu->r[4] + 0x00000018u;
|
|
/* 029851CC */ cpu->r[29] = 0x00000000u;
|
|
L_029851D0: ; // 0x29851d0
|
|
/* 029851D0 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 029851D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029851D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 029851D8 */ cpu->r[8] = 0x00000000u;
|
|
/* 029851DC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029851DC */ _t11 = _t10 & 0x00000001u;
|
|
/* 029851DC */ if (_t11) goto L_029851E4; else goto L_029851E0;
|
|
L_029851E0: ; // 0x29851e0
|
|
/* 029851E0 */ cpu->r[8] = cpu->r[30] + cpu->r[10];
|
|
L_029851E4: ; // 0x29851e4
|
|
/* 029851E4 */ cpu->r[12] = cpu->r[8] + cpu->r[29];
|
|
/* 029851E8 */ _t12 = cpu->r[12] + 0x00000010u;
|
|
/* 029851E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029851EC */ cpu->r[9] = cpu->r[12] + 0x00000010u;
|
|
/* 029851F0 */ cpu->r[4] = 0x00000000u;
|
|
/* 029851F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 029851F8 */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 029851F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029851FC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029851FC */ _t15 = _t14 & 0x00000001u;
|
|
/* 029851FC */ if (_t15) goto L_02985208; else goto L_02985200;
|
|
L_02985200: ; // 0x2985200
|
|
/* 02985200 */ cpu->r[7] = cpu->r[9] + cpu->r[11];
|
|
/* 02985204 */ cpu->r[4] = cpu->r[7] + 0xFFFFFFFCu;
|
|
L_02985208: ; // 0x2985208
|
|
/* 02985208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298520C */ cpu->r[3] = 0x00000000u;
|
|
/* 02985210 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985210 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02985210 */ if (_t17) goto L_02985218; else goto L_02985214;
|
|
L_02985214: ; // 0x2985214
|
|
/* 02985214 */ cpu->r[3] = cpu->r[31] + cpu->r[0];
|
|
L_02985218: ; // 0x2985218
|
|
/* 02985218 */ Gambit_fn_02C605E4(cpu);
|
|
/* 0298521C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985220 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985220 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02985220 */ if (_t19) goto L_02985248; else goto L_02985224;
|
|
L_02985224: ; // 0x2985224
|
|
/* 02985224 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 02985224 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02985228 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02985228 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298522C */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298522C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02985230 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 02985230 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02985234 */ cpu->lr = cpu->r[0];
|
|
/* 02985238 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 02985238 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298523C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02985240 */ cpu->r[3] = 0x00000001u;
|
|
/* 02985244 */ return;
|
|
L_02985248: ; // 0x2985248
|
|
/* 02985248 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 02985248 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298524C */ cpu->r[29] = cpu->r[29] + 0x00000020u;
|
|
/* 02985250 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985250 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02985250 */ if (_t26) goto L_02985254; else goto L_029851D0;
|
|
L_02985254: ; // 0x2985254
|
|
/* 02985254 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 02985254 */ cpu->r[28] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02985258 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02985258 */ cpu->r[29] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298525C */ _t29 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298525C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02985260 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 02985260 */ cpu->r[30] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02985264 */ cpu->lr = cpu->r[0];
|
|
/* 02985268 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 02985268 */ cpu->r[31] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298526C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02985270 */ cpu->r[3] = 0x00000000u;
|
|
/* 02985274 */ return;
|
|
}
|
|
|
|
// fn_02985278 @ 0x2985278
|
|
void Gambit_fn_02985278(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189;
|
|
|
|
L_02985278: ; // 0x2985278
|
|
/* 02985278 */ _t0 = cpu->r[1] + 0xFFFFFB78u;
|
|
/* 02985278 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02985278 */ cpu->r[1] = _t0;
|
|
/* 0298527C */ /* nop */
|
|
/* 02985280 */ cpu->r[0] = cpu->lr;
|
|
/* 02985284 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985284 */ rbrew_write32(cpu->mem, _t1, cpu->r[3]);
|
|
/* 02985288 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02985288 */ rbrew_write32(cpu->mem, _t2, cpu->r[5]);
|
|
/* 0298528C */ _t3 = cpu->r[1] + 0x0000048Cu;
|
|
/* 0298528C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02985290 */ cpu->r[29] = cpu->r[6];
|
|
/* 02985294 */ cpu->r[31] = cpu->r[7];
|
|
/* 02985294 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02985298 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02985298 */ rbrew_write32(cpu->mem, _t4, cpu->r[10]);
|
|
/* 0298529C */ cpu->r[30] = cpu->r[9];
|
|
/* 029852A0 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 029852A0 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 029852A4 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029852A4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029852A4 */ if (_t7) goto L_029852C0; else goto L_029852A8;
|
|
L_029852A8: ; // 0x29852a8
|
|
/* 029852A8 */ /* nop */
|
|
/* 029852AC */ _t8 = cpu->r[1] + 0x0000048Cu;
|
|
/* 029852AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029852B0 */ cpu->lr = cpu->r[0];
|
|
/* 029852B4 */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 029852B8 */ cpu->r[3] = 0x00000000u;
|
|
/* 029852BC */ return;
|
|
L_029852C0: ; // 0x29852c0
|
|
/* 029852C0 */ cpu->r[0] = 0x00000000u;
|
|
/* 029852C4 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029852C4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029852C8 */ cpu->r[4] = 0x101D0000u;
|
|
/* 029852CC */ _t10 = cpu->r[1] + 0x00000020u;
|
|
/* 029852CC */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 029852D0 */ cpu->r[4] = cpu->r[4] + 0xFFFF98F0u;
|
|
/* 029852D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029852D8 */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 029852D8 */ rbrew_write32(cpu->mem, _t11, cpu->r[4]);
|
|
/* 029852DC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029852DC */ _t13 = _t12 & 0x00000001u;
|
|
/* 029852DC */ if (_t13) goto L_029852E0; else goto L_029852EC;
|
|
L_029852E0: ; // 0x29852e0
|
|
/* 029852E0 */ _t14 = cpu->r[1] + 0x00000024u;
|
|
/* 029852E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029852E4 */ _t15 = cpu->r[12] + 0x00000000u;
|
|
/* 029852E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 029852E8 */ Gambit_fn_02826F20(cpu);
|
|
L_029852EC: ; // 0x29852ec
|
|
/* 029852EC */ _t16 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029852EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029852F0 */ _t17 = cpu->r[8] + 0x00000034u;
|
|
/* 029852F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029852F4 */ cpu->ctr = cpu->r[0];
|
|
/* 029852F8 */ cpu->r[5] = 0x00000004u;
|
|
/* 029852FC */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 02985300 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02985304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02985308 */ cpu->r[12] = cpu->r[31];
|
|
/* 0298530C */ cpu->r[11] = 0x00000000u;
|
|
/* 02985310 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02985310 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02985310 */ if (_t19) goto L_02985318; else goto L_02985314;
|
|
L_02985314: ; // 0x2985314
|
|
/* 02985314 */ cpu->r[12] = 0x00000001u;
|
|
L_02985318: ; // 0x2985318
|
|
/* 02985318 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000000Cu);
|
|
/* 0298531C */ cpu->ctr = cpu->r[12];
|
|
/* 02985320 */ cpu->r[6] = 0x00000000u;
|
|
L_02985324: ; // 0x2985324
|
|
/* 02985324 */ cpu->r[8] = cpu->r[3] + cpu->r[11];
|
|
/* 02985324 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02985328 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985328 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02985328 */ if (_t21) goto L_02985334; else goto L_0298532C;
|
|
L_0298532C: ; // 0x298532c
|
|
/* 0298532C */ _t22 = cpu->r[8] + 0x00000008u;
|
|
/* 0298532C */ rbrew_write32(cpu->mem, _t22, cpu->r[6]);
|
|
/* 02985330 */ _t23 = cpu->r[8] + 0x00000004u;
|
|
/* 02985330 */ rbrew_write32(cpu->mem, _t23, cpu->r[6]);
|
|
L_02985334: ; // 0x2985334
|
|
/* 02985334 */ cpu->r[11] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02985338 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02985338 */ _t24 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02985338 */ _t25 = _t24 >> (0x00000002u & 31u);
|
|
/* 02985338 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02985338 */ if (_t26) goto L_02985324; else goto L_0298533C;
|
|
L_0298533C: ; // 0x298533c
|
|
/* 0298533C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985340 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985340 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02985340 */ if (_t28) goto L_02985350; else goto L_02985344;
|
|
L_02985344: ; // 0x2985344
|
|
/* 02985344 */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 02985344 */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02985348 */ _t30 = cpu->r[11] + 0x00000000u;
|
|
/* 02985348 */ rbrew_write32(cpu->mem, _t30, cpu->r[31]);
|
|
/* 0298534C */ _t31 = cpu->r[11] + 0x00000004u;
|
|
/* 0298534C */ rbrew_write32(cpu->mem, _t31, cpu->r[3]);
|
|
L_02985350: ; // 0x2985350
|
|
/* 02985350 */ _t32 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985350 */ cpu->r[7] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02985354 */ _t33 = cpu->r[7] + 0x00000074u;
|
|
/* 02985354 */ cpu->r[9] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02985358 */ _t34 = cpu->r[7] + 0x0000007Cu;
|
|
/* 02985358 */ cpu->r[14] = rbrew_read32(cpu->mem, _t34);
|
|
/* 0298535C */ cpu->r[6] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02985360 */ cpu->r[0] = cpu->r[14] + cpu->r[6];
|
|
/* 02985364 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[0]);
|
|
/* 02985368 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02985368 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
/* 0298536C */ cpu->r[0] = 0x00000000u;
|
|
/* 02985370 */ _t36 = cpu->r[1] + 0x00000018u;
|
|
/* 02985370 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 02985374 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985374 */ _t38 = _t37 & 0x00000001u;
|
|
/* 02985374 */ if (_t38) goto L_02985748; else goto L_02985378;
|
|
L_02985378: ; // 0x2985378
|
|
/* 02985378 */ _t39 = cpu->r[14] + 0x00000000u;
|
|
/* 02985378 */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 0298537C */ _t40 = cpu->r[4] + 0x0000001Cu;
|
|
/* 0298537C */ cpu->r[12] = rbrew_read32(cpu->mem, _t40);
|
|
/* 02985380 */ _t41 = cpu->r[12] + 0x00000056u;
|
|
/* 02985380 */ cpu->r[9] = rbrew_read16(cpu->mem, _t41);
|
|
/* 02985384 */ cpu->r[6] = 0x00000000u;
|
|
/* 02985388 */ _t42 = cpu->r[1] + 0x00000034u;
|
|
/* 02985388 */ rbrew_write32(cpu->mem, _t42, cpu->r[9]);
|
|
/* 0298538C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02985390 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 02985390 */ rbrew_write32(cpu->mem, _t43, cpu->r[6]);
|
|
/* 02985394 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985394 */ _t45 = _t44 & 0x00000001u;
|
|
/* 02985394 */ if (_t45) goto L_02985738; else goto L_02985398;
|
|
L_02985398: ; // 0x2985398
|
|
/* 02985398 */ _t46 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02985398 */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298539C */ cpu->r[5] = 0x00000000u;
|
|
/* 029853A0 */ cpu->r[28] = cpu->r[29] + 0x0000000Cu;
|
|
/* 029853A4 */ _t47 = cpu->r[1] + 0x00000038u;
|
|
/* 029853A4 */ rbrew_write32(cpu->mem, _t47, cpu->r[5]);
|
|
/* 029853A8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029853AC */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 029853AC */ rbrew_write32(cpu->mem, _t48, cpu->r[5]);
|
|
/* 029853B0 */ cpu->r[27] = cpu->r[29] + 0x00000008u;
|
|
/* 029853B4 */ cpu->r[26] = cpu->r[29] + 0x00000004u;
|
|
/* 029853B8 */ _t49 = cpu->r[1] + 0x00000030u;
|
|
/* 029853B8 */ rbrew_write32(cpu->mem, _t49, cpu->r[11]);
|
|
/* 029853BC */ _t50 = cpu->r[4] + 0x0000001Cu;
|
|
/* 029853BC */ cpu->r[9] = rbrew_read32(cpu->mem, _t50);
|
|
/* 029853C0 */ cpu->r[31] = 0x00000000u;
|
|
/* 029853C4 */ _t51 = cpu->r[9] + 0x0000002Cu;
|
|
/* 029853C4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t51);
|
|
/* 029853C8 */ cpu->r[10] = cpu->r[31];
|
|
/* 029853CC */ cpu->r[6] = cpu->r[9] + 0x0000002Cu;
|
|
/* 029853D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 029853D4 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 029853D4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t52);
|
|
/* 029853D8 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029853D8 */ _t54 = _t53 & 0x00000001u;
|
|
/* 029853D8 */ if (_t54) goto L_029853E0; else goto L_029853DC;
|
|
L_029853DC: ; // 0x29853dc
|
|
/* 029853DC */ cpu->r[10] = cpu->r[6] + cpu->r[4];
|
|
L_029853E0: ; // 0x29853e0
|
|
/* 029853E0 */ cpu->r[4] = rbrew_rlwinm(cpu->r[11], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 029853E4 */ cpu->r[6] = cpu->r[10] + cpu->r[4];
|
|
/* 029853E8 */ _t55 = cpu->r[6] + 0x00000024u;
|
|
/* 029853E8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t55);
|
|
/* 029853EC */ cpu->r[10] = 0x00000000u;
|
|
/* 029853F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 029853F4 */ cpu->r[11] = cpu->r[6] + 0x00000024u;
|
|
/* 029853F8 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029853F8 */ _t57 = _t56 & 0x00000001u;
|
|
/* 029853F8 */ if (_t57) goto L_02985400; else goto L_029853FC;
|
|
L_029853FC: ; // 0x29853fc
|
|
/* 029853FC */ cpu->r[10] = cpu->r[11] + cpu->r[5];
|
|
L_02985400: ; // 0x2985400
|
|
/* 02985400 */ cpu->r[20] = cpu->r[10];
|
|
/* 02985404 */ _t58 = cpu->r[26] + 0x00000000u;
|
|
/* 02985404 */ cpu->r[10] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02985408 */ _t59 = cpu->r[20] + 0x00000014u;
|
|
/* 02985408 */ cpu->r[0] = rbrew_read16(cpu->mem, _t59);
|
|
/* 0298540C */ cpu->r[12] = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985410 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 02985414 */ _t60 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985414 */ rbrew_write32(cpu->mem, _t60, cpu->r[0]);
|
|
/* 02985418 */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985418 */ _t62 = _t61 & 0x00000001u;
|
|
/* 02985418 */ if (_t62) goto L_02985420; else goto L_0298541C;
|
|
L_0298541C: ; // 0x298541c
|
|
/* 0298541C */ cpu->r[12] = cpu->r[26];
|
|
L_02985420: ; // 0x2985420
|
|
/* 02985420 */ _t63 = cpu->r[12] + 0x00000000u;
|
|
/* 02985420 */ cpu->r[12] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02985424 */ _t64 = cpu->r[26] + 0x00000000u;
|
|
/* 02985424 */ rbrew_write32(cpu->mem, _t64, cpu->r[12]);
|
|
/* 02985428 */ _t65 = cpu->r[20] + 0x00000018u;
|
|
/* 02985428 */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 0298542C */ _t66 = cpu->r[27] + 0x00000000u;
|
|
/* 0298542C */ cpu->r[5] = rbrew_read32(cpu->mem, _t66);
|
|
/* 02985430 */ _t67 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985430 */ rbrew_write32(cpu->mem, _t67, cpu->r[0]);
|
|
/* 02985434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[0]);
|
|
/* 02985438 */ cpu->r[4] = cpu->r[1] + 0x0000003Cu;
|
|
/* 0298543C */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298543C */ _t69 = _t68 & 0x00000001u;
|
|
/* 0298543C */ if (_t69) goto L_02985444; else goto L_02985440;
|
|
L_02985440: ; // 0x2985440
|
|
/* 02985440 */ cpu->r[4] = cpu->r[27];
|
|
L_02985444: ; // 0x2985444
|
|
/* 02985444 */ _t70 = cpu->r[4] + 0x00000000u;
|
|
/* 02985444 */ cpu->r[0] = rbrew_read32(cpu->mem, _t70);
|
|
/* 02985448 */ _t71 = cpu->r[27] + 0x00000000u;
|
|
/* 02985448 */ rbrew_write32(cpu->mem, _t71, cpu->r[0]);
|
|
/* 0298544C */ _t72 = cpu->r[20] + 0x0000001Cu;
|
|
/* 0298544C */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 02985450 */ _t73 = cpu->r[28] + 0x00000000u;
|
|
/* 02985450 */ cpu->r[6] = rbrew_read32(cpu->mem, _t73);
|
|
/* 02985454 */ _t74 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985454 */ rbrew_write32(cpu->mem, _t74, cpu->r[0]);
|
|
/* 02985458 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[0]);
|
|
/* 0298545C */ cpu->r[5] = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985460 */ _t75 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985460 */ _t76 = _t75 & 0x00000001u;
|
|
/* 02985460 */ if (_t76) goto L_02985468; else goto L_02985464;
|
|
L_02985464: ; // 0x2985464
|
|
/* 02985464 */ cpu->r[5] = cpu->r[28];
|
|
L_02985468: ; // 0x2985468
|
|
/* 02985468 */ _t77 = cpu->r[5] + 0x00000000u;
|
|
/* 02985468 */ cpu->r[8] = rbrew_read32(cpu->mem, _t77);
|
|
/* 0298546C */ _t78 = cpu->r[1] + 0x00000028u;
|
|
/* 0298546C */ cpu->r[7] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02985470 */ _t79 = cpu->r[28] + 0x00000000u;
|
|
/* 02985470 */ rbrew_write32(cpu->mem, _t79, cpu->r[8]);
|
|
/* 02985474 */ _t80 = cpu->r[20] + 0x0000000Cu;
|
|
/* 02985474 */ cpu->r[5] = rbrew_read32(cpu->mem, _t80);
|
|
/* 02985478 */ _t81 = cpu->r[29] + 0x00000018u;
|
|
/* 02985478 */ rbrew_write32(cpu->mem, _t81, cpu->r[7]);
|
|
/* 0298547C */ cpu->r[10] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02985480 */ _t82 = cpu->r[29] + 0x00000014u;
|
|
/* 02985480 */ rbrew_write32(cpu->mem, _t82, cpu->r[7]);
|
|
/* 02985484 */ cpu->r[6] = cpu->r[10] ^ 0x00000001u;
|
|
/* 02985488 */ _t83 = cpu->r[29] + 0x00000011u;
|
|
/* 02985488 */ cpu->r[10] = rbrew_read8(cpu->mem, _t83);
|
|
/* 0298548C */ _t84 = cpu->r[1] + 0x00000014u;
|
|
/* 0298548C */ cpu->r[9] = rbrew_read32(cpu->mem, _t84);
|
|
/* 02985490 */ cpu->r[10] = cpu->r[10] | cpu->r[6];
|
|
/* 02985494 */ _t85 = cpu->r[1] + 0x00000018u;
|
|
/* 02985494 */ cpu->r[0] = rbrew_read32(cpu->mem, _t85);
|
|
/* 02985498 */ _t86 = cpu->r[29] + 0x00000011u;
|
|
/* 02985498 */ rbrew_write8(cpu->mem, _t86, (uint8_t)cpu->r[10]);
|
|
/* 0298549C */ _t87 = cpu->r[9] + 0x00000000u;
|
|
/* 0298549C */ cpu->r[12] = rbrew_read32(cpu->mem, _t87);
|
|
/* 029854A0 */ cpu->r[7] = cpu->r[0];
|
|
/* 029854A4 */ _t88 = cpu->r[9] + 0x00000004u;
|
|
/* 029854A4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t88);
|
|
/* 029854A8 */ cpu->r[5] = cpu->r[7] + 0x00000001u;
|
|
/* 029854AC */ _t89 = cpu->r[14] + 0x00000000u;
|
|
/* 029854AC */ cpu->r[7] = rbrew_read32(cpu->mem, _t89);
|
|
/* 029854B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 029854B4 */ _t90 = cpu->r[1] + 0x00000018u;
|
|
/* 029854B4 */ rbrew_write32(cpu->mem, _t90, cpu->r[5]);
|
|
/* 029854B8 */ _t91 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029854B8 */ _t92 = _t91 & 0x00000001u;
|
|
/* 029854B8 */ if (_t92) goto L_029854BC; else goto L_029854FC;
|
|
L_029854BC: ; // 0x29854bc
|
|
/* 029854BC */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 029854C0 */ _t93 = cpu->r[1] + 0x00000030u;
|
|
/* 029854C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t93);
|
|
/* 029854C4 */ cpu->r[7] = cpu->r[7] + cpu->r[0];
|
|
/* 029854C8 */ _t94 = cpu->r[1] + 0x00000038u;
|
|
/* 029854C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t94);
|
|
/* 029854CC */ cpu->r[21] = cpu->r[8] + cpu->r[4];
|
|
/* 029854D0 */ _t95 = cpu->r[7] + 0x0000002Cu;
|
|
/* 029854D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t95);
|
|
/* 029854D4 */ _t96 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029854D4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t96);
|
|
/* 029854D8 */ cpu->r[8] = cpu->r[10] + cpu->r[0];
|
|
/* 029854DC */ _t97 = cpu->r[21] + 0x00000000u;
|
|
/* 029854DC */ rbrew_write32(cpu->mem, _t97, cpu->r[8]);
|
|
/* 029854E0 */ _t98 = cpu->r[9] + 0x00000008u;
|
|
/* 029854E0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t98);
|
|
/* 029854E4 */ _t99 = cpu->r[9] + 0x0000000Cu;
|
|
/* 029854E4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t99);
|
|
/* 029854E8 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000000Cu);
|
|
/* 029854EC */ cpu->r[9] = cpu->r[11] + cpu->r[0];
|
|
/* 029854F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[9]);
|
|
/* 029854F4 */ _t100 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029854F4 */ _t101 = _t100 & 0x00000001u;
|
|
/* 029854F4 */ if (_t101) goto L_0298562C; else goto L_029854F8;
|
|
L_029854F8: ; // 0x29854f8
|
|
/* 029854F8 */ goto L_02985534;
|
|
L_029854FC: ; // 0x29854fc
|
|
/* 029854FC */ _t102 = cpu->r[1] + 0x00000030u;
|
|
/* 029854FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t102);
|
|
/* 02985500 */ cpu->r[7] = cpu->r[7] + cpu->r[0];
|
|
/* 02985504 */ _t103 = cpu->r[1] + 0x00000038u;
|
|
/* 02985504 */ cpu->r[0] = rbrew_read32(cpu->mem, _t103);
|
|
/* 02985508 */ _t104 = cpu->r[7] + 0x0000002Cu;
|
|
/* 02985508 */ cpu->r[10] = rbrew_read32(cpu->mem, _t104);
|
|
/* 0298550C */ cpu->r[21] = cpu->r[8];
|
|
/* 02985510 */ _t105 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985510 */ cpu->r[9] = rbrew_read32(cpu->mem, _t105);
|
|
/* 02985514 */ cpu->r[8] = cpu->r[10] + cpu->r[0];
|
|
/* 02985518 */ _t106 = cpu->r[21] + 0x00000000u;
|
|
/* 02985518 */ rbrew_write32(cpu->mem, _t106, cpu->r[8]);
|
|
/* 0298551C */ _t107 = cpu->r[9] + 0x00000008u;
|
|
/* 0298551C */ cpu->r[6] = rbrew_read32(cpu->mem, _t107);
|
|
/* 02985520 */ _t108 = cpu->r[9] + 0x0000000Cu;
|
|
/* 02985520 */ cpu->r[11] = rbrew_read32(cpu->mem, _t108);
|
|
/* 02985524 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000000Cu);
|
|
/* 02985528 */ cpu->r[9] = cpu->r[11] + cpu->r[0];
|
|
/* 0298552C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[9]);
|
|
/* 02985530 */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985530 */ _t110 = _t109 & 0x00000001u;
|
|
/* 02985530 */ if (_t110) goto L_0298562C; else goto L_02985534;
|
|
L_02985534: ; // 0x2985534
|
|
/* 02985534 */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02985538 */ cpu->r[8] = cpu->r[1] + 0x00000040u;
|
|
/* 0298553C */ cpu->r[17] = cpu->r[11];
|
|
/* 02985540 */ cpu->r[18] = cpu->r[11];
|
|
/* 02985544 */ cpu->r[22] = 0x101D0000u;
|
|
/* 02985548 */ cpu->r[23] = cpu->r[9];
|
|
/* 0298554C */ cpu->r[19] = cpu->r[8] + cpu->r[6];
|
|
/* 02985550 */ cpu->r[24] = 0x101D0000u;
|
|
/* 02985554 */ cpu->r[25] = 0x00000001u;
|
|
L_02985558: ; // 0x2985558
|
|
/* 02985558 */ cpu->r[0] = 0xAAAA0000u;
|
|
/* 0298555C */ cpu->r[10] = cpu->r[17] - cpu->r[18];
|
|
/* 02985560 */ cpu->r[0] = cpu->r[0] | 0x0000AAABu;
|
|
/* 02985564 */ /* nop */
|
|
/* 02985568 */ cpu->r[15] = rbrew_rlwinm(cpu->r[15], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 0298556C */ cpu->r[16] = cpu->r[15];
|
|
/* 02985570 */ cpu->r[3] = cpu->r[30];
|
|
/* 02985574 */ cpu->r[4] = cpu->r[16];
|
|
/* 02985578 */ Gambit_fn_0297FC7C(cpu);
|
|
/* 0298557C */ _t111 = cpu->r[30] + 0x0000001Cu;
|
|
/* 0298557C */ cpu->r[5] = rbrew_read32(cpu->mem, _t111);
|
|
/* 02985580 */ cpu->r[7] = 0x00000000u;
|
|
/* 02985584 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[16], cpu->r[5]);
|
|
/* 02985588 */ _t112 = cpu->r[24] + 0xFFFFE218u;
|
|
/* 02985588 */ cpu->r[9] = rbrew_read32(cpu->mem, _t112);
|
|
/* 0298558C */ _t113 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298558C */ _t114 = _t113 & 0x00000001u;
|
|
/* 0298558C */ if (_t114) goto L_02985590; else goto L_0298559C;
|
|
L_02985590: ; // 0x2985590
|
|
/* 02985590 */ _t115 = cpu->r[30] + 0x00000024u;
|
|
/* 02985590 */ cpu->r[8] = rbrew_read32(cpu->mem, _t115);
|
|
/* 02985594 */ cpu->r[7] = rbrew_rlwinm(cpu->r[16], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02985598 */ _t116 = cpu->r[7] + cpu->r[8];
|
|
/* 02985598 */ cpu->r[7] = rbrew_read32(cpu->mem, _t116);
|
|
L_0298559C: ; // 0x298559c
|
|
/* 0298559C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 029855A0 */ _t117 = cpu->r[7] + 0x00000000u;
|
|
/* 029855A0 */ cpu->r[16] = rbrew_read32(cpu->mem, _t117);
|
|
/* 029855A4 */ _t118 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029855A4 */ _t119 = _t118 & 0x00000001u;
|
|
/* 029855A4 */ if (_t119) goto L_029855A8; else goto L_029855B8;
|
|
L_029855A8: ; // 0x29855a8
|
|
/* 029855A8 */ cpu->r[10] = 0x10150000u;
|
|
/* 029855AC */ _t120 = cpu->r[24] + 0xFFFFE218u;
|
|
/* 029855AC */ rbrew_write32(cpu->mem, _t120, cpu->r[25]);
|
|
/* 029855B0 */ cpu->r[10] = cpu->r[10] + 0xFFFFEDC8u;
|
|
/* 029855B4 */ _t121 = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 029855B4 */ rbrew_write32(cpu->mem, _t121, cpu->r[10]);
|
|
L_029855B8: ; // 0x29855b8
|
|
/* 029855B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[16], 0x00000000u);
|
|
/* 029855BC */ _t122 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029855BC */ _t123 = _t122 & 0x00000001u;
|
|
/* 029855BC */ if (_t123) goto L_029855EC; else goto L_029855C0;
|
|
L_029855C0: ; // 0x29855c0
|
|
/* 029855C0 */ _t124 = cpu->r[16] + 0x00000088u;
|
|
/* 029855C0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t124);
|
|
/* 029855C4 */ _t125 = cpu->r[11] + 0x0000000Cu;
|
|
/* 029855C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t125);
|
|
/* 029855C8 */ cpu->ctr = cpu->r[0];
|
|
/* 029855CC */ cpu->r[3] = cpu->r[16];
|
|
/* 029855D0 */ cpu->r[4] = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 029855D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029855D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029855DC */ _t126 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029855DC */ _t127 = _t126 & 0x00000001u;
|
|
/* 029855DC */ if (_t127) goto L_029855EC; else goto L_029855E0;
|
|
L_029855E0: ; // 0x29855e0
|
|
/* 029855E0 */ cpu->r[12] = cpu->r[16];
|
|
/* 029855E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029855E4 */ _t128 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029855E4 */ _t129 = _t128 & 0x00000001u;
|
|
/* 029855E4 */ if (_t129) goto L_029855E8; else goto L_02985600;
|
|
L_029855E8: ; // 0x29855e8
|
|
/* 029855E8 */ goto L_02985620;
|
|
L_029855EC: ; // 0x29855ec
|
|
/* 029855EC */ cpu->r[17] = cpu->r[17] + 0x0000000Cu;
|
|
/* 029855F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[23]);
|
|
/* 029855F4 */ cpu->r[12] = 0x00000000u;
|
|
/* 029855F8 */ _t130 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029855F8 */ _t131 = _t130 & 0x00000001u;
|
|
/* 029855F8 */ if (_t131) goto L_029855FC; else goto L_02985558;
|
|
L_029855FC: ; // 0x29855fc
|
|
/* 029855FC */ goto L_0298562C;
|
|
L_02985600: ; // 0x2985600
|
|
/* 02985600 */ _t132 = cpu->r[12] + 0x00000094u;
|
|
/* 02985600 */ cpu->r[4] = rbrew_read32(cpu->mem, _t132);
|
|
/* 02985604 */ cpu->r[3] = cpu->r[20];
|
|
/* 02985608 */ Gambit_fn_0298519C(cpu);
|
|
/* 0298560C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985610 */ _t133 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985610 */ _t134 = _t133 & 0x00000001u;
|
|
/* 02985610 */ if (_t134) goto L_02985620; else goto L_02985614;
|
|
L_02985614: ; // 0x2985614
|
|
/* 02985614 */ _t135 = cpu->r[19] + 0x00000000u;
|
|
/* 02985614 */ rbrew_write32(cpu->mem, _t135, cpu->r[15]);
|
|
/* 02985618 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 0298561C */ cpu->r[19] = cpu->r[19] + 0x00000004u;
|
|
L_02985620: ; // 0x2985620
|
|
/* 02985620 */ cpu->r[17] = cpu->r[17] + 0x0000000Cu;
|
|
/* 02985624 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[23]);
|
|
/* 02985628 */ _t136 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985628 */ _t137 = _t136 & 0x00000001u;
|
|
/* 02985628 */ if (_t137) goto L_0298562C; else goto L_02985558;
|
|
L_0298562C: ; // 0x298562c
|
|
/* 0298562C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02985630 */ _t138 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02985630 */ _t139 = _t138 & 0x00000001u;
|
|
/* 02985630 */ if (_t139) goto L_02985634; else goto L_029856E8;
|
|
L_02985634: ; // 0x2985634
|
|
/* 02985634 */ _t140 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02985634 */ cpu->r[3] = rbrew_read32(cpu->mem, _t140);
|
|
/* 02985638 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298563C */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298563C */ _t142 = _t141 & 0x00000001u;
|
|
/* 0298563C */ if (_t142) goto L_02985640; else goto L_0298564C;
|
|
L_02985640: ; // 0x2985640
|
|
/* 02985640 */ _t143 = cpu->r[1] + 0x00000024u;
|
|
/* 02985640 */ cpu->r[7] = rbrew_read32(cpu->mem, _t143);
|
|
/* 02985644 */ _t144 = cpu->r[7] + 0x00000000u;
|
|
/* 02985644 */ cpu->r[3] = rbrew_read32(cpu->mem, _t144);
|
|
/* 02985648 */ Gambit_fn_02826F20(cpu);
|
|
L_0298564C: ; // 0x298564c
|
|
/* 0298564C */ _t145 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298564C */ cpu->r[8] = rbrew_read32(cpu->mem, _t145);
|
|
/* 02985650 */ _t146 = cpu->r[8] + 0x00000034u;
|
|
/* 02985650 */ cpu->r[0] = rbrew_read32(cpu->mem, _t146);
|
|
/* 02985654 */ cpu->ctr = cpu->r[0];
|
|
/* 02985658 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298565C */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02985660 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02985664 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02985668 */ cpu->r[0] = cpu->r[31];
|
|
/* 0298566C */ _t147 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298566C */ _t148 = _t147 & 0x00000001u;
|
|
/* 0298566C */ if (_t148) goto L_02985674; else goto L_02985670;
|
|
L_02985670: ; // 0x2985670
|
|
/* 02985670 */ cpu->r[0] = 0x00000001u;
|
|
L_02985674: ; // 0x2985674
|
|
/* 02985674 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985678 */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985678 */ _t150 = _t149 & 0x00000001u;
|
|
/* 02985678 */ if (_t150) goto L_0298567C; else goto L_0298569C;
|
|
L_0298567C: ; // 0x298567c
|
|
/* 0298567C */ _t151 = cpu->r[21] + 0x00000004u;
|
|
/* 0298567C */ cpu->r[0] = rbrew_read32(cpu->mem, _t151);
|
|
/* 02985680 */ _t152 = cpu->r[21] + 0x00000008u;
|
|
/* 02985680 */ cpu->r[3] = rbrew_read32(cpu->mem, _t152);
|
|
/* 02985684 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02985688 */ cpu->r[7] = cpu->r[3];
|
|
/* 0298568C */ cpu->r[0] = cpu->r[3] + cpu->r[12];
|
|
/* 02985690 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 02985694 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985694 */ _t154 = _t153 & 0x00000001u;
|
|
/* 02985694 */ if (_t154) goto L_029856D8; else goto L_02985698;
|
|
L_02985698: ; // 0x2985698
|
|
/* 02985698 */ goto L_029856B8;
|
|
L_0298569C: ; // 0x298569c
|
|
/* 0298569C */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 029856A0 */ cpu->r[7] = cpu->r[3];
|
|
/* 029856A4 */ cpu->r[0] = cpu->r[3] + cpu->r[12];
|
|
/* 029856A8 */ _t155 = cpu->r[21] + 0x00000004u;
|
|
/* 029856A8 */ rbrew_write32(cpu->mem, _t155, cpu->r[31]);
|
|
/* 029856AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 029856B0 */ _t156 = cpu->r[21] + 0x00000008u;
|
|
/* 029856B0 */ rbrew_write32(cpu->mem, _t156, cpu->r[3]);
|
|
/* 029856B4 */ _t157 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029856B4 */ _t158 = _t157 & 0x00000001u;
|
|
/* 029856B4 */ if (_t158) goto L_029856D8; else goto L_029856B8;
|
|
L_029856B8: ; // 0x29856b8
|
|
/* 029856B8 */ cpu->r[8] = cpu->r[1] + 0x00000040u;
|
|
L_029856BC: ; // 0x29856bc
|
|
/* 029856BC */ cpu->r[4] = cpu->r[7] - cpu->r[3];
|
|
/* 029856C0 */ cpu->r[5] = rbrew_rlwinm(cpu->r[4], 0x00000001u, 0x00000000u, 0x0000001Du);
|
|
/* 029856C4 */ _t159 = cpu->r[5] + cpu->r[8];
|
|
/* 029856C4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t159);
|
|
/* 029856C8 */ _t160 = cpu->r[7] + 0x00000000u;
|
|
/* 029856C8 */ rbrew_write16(cpu->mem, _t160, (uint16_t)cpu->r[6]);
|
|
/* 029856CC */ cpu->r[7] = cpu->r[7] + 0x00000002u;
|
|
/* 029856D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 029856D4 */ _t161 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029856D4 */ _t162 = _t161 & 0x00000001u;
|
|
/* 029856D4 */ if (_t162) goto L_029856D8; else goto L_029856BC;
|
|
L_029856D8: ; // 0x29856d8
|
|
/* 029856D8 */ _t163 = cpu->r[1] + 0x00000020u;
|
|
/* 029856D8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t163);
|
|
/* 029856DC */ cpu->r[9] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 029856E0 */ cpu->r[0] = cpu->r[5] + cpu->r[9];
|
|
/* 029856E4 */ _t164 = cpu->r[1] + 0x00000020u;
|
|
/* 029856E4 */ rbrew_write32(cpu->mem, _t164, cpu->r[0]);
|
|
L_029856E8: ; // 0x29856e8
|
|
/* 029856E8 */ _t165 = cpu->r[1] + 0x00000034u;
|
|
/* 029856E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t165);
|
|
/* 029856EC */ _t166 = cpu->r[1] + 0x00000038u;
|
|
/* 029856EC */ cpu->r[4] = rbrew_read32(cpu->mem, _t166);
|
|
/* 029856F0 */ cpu->r[10] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 029856F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 029856F4 */ _t167 = cpu->r[1] + 0x00000008u;
|
|
/* 029856F4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t167);
|
|
/* 029856F8 */ cpu->r[0] = cpu->r[4] + 0x00000008u;
|
|
/* 029856FC */ _t168 = cpu->r[1] + 0x00000034u;
|
|
/* 029856FC */ rbrew_write32(cpu->mem, _t168, cpu->r[10]);
|
|
/* 02985700 */ cpu->r[5] = cpu->r[7] + 0x00000001u;
|
|
/* 02985704 */ _t169 = cpu->r[1] + 0x00000038u;
|
|
/* 02985704 */ rbrew_write32(cpu->mem, _t169, cpu->r[0]);
|
|
/* 02985708 */ _t170 = cpu->r[1] + 0x00000008u;
|
|
/* 02985708 */ rbrew_write32(cpu->mem, _t170, cpu->r[5]);
|
|
/* 0298570C */ _t171 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298570C */ _t172 = _t171 & 0x00000001u;
|
|
/* 0298570C */ if (_t172) goto L_02985738; else goto L_02985710;
|
|
L_02985710: ; // 0x2985710
|
|
/* 02985710 */ _t173 = cpu->r[14] + 0x00000000u;
|
|
/* 02985710 */ cpu->r[4] = rbrew_read32(cpu->mem, _t173);
|
|
/* 02985714 */ _t174 = cpu->r[4] + 0x0000001Cu;
|
|
/* 02985714 */ cpu->r[9] = rbrew_read32(cpu->mem, _t174);
|
|
/* 02985718 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298571C */ _t175 = cpu->r[9] + 0x0000002Cu;
|
|
/* 0298571C */ cpu->r[4] = rbrew_read32(cpu->mem, _t175);
|
|
/* 02985720 */ cpu->r[10] = cpu->r[31];
|
|
/* 02985724 */ _t176 = cpu->r[1] + 0x00000008u;
|
|
/* 02985724 */ cpu->r[11] = rbrew_read32(cpu->mem, _t176);
|
|
/* 02985728 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298572C */ cpu->r[6] = cpu->r[9] + 0x0000002Cu;
|
|
/* 02985730 */ _t177 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985730 */ _t178 = _t177 & 0x00000001u;
|
|
/* 02985730 */ if (_t178) goto L_029853E0; else goto L_02985734;
|
|
L_02985734: ; // 0x2985734
|
|
/* 02985734 */ goto L_029853DC;
|
|
L_02985738: ; // 0x2985738
|
|
/* 02985738 */ _t179 = cpu->r[1] + 0x00000010u;
|
|
/* 02985738 */ cpu->r[11] = rbrew_read32(cpu->mem, _t179);
|
|
/* 0298573C */ cpu->r[14] = cpu->r[14] + 0x00000004u;
|
|
/* 02985740 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[11]);
|
|
/* 02985744 */ _t180 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985744 */ _t181 = _t180 & 0x00000001u;
|
|
/* 02985744 */ if (_t181) goto L_02985748; else goto L_02985378;
|
|
L_02985748: ; // 0x2985748
|
|
/* 02985748 */ _t182 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985748 */ cpu->r[10] = rbrew_read32(cpu->mem, _t182);
|
|
/* 0298574C */ cpu->r[3] = cpu->r[29];
|
|
/* 02985750 */ _t183 = cpu->r[10] + 0x00000084u;
|
|
/* 02985750 */ cpu->r[31] = rbrew_read32(cpu->mem, _t183);
|
|
/* 02985754 */ Gambit_fn_02C51884(cpu);
|
|
/* 02985758 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[31]);
|
|
/* 0298575C */ _t184 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298575C */ _t185 = _t184 & 0x00000001u;
|
|
/* 0298575C */ if (_t185) goto L_02985760; else goto L_02985764;
|
|
L_02985760: ; // 0x2985760
|
|
/* 02985760 */ cpu->r[31] = cpu->r[3];
|
|
L_02985764: ; // 0x2985764
|
|
/* 02985764 */ _t186 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985764 */ cpu->r[9] = rbrew_read32(cpu->mem, _t186);
|
|
/* 02985768 */ _t187 = cpu->r[1] + 0x00000020u;
|
|
/* 02985768 */ cpu->r[3] = rbrew_read32(cpu->mem, _t187);
|
|
/* 0298576C */ _t188 = cpu->r[9] + 0x00000084u;
|
|
/* 0298576C */ rbrew_write32(cpu->mem, _t188, cpu->r[31]);
|
|
/* 02985770 */ /* nop */
|
|
/* 02985774 */ _t189 = cpu->r[1] + 0x0000048Cu;
|
|
/* 02985774 */ cpu->r[0] = rbrew_read32(cpu->mem, _t189);
|
|
/* 02985778 */ cpu->lr = cpu->r[0];
|
|
/* 0298577C */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 02985780 */ return;
|
|
}
|
|
|
|
// fn_02985784 @ 0x2985784
|
|
void Gambit_fn_02985784(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189;
|
|
|
|
L_02985784: ; // 0x2985784
|
|
/* 02985784 */ _t0 = cpu->r[1] + 0xFFFFFB78u;
|
|
/* 02985784 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02985784 */ cpu->r[1] = _t0;
|
|
/* 02985788 */ /* nop */
|
|
/* 0298578C */ cpu->r[0] = cpu->lr;
|
|
/* 02985790 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985790 */ rbrew_write32(cpu->mem, _t1, cpu->r[3]);
|
|
/* 02985794 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02985794 */ rbrew_write32(cpu->mem, _t2, cpu->r[5]);
|
|
/* 02985798 */ _t3 = cpu->r[1] + 0x0000048Cu;
|
|
/* 02985798 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298579C */ cpu->r[29] = cpu->r[6];
|
|
/* 029857A0 */ cpu->r[31] = cpu->r[7];
|
|
/* 029857A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029857A4 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029857A4 */ rbrew_write32(cpu->mem, _t4, cpu->r[10]);
|
|
/* 029857A8 */ cpu->r[30] = cpu->r[9];
|
|
/* 029857AC */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 029857AC */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 029857B0 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029857B0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029857B0 */ if (_t7) goto L_029857CC; else goto L_029857B4;
|
|
L_029857B4: ; // 0x29857b4
|
|
/* 029857B4 */ /* nop */
|
|
/* 029857B8 */ _t8 = cpu->r[1] + 0x0000048Cu;
|
|
/* 029857B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029857BC */ cpu->lr = cpu->r[0];
|
|
/* 029857C0 */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 029857C4 */ cpu->r[3] = 0x00000000u;
|
|
/* 029857C8 */ return;
|
|
L_029857CC: ; // 0x29857cc
|
|
/* 029857CC */ cpu->r[0] = 0x00000000u;
|
|
/* 029857D0 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029857D0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029857D4 */ cpu->r[4] = 0x101D0000u;
|
|
/* 029857D8 */ _t10 = cpu->r[1] + 0x00000020u;
|
|
/* 029857D8 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 029857DC */ cpu->r[4] = cpu->r[4] + 0xFFFF98F0u;
|
|
/* 029857E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029857E4 */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 029857E4 */ rbrew_write32(cpu->mem, _t11, cpu->r[4]);
|
|
/* 029857E8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029857E8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029857E8 */ if (_t13) goto L_029857EC; else goto L_029857F8;
|
|
L_029857EC: ; // 0x29857ec
|
|
/* 029857EC */ _t14 = cpu->r[1] + 0x00000024u;
|
|
/* 029857EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029857F0 */ _t15 = cpu->r[12] + 0x00000000u;
|
|
/* 029857F0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 029857F4 */ Gambit_fn_02826F20(cpu);
|
|
L_029857F8: ; // 0x29857f8
|
|
/* 029857F8 */ _t16 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029857F8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029857FC */ _t17 = cpu->r[8] + 0x00000034u;
|
|
/* 029857FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02985800 */ cpu->ctr = cpu->r[0];
|
|
/* 02985804 */ cpu->r[5] = 0x00000004u;
|
|
/* 02985808 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 0298580C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02985810 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02985814 */ cpu->r[12] = cpu->r[31];
|
|
/* 02985818 */ cpu->r[11] = 0x00000000u;
|
|
/* 0298581C */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298581C */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298581C */ if (_t19) goto L_02985824; else goto L_02985820;
|
|
L_02985820: ; // 0x2985820
|
|
/* 02985820 */ cpu->r[12] = 0x00000001u;
|
|
L_02985824: ; // 0x2985824
|
|
/* 02985824 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000000Cu);
|
|
/* 02985828 */ cpu->ctr = cpu->r[12];
|
|
/* 0298582C */ cpu->r[6] = 0x00000000u;
|
|
L_02985830: ; // 0x2985830
|
|
/* 02985830 */ cpu->r[8] = cpu->r[3] + cpu->r[11];
|
|
/* 02985830 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02985834 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985834 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02985834 */ if (_t21) goto L_02985840; else goto L_02985838;
|
|
L_02985838: ; // 0x2985838
|
|
/* 02985838 */ _t22 = cpu->r[8] + 0x00000008u;
|
|
/* 02985838 */ rbrew_write32(cpu->mem, _t22, cpu->r[6]);
|
|
/* 0298583C */ _t23 = cpu->r[8] + 0x00000004u;
|
|
/* 0298583C */ rbrew_write32(cpu->mem, _t23, cpu->r[6]);
|
|
L_02985840: ; // 0x2985840
|
|
/* 02985840 */ cpu->r[11] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02985844 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02985844 */ _t24 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02985844 */ _t25 = _t24 >> (0x00000002u & 31u);
|
|
/* 02985844 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02985844 */ if (_t26) goto L_02985830; else goto L_02985848;
|
|
L_02985848: ; // 0x2985848
|
|
/* 02985848 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298584C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298584C */ _t28 = _t27 & 0x00000001u;
|
|
/* 0298584C */ if (_t28) goto L_0298585C; else goto L_02985850;
|
|
L_02985850: ; // 0x2985850
|
|
/* 02985850 */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 02985850 */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02985854 */ _t30 = cpu->r[11] + 0x00000000u;
|
|
/* 02985854 */ rbrew_write32(cpu->mem, _t30, cpu->r[31]);
|
|
/* 02985858 */ _t31 = cpu->r[11] + 0x00000004u;
|
|
/* 02985858 */ rbrew_write32(cpu->mem, _t31, cpu->r[3]);
|
|
L_0298585C: ; // 0x298585c
|
|
/* 0298585C */ _t32 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298585C */ cpu->r[7] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02985860 */ _t33 = cpu->r[7] + 0x00000074u;
|
|
/* 02985860 */ cpu->r[9] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02985864 */ _t34 = cpu->r[7] + 0x0000007Cu;
|
|
/* 02985864 */ cpu->r[14] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02985868 */ cpu->r[6] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298586C */ cpu->r[0] = cpu->r[14] + cpu->r[6];
|
|
/* 02985870 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[0]);
|
|
/* 02985874 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02985874 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
/* 02985878 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298587C */ _t36 = cpu->r[1] + 0x00000018u;
|
|
/* 0298587C */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 02985880 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985880 */ _t38 = _t37 & 0x00000001u;
|
|
/* 02985880 */ if (_t38) goto L_02985C54; else goto L_02985884;
|
|
L_02985884: ; // 0x2985884
|
|
/* 02985884 */ _t39 = cpu->r[14] + 0x00000000u;
|
|
/* 02985884 */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 02985888 */ _t40 = cpu->r[4] + 0x0000001Cu;
|
|
/* 02985888 */ cpu->r[12] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298588C */ _t41 = cpu->r[12] + 0x00000058u;
|
|
/* 0298588C */ cpu->r[9] = rbrew_read16(cpu->mem, _t41);
|
|
/* 02985890 */ cpu->r[6] = 0x00000000u;
|
|
/* 02985894 */ _t42 = cpu->r[1] + 0x00000034u;
|
|
/* 02985894 */ rbrew_write32(cpu->mem, _t42, cpu->r[9]);
|
|
/* 02985898 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 0298589C */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 0298589C */ rbrew_write32(cpu->mem, _t43, cpu->r[6]);
|
|
/* 029858A0 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029858A0 */ _t45 = _t44 & 0x00000001u;
|
|
/* 029858A0 */ if (_t45) goto L_02985C44; else goto L_029858A4;
|
|
L_029858A4: ; // 0x29858a4
|
|
/* 029858A4 */ _t46 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029858A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 029858A8 */ cpu->r[5] = 0x00000000u;
|
|
/* 029858AC */ cpu->r[28] = cpu->r[29] + 0x0000000Cu;
|
|
/* 029858B0 */ _t47 = cpu->r[1] + 0x00000038u;
|
|
/* 029858B0 */ rbrew_write32(cpu->mem, _t47, cpu->r[5]);
|
|
/* 029858B4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029858B8 */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 029858B8 */ rbrew_write32(cpu->mem, _t48, cpu->r[5]);
|
|
/* 029858BC */ cpu->r[27] = cpu->r[29] + 0x00000008u;
|
|
/* 029858C0 */ cpu->r[26] = cpu->r[29] + 0x00000004u;
|
|
/* 029858C4 */ _t49 = cpu->r[1] + 0x00000030u;
|
|
/* 029858C4 */ rbrew_write32(cpu->mem, _t49, cpu->r[11]);
|
|
/* 029858C8 */ _t50 = cpu->r[4] + 0x0000001Cu;
|
|
/* 029858C8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t50);
|
|
/* 029858CC */ cpu->r[31] = 0x00000000u;
|
|
/* 029858D0 */ _t51 = cpu->r[9] + 0x00000030u;
|
|
/* 029858D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t51);
|
|
/* 029858D4 */ cpu->r[10] = cpu->r[31];
|
|
/* 029858D8 */ cpu->r[6] = cpu->r[9] + 0x00000030u;
|
|
/* 029858DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 029858E0 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 029858E0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t52);
|
|
/* 029858E4 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029858E4 */ _t54 = _t53 & 0x00000001u;
|
|
/* 029858E4 */ if (_t54) goto L_029858EC; else goto L_029858E8;
|
|
L_029858E8: ; // 0x29858e8
|
|
/* 029858E8 */ cpu->r[10] = cpu->r[6] + cpu->r[4];
|
|
L_029858EC: ; // 0x29858ec
|
|
/* 029858EC */ cpu->r[4] = rbrew_rlwinm(cpu->r[11], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 029858F0 */ cpu->r[6] = cpu->r[10] + cpu->r[4];
|
|
/* 029858F4 */ _t55 = cpu->r[6] + 0x00000024u;
|
|
/* 029858F4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t55);
|
|
/* 029858F8 */ cpu->r[10] = 0x00000000u;
|
|
/* 029858FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02985900 */ cpu->r[11] = cpu->r[6] + 0x00000024u;
|
|
/* 02985904 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985904 */ _t57 = _t56 & 0x00000001u;
|
|
/* 02985904 */ if (_t57) goto L_0298590C; else goto L_02985908;
|
|
L_02985908: ; // 0x2985908
|
|
/* 02985908 */ cpu->r[10] = cpu->r[11] + cpu->r[5];
|
|
L_0298590C: ; // 0x298590c
|
|
/* 0298590C */ cpu->r[20] = cpu->r[10];
|
|
/* 02985910 */ _t58 = cpu->r[26] + 0x00000000u;
|
|
/* 02985910 */ cpu->r[10] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02985914 */ _t59 = cpu->r[20] + 0x00000014u;
|
|
/* 02985914 */ cpu->r[0] = rbrew_read16(cpu->mem, _t59);
|
|
/* 02985918 */ cpu->r[12] = cpu->r[1] + 0x0000003Cu;
|
|
/* 0298591C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 02985920 */ _t60 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985920 */ rbrew_write32(cpu->mem, _t60, cpu->r[0]);
|
|
/* 02985924 */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985924 */ _t62 = _t61 & 0x00000001u;
|
|
/* 02985924 */ if (_t62) goto L_0298592C; else goto L_02985928;
|
|
L_02985928: ; // 0x2985928
|
|
/* 02985928 */ cpu->r[12] = cpu->r[26];
|
|
L_0298592C: ; // 0x298592c
|
|
/* 0298592C */ _t63 = cpu->r[12] + 0x00000000u;
|
|
/* 0298592C */ cpu->r[12] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02985930 */ _t64 = cpu->r[26] + 0x00000000u;
|
|
/* 02985930 */ rbrew_write32(cpu->mem, _t64, cpu->r[12]);
|
|
/* 02985934 */ _t65 = cpu->r[20] + 0x00000018u;
|
|
/* 02985934 */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 02985938 */ _t66 = cpu->r[27] + 0x00000000u;
|
|
/* 02985938 */ cpu->r[5] = rbrew_read32(cpu->mem, _t66);
|
|
/* 0298593C */ _t67 = cpu->r[1] + 0x0000003Cu;
|
|
/* 0298593C */ rbrew_write32(cpu->mem, _t67, cpu->r[0]);
|
|
/* 02985940 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[0]);
|
|
/* 02985944 */ cpu->r[4] = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985948 */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985948 */ _t69 = _t68 & 0x00000001u;
|
|
/* 02985948 */ if (_t69) goto L_02985950; else goto L_0298594C;
|
|
L_0298594C: ; // 0x298594c
|
|
/* 0298594C */ cpu->r[4] = cpu->r[27];
|
|
L_02985950: ; // 0x2985950
|
|
/* 02985950 */ _t70 = cpu->r[4] + 0x00000000u;
|
|
/* 02985950 */ cpu->r[0] = rbrew_read32(cpu->mem, _t70);
|
|
/* 02985954 */ _t71 = cpu->r[27] + 0x00000000u;
|
|
/* 02985954 */ rbrew_write32(cpu->mem, _t71, cpu->r[0]);
|
|
/* 02985958 */ _t72 = cpu->r[20] + 0x0000001Cu;
|
|
/* 02985958 */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 0298595C */ _t73 = cpu->r[28] + 0x00000000u;
|
|
/* 0298595C */ cpu->r[6] = rbrew_read32(cpu->mem, _t73);
|
|
/* 02985960 */ _t74 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985960 */ rbrew_write32(cpu->mem, _t74, cpu->r[0]);
|
|
/* 02985964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[0]);
|
|
/* 02985968 */ cpu->r[5] = cpu->r[1] + 0x0000003Cu;
|
|
/* 0298596C */ _t75 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298596C */ _t76 = _t75 & 0x00000001u;
|
|
/* 0298596C */ if (_t76) goto L_02985974; else goto L_02985970;
|
|
L_02985970: ; // 0x2985970
|
|
/* 02985970 */ cpu->r[5] = cpu->r[28];
|
|
L_02985974: ; // 0x2985974
|
|
/* 02985974 */ _t77 = cpu->r[5] + 0x00000000u;
|
|
/* 02985974 */ cpu->r[8] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02985978 */ _t78 = cpu->r[1] + 0x00000028u;
|
|
/* 02985978 */ cpu->r[7] = rbrew_read32(cpu->mem, _t78);
|
|
/* 0298597C */ _t79 = cpu->r[28] + 0x00000000u;
|
|
/* 0298597C */ rbrew_write32(cpu->mem, _t79, cpu->r[8]);
|
|
/* 02985980 */ _t80 = cpu->r[20] + 0x0000000Cu;
|
|
/* 02985980 */ cpu->r[5] = rbrew_read32(cpu->mem, _t80);
|
|
/* 02985984 */ _t81 = cpu->r[29] + 0x00000018u;
|
|
/* 02985984 */ rbrew_write32(cpu->mem, _t81, cpu->r[7]);
|
|
/* 02985988 */ cpu->r[10] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298598C */ _t82 = cpu->r[29] + 0x00000014u;
|
|
/* 0298598C */ rbrew_write32(cpu->mem, _t82, cpu->r[7]);
|
|
/* 02985990 */ cpu->r[6] = cpu->r[10] ^ 0x00000001u;
|
|
/* 02985994 */ _t83 = cpu->r[29] + 0x00000011u;
|
|
/* 02985994 */ cpu->r[10] = rbrew_read8(cpu->mem, _t83);
|
|
/* 02985998 */ _t84 = cpu->r[1] + 0x00000014u;
|
|
/* 02985998 */ cpu->r[9] = rbrew_read32(cpu->mem, _t84);
|
|
/* 0298599C */ cpu->r[10] = cpu->r[10] | cpu->r[6];
|
|
/* 029859A0 */ _t85 = cpu->r[1] + 0x00000018u;
|
|
/* 029859A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t85);
|
|
/* 029859A4 */ _t86 = cpu->r[29] + 0x00000011u;
|
|
/* 029859A4 */ rbrew_write8(cpu->mem, _t86, (uint8_t)cpu->r[10]);
|
|
/* 029859A8 */ _t87 = cpu->r[9] + 0x00000000u;
|
|
/* 029859A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t87);
|
|
/* 029859AC */ cpu->r[7] = cpu->r[0];
|
|
/* 029859B0 */ _t88 = cpu->r[9] + 0x00000004u;
|
|
/* 029859B0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t88);
|
|
/* 029859B4 */ cpu->r[5] = cpu->r[7] + 0x00000001u;
|
|
/* 029859B8 */ _t89 = cpu->r[14] + 0x00000000u;
|
|
/* 029859B8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t89);
|
|
/* 029859BC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 029859C0 */ _t90 = cpu->r[1] + 0x00000018u;
|
|
/* 029859C0 */ rbrew_write32(cpu->mem, _t90, cpu->r[5]);
|
|
/* 029859C4 */ _t91 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029859C4 */ _t92 = _t91 & 0x00000001u;
|
|
/* 029859C4 */ if (_t92) goto L_029859C8; else goto L_02985A08;
|
|
L_029859C8: ; // 0x29859c8
|
|
/* 029859C8 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 029859CC */ _t93 = cpu->r[1] + 0x00000030u;
|
|
/* 029859CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t93);
|
|
/* 029859D0 */ cpu->r[7] = cpu->r[7] + cpu->r[0];
|
|
/* 029859D4 */ _t94 = cpu->r[1] + 0x00000038u;
|
|
/* 029859D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t94);
|
|
/* 029859D8 */ cpu->r[21] = cpu->r[8] + cpu->r[4];
|
|
/* 029859DC */ _t95 = cpu->r[7] + 0x0000002Cu;
|
|
/* 029859DC */ cpu->r[10] = rbrew_read32(cpu->mem, _t95);
|
|
/* 029859E0 */ _t96 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029859E0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t96);
|
|
/* 029859E4 */ cpu->r[8] = cpu->r[10] + cpu->r[0];
|
|
/* 029859E8 */ _t97 = cpu->r[21] + 0x00000000u;
|
|
/* 029859E8 */ rbrew_write32(cpu->mem, _t97, cpu->r[8]);
|
|
/* 029859EC */ _t98 = cpu->r[9] + 0x00000008u;
|
|
/* 029859EC */ cpu->r[6] = rbrew_read32(cpu->mem, _t98);
|
|
/* 029859F0 */ _t99 = cpu->r[9] + 0x0000000Cu;
|
|
/* 029859F0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t99);
|
|
/* 029859F4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000000Cu);
|
|
/* 029859F8 */ cpu->r[9] = cpu->r[11] + cpu->r[0];
|
|
/* 029859FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[9]);
|
|
/* 02985A00 */ _t100 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985A00 */ _t101 = _t100 & 0x00000001u;
|
|
/* 02985A00 */ if (_t101) goto L_02985B38; else goto L_02985A04;
|
|
L_02985A04: ; // 0x2985a04
|
|
/* 02985A04 */ goto L_02985A40;
|
|
L_02985A08: ; // 0x2985a08
|
|
/* 02985A08 */ _t102 = cpu->r[1] + 0x00000030u;
|
|
/* 02985A08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t102);
|
|
/* 02985A0C */ cpu->r[7] = cpu->r[7] + cpu->r[0];
|
|
/* 02985A10 */ _t103 = cpu->r[1] + 0x00000038u;
|
|
/* 02985A10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t103);
|
|
/* 02985A14 */ _t104 = cpu->r[7] + 0x0000002Cu;
|
|
/* 02985A14 */ cpu->r[10] = rbrew_read32(cpu->mem, _t104);
|
|
/* 02985A18 */ cpu->r[21] = cpu->r[8];
|
|
/* 02985A1C */ _t105 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985A1C */ cpu->r[9] = rbrew_read32(cpu->mem, _t105);
|
|
/* 02985A20 */ cpu->r[8] = cpu->r[10] + cpu->r[0];
|
|
/* 02985A24 */ _t106 = cpu->r[21] + 0x00000000u;
|
|
/* 02985A24 */ rbrew_write32(cpu->mem, _t106, cpu->r[8]);
|
|
/* 02985A28 */ _t107 = cpu->r[9] + 0x00000008u;
|
|
/* 02985A28 */ cpu->r[6] = rbrew_read32(cpu->mem, _t107);
|
|
/* 02985A2C */ _t108 = cpu->r[9] + 0x0000000Cu;
|
|
/* 02985A2C */ cpu->r[11] = rbrew_read32(cpu->mem, _t108);
|
|
/* 02985A30 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000000Cu);
|
|
/* 02985A34 */ cpu->r[9] = cpu->r[11] + cpu->r[0];
|
|
/* 02985A38 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[9]);
|
|
/* 02985A3C */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985A3C */ _t110 = _t109 & 0x00000001u;
|
|
/* 02985A3C */ if (_t110) goto L_02985B38; else goto L_02985A40;
|
|
L_02985A40: ; // 0x2985a40
|
|
/* 02985A40 */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02985A44 */ cpu->r[8] = cpu->r[1] + 0x00000040u;
|
|
/* 02985A48 */ cpu->r[17] = cpu->r[11];
|
|
/* 02985A4C */ cpu->r[18] = cpu->r[11];
|
|
/* 02985A50 */ cpu->r[22] = 0x101D0000u;
|
|
/* 02985A54 */ cpu->r[23] = cpu->r[9];
|
|
/* 02985A58 */ cpu->r[19] = cpu->r[8] + cpu->r[6];
|
|
/* 02985A5C */ cpu->r[24] = 0x101D0000u;
|
|
/* 02985A60 */ cpu->r[25] = 0x00000001u;
|
|
L_02985A64: ; // 0x2985a64
|
|
/* 02985A64 */ cpu->r[0] = 0xAAAA0000u;
|
|
/* 02985A68 */ cpu->r[10] = cpu->r[17] - cpu->r[18];
|
|
/* 02985A6C */ cpu->r[0] = cpu->r[0] | 0x0000AAABu;
|
|
/* 02985A70 */ /* nop */
|
|
/* 02985A74 */ cpu->r[15] = rbrew_rlwinm(cpu->r[15], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 02985A78 */ cpu->r[16] = cpu->r[15];
|
|
/* 02985A7C */ cpu->r[3] = cpu->r[30];
|
|
/* 02985A80 */ cpu->r[4] = cpu->r[16];
|
|
/* 02985A84 */ Gambit_fn_0297FC7C(cpu);
|
|
/* 02985A88 */ _t111 = cpu->r[30] + 0x0000001Cu;
|
|
/* 02985A88 */ cpu->r[5] = rbrew_read32(cpu->mem, _t111);
|
|
/* 02985A8C */ cpu->r[7] = 0x00000000u;
|
|
/* 02985A90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[16], cpu->r[5]);
|
|
/* 02985A94 */ _t112 = cpu->r[24] + 0xFFFFE218u;
|
|
/* 02985A94 */ cpu->r[9] = rbrew_read32(cpu->mem, _t112);
|
|
/* 02985A98 */ _t113 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985A98 */ _t114 = _t113 & 0x00000001u;
|
|
/* 02985A98 */ if (_t114) goto L_02985A9C; else goto L_02985AA8;
|
|
L_02985A9C: ; // 0x2985a9c
|
|
/* 02985A9C */ _t115 = cpu->r[30] + 0x00000024u;
|
|
/* 02985A9C */ cpu->r[8] = rbrew_read32(cpu->mem, _t115);
|
|
/* 02985AA0 */ cpu->r[7] = rbrew_rlwinm(cpu->r[16], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02985AA4 */ _t116 = cpu->r[7] + cpu->r[8];
|
|
/* 02985AA4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t116);
|
|
L_02985AA8: ; // 0x2985aa8
|
|
/* 02985AA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02985AAC */ _t117 = cpu->r[7] + 0x00000000u;
|
|
/* 02985AAC */ cpu->r[16] = rbrew_read32(cpu->mem, _t117);
|
|
/* 02985AB0 */ _t118 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985AB0 */ _t119 = _t118 & 0x00000001u;
|
|
/* 02985AB0 */ if (_t119) goto L_02985AB4; else goto L_02985AC4;
|
|
L_02985AB4: ; // 0x2985ab4
|
|
/* 02985AB4 */ cpu->r[10] = 0x10150000u;
|
|
/* 02985AB8 */ _t120 = cpu->r[24] + 0xFFFFE218u;
|
|
/* 02985AB8 */ rbrew_write32(cpu->mem, _t120, cpu->r[25]);
|
|
/* 02985ABC */ cpu->r[10] = cpu->r[10] + 0xFFFFEDC8u;
|
|
/* 02985AC0 */ _t121 = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02985AC0 */ rbrew_write32(cpu->mem, _t121, cpu->r[10]);
|
|
L_02985AC4: ; // 0x2985ac4
|
|
/* 02985AC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[16], 0x00000000u);
|
|
/* 02985AC8 */ _t122 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985AC8 */ _t123 = _t122 & 0x00000001u;
|
|
/* 02985AC8 */ if (_t123) goto L_02985AF8; else goto L_02985ACC;
|
|
L_02985ACC: ; // 0x2985acc
|
|
/* 02985ACC */ _t124 = cpu->r[16] + 0x00000088u;
|
|
/* 02985ACC */ cpu->r[11] = rbrew_read32(cpu->mem, _t124);
|
|
/* 02985AD0 */ _t125 = cpu->r[11] + 0x0000000Cu;
|
|
/* 02985AD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t125);
|
|
/* 02985AD4 */ cpu->ctr = cpu->r[0];
|
|
/* 02985AD8 */ cpu->r[3] = cpu->r[16];
|
|
/* 02985ADC */ cpu->r[4] = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02985AE0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02985AE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985AE8 */ _t126 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985AE8 */ _t127 = _t126 & 0x00000001u;
|
|
/* 02985AE8 */ if (_t127) goto L_02985AF8; else goto L_02985AEC;
|
|
L_02985AEC: ; // 0x2985aec
|
|
/* 02985AEC */ cpu->r[12] = cpu->r[16];
|
|
/* 02985AEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02985AF0 */ _t128 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985AF0 */ _t129 = _t128 & 0x00000001u;
|
|
/* 02985AF0 */ if (_t129) goto L_02985AF4; else goto L_02985B0C;
|
|
L_02985AF4: ; // 0x2985af4
|
|
/* 02985AF4 */ goto L_02985B2C;
|
|
L_02985AF8: ; // 0x2985af8
|
|
/* 02985AF8 */ cpu->r[17] = cpu->r[17] + 0x0000000Cu;
|
|
/* 02985AFC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[23]);
|
|
/* 02985B00 */ cpu->r[12] = 0x00000000u;
|
|
/* 02985B04 */ _t130 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985B04 */ _t131 = _t130 & 0x00000001u;
|
|
/* 02985B04 */ if (_t131) goto L_02985B08; else goto L_02985A64;
|
|
L_02985B08: ; // 0x2985b08
|
|
/* 02985B08 */ goto L_02985B38;
|
|
L_02985B0C: ; // 0x2985b0c
|
|
/* 02985B0C */ _t132 = cpu->r[12] + 0x00000094u;
|
|
/* 02985B0C */ cpu->r[4] = rbrew_read32(cpu->mem, _t132);
|
|
/* 02985B10 */ cpu->r[3] = cpu->r[20];
|
|
/* 02985B14 */ Gambit_fn_0298519C(cpu);
|
|
/* 02985B18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985B1C */ _t133 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985B1C */ _t134 = _t133 & 0x00000001u;
|
|
/* 02985B1C */ if (_t134) goto L_02985B2C; else goto L_02985B20;
|
|
L_02985B20: ; // 0x2985b20
|
|
/* 02985B20 */ _t135 = cpu->r[19] + 0x00000000u;
|
|
/* 02985B20 */ rbrew_write32(cpu->mem, _t135, cpu->r[15]);
|
|
/* 02985B24 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 02985B28 */ cpu->r[19] = cpu->r[19] + 0x00000004u;
|
|
L_02985B2C: ; // 0x2985b2c
|
|
/* 02985B2C */ cpu->r[17] = cpu->r[17] + 0x0000000Cu;
|
|
/* 02985B30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[23]);
|
|
/* 02985B34 */ _t136 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985B34 */ _t137 = _t136 & 0x00000001u;
|
|
/* 02985B34 */ if (_t137) goto L_02985B38; else goto L_02985A64;
|
|
L_02985B38: ; // 0x2985b38
|
|
/* 02985B38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02985B3C */ _t138 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02985B3C */ _t139 = _t138 & 0x00000001u;
|
|
/* 02985B3C */ if (_t139) goto L_02985B40; else goto L_02985BF4;
|
|
L_02985B40: ; // 0x2985b40
|
|
/* 02985B40 */ _t140 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02985B40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t140);
|
|
/* 02985B44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985B48 */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985B48 */ _t142 = _t141 & 0x00000001u;
|
|
/* 02985B48 */ if (_t142) goto L_02985B4C; else goto L_02985B58;
|
|
L_02985B4C: ; // 0x2985b4c
|
|
/* 02985B4C */ _t143 = cpu->r[1] + 0x00000024u;
|
|
/* 02985B4C */ cpu->r[7] = rbrew_read32(cpu->mem, _t143);
|
|
/* 02985B50 */ _t144 = cpu->r[7] + 0x00000000u;
|
|
/* 02985B50 */ cpu->r[3] = rbrew_read32(cpu->mem, _t144);
|
|
/* 02985B54 */ Gambit_fn_02826F20(cpu);
|
|
L_02985B58: ; // 0x2985b58
|
|
/* 02985B58 */ _t145 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02985B58 */ cpu->r[8] = rbrew_read32(cpu->mem, _t145);
|
|
/* 02985B5C */ _t146 = cpu->r[8] + 0x00000034u;
|
|
/* 02985B5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t146);
|
|
/* 02985B60 */ cpu->ctr = cpu->r[0];
|
|
/* 02985B64 */ cpu->r[5] = 0x00000004u;
|
|
/* 02985B68 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02985B6C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02985B70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02985B74 */ cpu->r[0] = cpu->r[31];
|
|
/* 02985B78 */ _t147 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02985B78 */ _t148 = _t147 & 0x00000001u;
|
|
/* 02985B78 */ if (_t148) goto L_02985B80; else goto L_02985B7C;
|
|
L_02985B7C: ; // 0x2985b7c
|
|
/* 02985B7C */ cpu->r[0] = 0x00000001u;
|
|
L_02985B80: ; // 0x2985b80
|
|
/* 02985B80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985B84 */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985B84 */ _t150 = _t149 & 0x00000001u;
|
|
/* 02985B84 */ if (_t150) goto L_02985B88; else goto L_02985BA8;
|
|
L_02985B88: ; // 0x2985b88
|
|
/* 02985B88 */ _t151 = cpu->r[21] + 0x00000004u;
|
|
/* 02985B88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t151);
|
|
/* 02985B8C */ _t152 = cpu->r[21] + 0x00000008u;
|
|
/* 02985B8C */ cpu->r[3] = rbrew_read32(cpu->mem, _t152);
|
|
/* 02985B90 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02985B94 */ cpu->r[7] = cpu->r[3];
|
|
/* 02985B98 */ cpu->r[0] = cpu->r[3] + cpu->r[12];
|
|
/* 02985B9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 02985BA0 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985BA0 */ _t154 = _t153 & 0x00000001u;
|
|
/* 02985BA0 */ if (_t154) goto L_02985BE4; else goto L_02985BA4;
|
|
L_02985BA4: ; // 0x2985ba4
|
|
/* 02985BA4 */ goto L_02985BC4;
|
|
L_02985BA8: ; // 0x2985ba8
|
|
/* 02985BA8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02985BAC */ cpu->r[7] = cpu->r[3];
|
|
/* 02985BB0 */ cpu->r[0] = cpu->r[3] + cpu->r[12];
|
|
/* 02985BB4 */ _t155 = cpu->r[21] + 0x00000004u;
|
|
/* 02985BB4 */ rbrew_write32(cpu->mem, _t155, cpu->r[31]);
|
|
/* 02985BB8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 02985BBC */ _t156 = cpu->r[21] + 0x00000008u;
|
|
/* 02985BBC */ rbrew_write32(cpu->mem, _t156, cpu->r[3]);
|
|
/* 02985BC0 */ _t157 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985BC0 */ _t158 = _t157 & 0x00000001u;
|
|
/* 02985BC0 */ if (_t158) goto L_02985BE4; else goto L_02985BC4;
|
|
L_02985BC4: ; // 0x2985bc4
|
|
/* 02985BC4 */ cpu->r[8] = cpu->r[1] + 0x00000040u;
|
|
L_02985BC8: ; // 0x2985bc8
|
|
/* 02985BC8 */ cpu->r[4] = cpu->r[7] - cpu->r[3];
|
|
/* 02985BCC */ cpu->r[5] = rbrew_rlwinm(cpu->r[4], 0x00000001u, 0x00000000u, 0x0000001Du);
|
|
/* 02985BD0 */ _t159 = cpu->r[5] + cpu->r[8];
|
|
/* 02985BD0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t159);
|
|
/* 02985BD4 */ _t160 = cpu->r[7] + 0x00000000u;
|
|
/* 02985BD4 */ rbrew_write16(cpu->mem, _t160, (uint16_t)cpu->r[6]);
|
|
/* 02985BD8 */ cpu->r[7] = cpu->r[7] + 0x00000002u;
|
|
/* 02985BDC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 02985BE0 */ _t161 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985BE0 */ _t162 = _t161 & 0x00000001u;
|
|
/* 02985BE0 */ if (_t162) goto L_02985BE4; else goto L_02985BC8;
|
|
L_02985BE4: ; // 0x2985be4
|
|
/* 02985BE4 */ _t163 = cpu->r[1] + 0x00000020u;
|
|
/* 02985BE4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t163);
|
|
/* 02985BE8 */ cpu->r[9] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 02985BEC */ cpu->r[0] = cpu->r[5] + cpu->r[9];
|
|
/* 02985BF0 */ _t164 = cpu->r[1] + 0x00000020u;
|
|
/* 02985BF0 */ rbrew_write32(cpu->mem, _t164, cpu->r[0]);
|
|
L_02985BF4: ; // 0x2985bf4
|
|
/* 02985BF4 */ _t165 = cpu->r[1] + 0x00000034u;
|
|
/* 02985BF4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t165);
|
|
/* 02985BF8 */ _t166 = cpu->r[1] + 0x00000038u;
|
|
/* 02985BF8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t166);
|
|
/* 02985BFC */ cpu->r[10] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 02985BFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02985C00 */ _t167 = cpu->r[1] + 0x00000008u;
|
|
/* 02985C00 */ cpu->r[7] = rbrew_read32(cpu->mem, _t167);
|
|
/* 02985C04 */ cpu->r[0] = cpu->r[4] + 0x00000008u;
|
|
/* 02985C08 */ _t168 = cpu->r[1] + 0x00000034u;
|
|
/* 02985C08 */ rbrew_write32(cpu->mem, _t168, cpu->r[10]);
|
|
/* 02985C0C */ cpu->r[5] = cpu->r[7] + 0x00000001u;
|
|
/* 02985C10 */ _t169 = cpu->r[1] + 0x00000038u;
|
|
/* 02985C10 */ rbrew_write32(cpu->mem, _t169, cpu->r[0]);
|
|
/* 02985C14 */ _t170 = cpu->r[1] + 0x00000008u;
|
|
/* 02985C14 */ rbrew_write32(cpu->mem, _t170, cpu->r[5]);
|
|
/* 02985C18 */ _t171 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985C18 */ _t172 = _t171 & 0x00000001u;
|
|
/* 02985C18 */ if (_t172) goto L_02985C44; else goto L_02985C1C;
|
|
L_02985C1C: ; // 0x2985c1c
|
|
/* 02985C1C */ _t173 = cpu->r[14] + 0x00000000u;
|
|
/* 02985C1C */ cpu->r[4] = rbrew_read32(cpu->mem, _t173);
|
|
/* 02985C20 */ _t174 = cpu->r[4] + 0x0000001Cu;
|
|
/* 02985C20 */ cpu->r[9] = rbrew_read32(cpu->mem, _t174);
|
|
/* 02985C24 */ cpu->r[31] = 0x00000000u;
|
|
/* 02985C28 */ _t175 = cpu->r[9] + 0x00000030u;
|
|
/* 02985C28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t175);
|
|
/* 02985C2C */ cpu->r[10] = cpu->r[31];
|
|
/* 02985C30 */ _t176 = cpu->r[1] + 0x00000008u;
|
|
/* 02985C30 */ cpu->r[11] = rbrew_read32(cpu->mem, _t176);
|
|
/* 02985C34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02985C38 */ cpu->r[6] = cpu->r[9] + 0x00000030u;
|
|
/* 02985C3C */ _t177 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985C3C */ _t178 = _t177 & 0x00000001u;
|
|
/* 02985C3C */ if (_t178) goto L_029858EC; else goto L_02985C40;
|
|
L_02985C40: ; // 0x2985c40
|
|
/* 02985C40 */ goto L_029858E8;
|
|
L_02985C44: ; // 0x2985c44
|
|
/* 02985C44 */ _t179 = cpu->r[1] + 0x00000010u;
|
|
/* 02985C44 */ cpu->r[11] = rbrew_read32(cpu->mem, _t179);
|
|
/* 02985C48 */ cpu->r[14] = cpu->r[14] + 0x00000004u;
|
|
/* 02985C4C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[11]);
|
|
/* 02985C50 */ _t180 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985C50 */ _t181 = _t180 & 0x00000001u;
|
|
/* 02985C50 */ if (_t181) goto L_02985C54; else goto L_02985884;
|
|
L_02985C54: ; // 0x2985c54
|
|
/* 02985C54 */ _t182 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985C54 */ cpu->r[10] = rbrew_read32(cpu->mem, _t182);
|
|
/* 02985C58 */ cpu->r[3] = cpu->r[29];
|
|
/* 02985C5C */ _t183 = cpu->r[10] + 0x00000084u;
|
|
/* 02985C5C */ cpu->r[31] = rbrew_read32(cpu->mem, _t183);
|
|
/* 02985C60 */ Gambit_fn_02C51884(cpu);
|
|
/* 02985C64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[31]);
|
|
/* 02985C68 */ _t184 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02985C68 */ _t185 = _t184 & 0x00000001u;
|
|
/* 02985C68 */ if (_t185) goto L_02985C6C; else goto L_02985C70;
|
|
L_02985C6C: ; // 0x2985c6c
|
|
/* 02985C6C */ cpu->r[31] = cpu->r[3];
|
|
L_02985C70: ; // 0x2985c70
|
|
/* 02985C70 */ _t186 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985C70 */ cpu->r[9] = rbrew_read32(cpu->mem, _t186);
|
|
/* 02985C74 */ _t187 = cpu->r[1] + 0x00000020u;
|
|
/* 02985C74 */ cpu->r[3] = rbrew_read32(cpu->mem, _t187);
|
|
/* 02985C78 */ _t188 = cpu->r[9] + 0x00000084u;
|
|
/* 02985C78 */ rbrew_write32(cpu->mem, _t188, cpu->r[31]);
|
|
/* 02985C7C */ /* nop */
|
|
/* 02985C80 */ _t189 = cpu->r[1] + 0x0000048Cu;
|
|
/* 02985C80 */ cpu->r[0] = rbrew_read32(cpu->mem, _t189);
|
|
/* 02985C84 */ cpu->lr = cpu->r[0];
|
|
/* 02985C88 */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 02985C8C */ return;
|
|
}
|
|
|
|
// fn_02985C90 @ 0x2985c90
|
|
void Gambit_fn_02985C90(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189;
|
|
|
|
L_02985C90: ; // 0x2985c90
|
|
/* 02985C90 */ _t0 = cpu->r[1] + 0xFFFFFB78u;
|
|
/* 02985C90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02985C90 */ cpu->r[1] = _t0;
|
|
/* 02985C94 */ /* nop */
|
|
/* 02985C98 */ cpu->r[0] = cpu->lr;
|
|
/* 02985C9C */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985C9C */ rbrew_write32(cpu->mem, _t1, cpu->r[3]);
|
|
/* 02985CA0 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02985CA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[5]);
|
|
/* 02985CA4 */ _t3 = cpu->r[1] + 0x0000048Cu;
|
|
/* 02985CA4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02985CA8 */ cpu->r[29] = cpu->r[6];
|
|
/* 02985CAC */ cpu->r[31] = cpu->r[7];
|
|
/* 02985CAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02985CB0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02985CB0 */ rbrew_write32(cpu->mem, _t4, cpu->r[10]);
|
|
/* 02985CB4 */ cpu->r[30] = cpu->r[9];
|
|
/* 02985CB8 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 02985CB8 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 02985CBC */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02985CBC */ _t7 = _t6 & 0x00000001u;
|
|
/* 02985CBC */ if (_t7) goto L_02985CD8; else goto L_02985CC0;
|
|
L_02985CC0: ; // 0x2985cc0
|
|
/* 02985CC0 */ /* nop */
|
|
/* 02985CC4 */ _t8 = cpu->r[1] + 0x0000048Cu;
|
|
/* 02985CC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02985CC8 */ cpu->lr = cpu->r[0];
|
|
/* 02985CCC */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 02985CD0 */ cpu->r[3] = 0x00000000u;
|
|
/* 02985CD4 */ return;
|
|
L_02985CD8: ; // 0x2985cd8
|
|
/* 02985CD8 */ cpu->r[0] = 0x00000000u;
|
|
/* 02985CDC */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02985CDC */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02985CE0 */ cpu->r[4] = 0x101D0000u;
|
|
/* 02985CE4 */ _t10 = cpu->r[1] + 0x00000020u;
|
|
/* 02985CE4 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 02985CE8 */ cpu->r[4] = cpu->r[4] + 0xFFFF98F0u;
|
|
/* 02985CEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985CF0 */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 02985CF0 */ rbrew_write32(cpu->mem, _t11, cpu->r[4]);
|
|
/* 02985CF4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985CF4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02985CF4 */ if (_t13) goto L_02985CF8; else goto L_02985D04;
|
|
L_02985CF8: ; // 0x2985cf8
|
|
/* 02985CF8 */ _t14 = cpu->r[1] + 0x00000024u;
|
|
/* 02985CF8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02985CFC */ _t15 = cpu->r[12] + 0x00000000u;
|
|
/* 02985CFC */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02985D00 */ Gambit_fn_02826F20(cpu);
|
|
L_02985D04: ; // 0x2985d04
|
|
/* 02985D04 */ _t16 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02985D04 */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02985D08 */ _t17 = cpu->r[8] + 0x00000034u;
|
|
/* 02985D08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02985D0C */ cpu->ctr = cpu->r[0];
|
|
/* 02985D10 */ cpu->r[5] = 0x00000004u;
|
|
/* 02985D14 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 02985D18 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02985D1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02985D20 */ cpu->r[12] = cpu->r[31];
|
|
/* 02985D24 */ cpu->r[11] = 0x00000000u;
|
|
/* 02985D28 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02985D28 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02985D28 */ if (_t19) goto L_02985D30; else goto L_02985D2C;
|
|
L_02985D2C: ; // 0x2985d2c
|
|
/* 02985D2C */ cpu->r[12] = 0x00000001u;
|
|
L_02985D30: ; // 0x2985d30
|
|
/* 02985D30 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000000Cu);
|
|
/* 02985D34 */ cpu->ctr = cpu->r[12];
|
|
/* 02985D38 */ cpu->r[6] = 0x00000000u;
|
|
L_02985D3C: ; // 0x2985d3c
|
|
/* 02985D3C */ cpu->r[8] = cpu->r[3] + cpu->r[11];
|
|
/* 02985D3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02985D40 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985D40 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02985D40 */ if (_t21) goto L_02985D4C; else goto L_02985D44;
|
|
L_02985D44: ; // 0x2985d44
|
|
/* 02985D44 */ _t22 = cpu->r[8] + 0x00000008u;
|
|
/* 02985D44 */ rbrew_write32(cpu->mem, _t22, cpu->r[6]);
|
|
/* 02985D48 */ _t23 = cpu->r[8] + 0x00000004u;
|
|
/* 02985D48 */ rbrew_write32(cpu->mem, _t23, cpu->r[6]);
|
|
L_02985D4C: ; // 0x2985d4c
|
|
/* 02985D4C */ cpu->r[11] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02985D50 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02985D50 */ _t24 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02985D50 */ _t25 = _t24 >> (0x00000002u & 31u);
|
|
/* 02985D50 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02985D50 */ if (_t26) goto L_02985D3C; else goto L_02985D54;
|
|
L_02985D54: ; // 0x2985d54
|
|
/* 02985D54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985D58 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985D58 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02985D58 */ if (_t28) goto L_02985D68; else goto L_02985D5C;
|
|
L_02985D5C: ; // 0x2985d5c
|
|
/* 02985D5C */ _t29 = cpu->r[1] + 0x00000014u;
|
|
/* 02985D5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02985D60 */ _t30 = cpu->r[11] + 0x00000000u;
|
|
/* 02985D60 */ rbrew_write32(cpu->mem, _t30, cpu->r[31]);
|
|
/* 02985D64 */ _t31 = cpu->r[11] + 0x00000004u;
|
|
/* 02985D64 */ rbrew_write32(cpu->mem, _t31, cpu->r[3]);
|
|
L_02985D68: ; // 0x2985d68
|
|
/* 02985D68 */ _t32 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985D68 */ cpu->r[7] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02985D6C */ _t33 = cpu->r[7] + 0x00000074u;
|
|
/* 02985D6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02985D70 */ _t34 = cpu->r[7] + 0x0000007Cu;
|
|
/* 02985D70 */ cpu->r[14] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02985D74 */ cpu->r[6] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02985D78 */ cpu->r[0] = cpu->r[14] + cpu->r[6];
|
|
/* 02985D7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[0]);
|
|
/* 02985D80 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02985D80 */ rbrew_write32(cpu->mem, _t35, cpu->r[0]);
|
|
/* 02985D84 */ cpu->r[0] = 0x00000000u;
|
|
/* 02985D88 */ _t36 = cpu->r[1] + 0x00000018u;
|
|
/* 02985D88 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 02985D8C */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985D8C */ _t38 = _t37 & 0x00000001u;
|
|
/* 02985D8C */ if (_t38) goto L_02986160; else goto L_02985D90;
|
|
L_02985D90: ; // 0x2985d90
|
|
/* 02985D90 */ _t39 = cpu->r[14] + 0x00000000u;
|
|
/* 02985D90 */ cpu->r[4] = rbrew_read32(cpu->mem, _t39);
|
|
/* 02985D94 */ _t40 = cpu->r[4] + 0x0000001Cu;
|
|
/* 02985D94 */ cpu->r[12] = rbrew_read32(cpu->mem, _t40);
|
|
/* 02985D98 */ _t41 = cpu->r[12] + 0x0000005Au;
|
|
/* 02985D98 */ cpu->r[9] = rbrew_read16(cpu->mem, _t41);
|
|
/* 02985D9C */ cpu->r[6] = 0x00000000u;
|
|
/* 02985DA0 */ _t42 = cpu->r[1] + 0x00000034u;
|
|
/* 02985DA0 */ rbrew_write32(cpu->mem, _t42, cpu->r[9]);
|
|
/* 02985DA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02985DA8 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 02985DA8 */ rbrew_write32(cpu->mem, _t43, cpu->r[6]);
|
|
/* 02985DAC */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985DAC */ _t45 = _t44 & 0x00000001u;
|
|
/* 02985DAC */ if (_t45) goto L_02986150; else goto L_02985DB0;
|
|
L_02985DB0: ; // 0x2985db0
|
|
/* 02985DB0 */ _t46 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02985DB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02985DB4 */ cpu->r[5] = 0x00000000u;
|
|
/* 02985DB8 */ cpu->r[28] = cpu->r[29] + 0x0000000Cu;
|
|
/* 02985DBC */ _t47 = cpu->r[1] + 0x00000038u;
|
|
/* 02985DBC */ rbrew_write32(cpu->mem, _t47, cpu->r[5]);
|
|
/* 02985DC0 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02985DC4 */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 02985DC4 */ rbrew_write32(cpu->mem, _t48, cpu->r[5]);
|
|
/* 02985DC8 */ cpu->r[27] = cpu->r[29] + 0x00000008u;
|
|
/* 02985DCC */ cpu->r[26] = cpu->r[29] + 0x00000004u;
|
|
/* 02985DD0 */ _t49 = cpu->r[1] + 0x00000030u;
|
|
/* 02985DD0 */ rbrew_write32(cpu->mem, _t49, cpu->r[11]);
|
|
/* 02985DD4 */ _t50 = cpu->r[4] + 0x0000001Cu;
|
|
/* 02985DD4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t50);
|
|
/* 02985DD8 */ cpu->r[31] = 0x00000000u;
|
|
/* 02985DDC */ _t51 = cpu->r[9] + 0x00000034u;
|
|
/* 02985DDC */ cpu->r[4] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02985DE0 */ cpu->r[10] = cpu->r[31];
|
|
/* 02985DE4 */ cpu->r[6] = cpu->r[9] + 0x00000034u;
|
|
/* 02985DE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02985DEC */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 02985DEC */ cpu->r[11] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02985DF0 */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985DF0 */ _t54 = _t53 & 0x00000001u;
|
|
/* 02985DF0 */ if (_t54) goto L_02985DF8; else goto L_02985DF4;
|
|
L_02985DF4: ; // 0x2985df4
|
|
/* 02985DF4 */ cpu->r[10] = cpu->r[6] + cpu->r[4];
|
|
L_02985DF8: ; // 0x2985df8
|
|
/* 02985DF8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[11], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02985DFC */ cpu->r[6] = cpu->r[10] + cpu->r[4];
|
|
/* 02985E00 */ _t55 = cpu->r[6] + 0x00000024u;
|
|
/* 02985E00 */ cpu->r[5] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02985E04 */ cpu->r[10] = 0x00000000u;
|
|
/* 02985E08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02985E0C */ cpu->r[11] = cpu->r[6] + 0x00000024u;
|
|
/* 02985E10 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985E10 */ _t57 = _t56 & 0x00000001u;
|
|
/* 02985E10 */ if (_t57) goto L_02985E18; else goto L_02985E14;
|
|
L_02985E14: ; // 0x2985e14
|
|
/* 02985E14 */ cpu->r[10] = cpu->r[11] + cpu->r[5];
|
|
L_02985E18: ; // 0x2985e18
|
|
/* 02985E18 */ cpu->r[20] = cpu->r[10];
|
|
/* 02985E1C */ _t58 = cpu->r[26] + 0x00000000u;
|
|
/* 02985E1C */ cpu->r[10] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02985E20 */ _t59 = cpu->r[20] + 0x00000014u;
|
|
/* 02985E20 */ cpu->r[0] = rbrew_read16(cpu->mem, _t59);
|
|
/* 02985E24 */ cpu->r[12] = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985E28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 02985E2C */ _t60 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985E2C */ rbrew_write32(cpu->mem, _t60, cpu->r[0]);
|
|
/* 02985E30 */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985E30 */ _t62 = _t61 & 0x00000001u;
|
|
/* 02985E30 */ if (_t62) goto L_02985E38; else goto L_02985E34;
|
|
L_02985E34: ; // 0x2985e34
|
|
/* 02985E34 */ cpu->r[12] = cpu->r[26];
|
|
L_02985E38: ; // 0x2985e38
|
|
/* 02985E38 */ _t63 = cpu->r[12] + 0x00000000u;
|
|
/* 02985E38 */ cpu->r[12] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02985E3C */ _t64 = cpu->r[26] + 0x00000000u;
|
|
/* 02985E3C */ rbrew_write32(cpu->mem, _t64, cpu->r[12]);
|
|
/* 02985E40 */ _t65 = cpu->r[20] + 0x00000018u;
|
|
/* 02985E40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 02985E44 */ _t66 = cpu->r[27] + 0x00000000u;
|
|
/* 02985E44 */ cpu->r[5] = rbrew_read32(cpu->mem, _t66);
|
|
/* 02985E48 */ _t67 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985E48 */ rbrew_write32(cpu->mem, _t67, cpu->r[0]);
|
|
/* 02985E4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[0]);
|
|
/* 02985E50 */ cpu->r[4] = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985E54 */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985E54 */ _t69 = _t68 & 0x00000001u;
|
|
/* 02985E54 */ if (_t69) goto L_02985E5C; else goto L_02985E58;
|
|
L_02985E58: ; // 0x2985e58
|
|
/* 02985E58 */ cpu->r[4] = cpu->r[27];
|
|
L_02985E5C: ; // 0x2985e5c
|
|
/* 02985E5C */ _t70 = cpu->r[4] + 0x00000000u;
|
|
/* 02985E5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t70);
|
|
/* 02985E60 */ _t71 = cpu->r[27] + 0x00000000u;
|
|
/* 02985E60 */ rbrew_write32(cpu->mem, _t71, cpu->r[0]);
|
|
/* 02985E64 */ _t72 = cpu->r[20] + 0x0000001Cu;
|
|
/* 02985E64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 02985E68 */ _t73 = cpu->r[28] + 0x00000000u;
|
|
/* 02985E68 */ cpu->r[6] = rbrew_read32(cpu->mem, _t73);
|
|
/* 02985E6C */ _t74 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985E6C */ rbrew_write32(cpu->mem, _t74, cpu->r[0]);
|
|
/* 02985E70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], cpu->r[0]);
|
|
/* 02985E74 */ cpu->r[5] = cpu->r[1] + 0x0000003Cu;
|
|
/* 02985E78 */ _t75 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985E78 */ _t76 = _t75 & 0x00000001u;
|
|
/* 02985E78 */ if (_t76) goto L_02985E80; else goto L_02985E7C;
|
|
L_02985E7C: ; // 0x2985e7c
|
|
/* 02985E7C */ cpu->r[5] = cpu->r[28];
|
|
L_02985E80: ; // 0x2985e80
|
|
/* 02985E80 */ _t77 = cpu->r[5] + 0x00000000u;
|
|
/* 02985E80 */ cpu->r[8] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02985E84 */ _t78 = cpu->r[1] + 0x00000028u;
|
|
/* 02985E84 */ cpu->r[7] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02985E88 */ _t79 = cpu->r[28] + 0x00000000u;
|
|
/* 02985E88 */ rbrew_write32(cpu->mem, _t79, cpu->r[8]);
|
|
/* 02985E8C */ _t80 = cpu->r[20] + 0x0000000Cu;
|
|
/* 02985E8C */ cpu->r[5] = rbrew_read32(cpu->mem, _t80);
|
|
/* 02985E90 */ _t81 = cpu->r[29] + 0x00000018u;
|
|
/* 02985E90 */ rbrew_write32(cpu->mem, _t81, cpu->r[7]);
|
|
/* 02985E94 */ cpu->r[10] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02985E98 */ _t82 = cpu->r[29] + 0x00000014u;
|
|
/* 02985E98 */ rbrew_write32(cpu->mem, _t82, cpu->r[7]);
|
|
/* 02985E9C */ cpu->r[6] = cpu->r[10] ^ 0x00000001u;
|
|
/* 02985EA0 */ _t83 = cpu->r[29] + 0x00000011u;
|
|
/* 02985EA0 */ cpu->r[10] = rbrew_read8(cpu->mem, _t83);
|
|
/* 02985EA4 */ _t84 = cpu->r[1] + 0x00000014u;
|
|
/* 02985EA4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t84);
|
|
/* 02985EA8 */ cpu->r[10] = cpu->r[10] | cpu->r[6];
|
|
/* 02985EAC */ _t85 = cpu->r[1] + 0x00000018u;
|
|
/* 02985EAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t85);
|
|
/* 02985EB0 */ _t86 = cpu->r[29] + 0x00000011u;
|
|
/* 02985EB0 */ rbrew_write8(cpu->mem, _t86, (uint8_t)cpu->r[10]);
|
|
/* 02985EB4 */ _t87 = cpu->r[9] + 0x00000000u;
|
|
/* 02985EB4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02985EB8 */ cpu->r[7] = cpu->r[0];
|
|
/* 02985EBC */ _t88 = cpu->r[9] + 0x00000004u;
|
|
/* 02985EBC */ cpu->r[8] = rbrew_read32(cpu->mem, _t88);
|
|
/* 02985EC0 */ cpu->r[5] = cpu->r[7] + 0x00000001u;
|
|
/* 02985EC4 */ _t89 = cpu->r[14] + 0x00000000u;
|
|
/* 02985EC4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t89);
|
|
/* 02985EC8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02985ECC */ _t90 = cpu->r[1] + 0x00000018u;
|
|
/* 02985ECC */ rbrew_write32(cpu->mem, _t90, cpu->r[5]);
|
|
/* 02985ED0 */ _t91 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985ED0 */ _t92 = _t91 & 0x00000001u;
|
|
/* 02985ED0 */ if (_t92) goto L_02985ED4; else goto L_02985F14;
|
|
L_02985ED4: ; // 0x2985ed4
|
|
/* 02985ED4 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02985ED8 */ _t93 = cpu->r[1] + 0x00000030u;
|
|
/* 02985ED8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t93);
|
|
/* 02985EDC */ cpu->r[7] = cpu->r[7] + cpu->r[0];
|
|
/* 02985EE0 */ _t94 = cpu->r[1] + 0x00000038u;
|
|
/* 02985EE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t94);
|
|
/* 02985EE4 */ cpu->r[21] = cpu->r[8] + cpu->r[4];
|
|
/* 02985EE8 */ _t95 = cpu->r[7] + 0x0000002Cu;
|
|
/* 02985EE8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t95);
|
|
/* 02985EEC */ _t96 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985EEC */ cpu->r[9] = rbrew_read32(cpu->mem, _t96);
|
|
/* 02985EF0 */ cpu->r[8] = cpu->r[10] + cpu->r[0];
|
|
/* 02985EF4 */ _t97 = cpu->r[21] + 0x00000000u;
|
|
/* 02985EF4 */ rbrew_write32(cpu->mem, _t97, cpu->r[8]);
|
|
/* 02985EF8 */ _t98 = cpu->r[9] + 0x00000008u;
|
|
/* 02985EF8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t98);
|
|
/* 02985EFC */ _t99 = cpu->r[9] + 0x0000000Cu;
|
|
/* 02985EFC */ cpu->r[11] = rbrew_read32(cpu->mem, _t99);
|
|
/* 02985F00 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000000Cu);
|
|
/* 02985F04 */ cpu->r[9] = cpu->r[11] + cpu->r[0];
|
|
/* 02985F08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[9]);
|
|
/* 02985F0C */ _t100 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985F0C */ _t101 = _t100 & 0x00000001u;
|
|
/* 02985F0C */ if (_t101) goto L_02986044; else goto L_02985F10;
|
|
L_02985F10: ; // 0x2985f10
|
|
/* 02985F10 */ goto L_02985F4C;
|
|
L_02985F14: ; // 0x2985f14
|
|
/* 02985F14 */ _t102 = cpu->r[1] + 0x00000030u;
|
|
/* 02985F14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t102);
|
|
/* 02985F18 */ cpu->r[7] = cpu->r[7] + cpu->r[0];
|
|
/* 02985F1C */ _t103 = cpu->r[1] + 0x00000038u;
|
|
/* 02985F1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t103);
|
|
/* 02985F20 */ _t104 = cpu->r[7] + 0x0000002Cu;
|
|
/* 02985F20 */ cpu->r[10] = rbrew_read32(cpu->mem, _t104);
|
|
/* 02985F24 */ cpu->r[21] = cpu->r[8];
|
|
/* 02985F28 */ _t105 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02985F28 */ cpu->r[9] = rbrew_read32(cpu->mem, _t105);
|
|
/* 02985F2C */ cpu->r[8] = cpu->r[10] + cpu->r[0];
|
|
/* 02985F30 */ _t106 = cpu->r[21] + 0x00000000u;
|
|
/* 02985F30 */ rbrew_write32(cpu->mem, _t106, cpu->r[8]);
|
|
/* 02985F34 */ _t107 = cpu->r[9] + 0x00000008u;
|
|
/* 02985F34 */ cpu->r[6] = rbrew_read32(cpu->mem, _t107);
|
|
/* 02985F38 */ _t108 = cpu->r[9] + 0x0000000Cu;
|
|
/* 02985F38 */ cpu->r[11] = rbrew_read32(cpu->mem, _t108);
|
|
/* 02985F3C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000000Cu);
|
|
/* 02985F40 */ cpu->r[9] = cpu->r[11] + cpu->r[0];
|
|
/* 02985F44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[9]);
|
|
/* 02985F48 */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985F48 */ _t110 = _t109 & 0x00000001u;
|
|
/* 02985F48 */ if (_t110) goto L_02986044; else goto L_02985F4C;
|
|
L_02985F4C: ; // 0x2985f4c
|
|
/* 02985F4C */ cpu->r[6] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02985F50 */ cpu->r[8] = cpu->r[1] + 0x00000040u;
|
|
/* 02985F54 */ cpu->r[17] = cpu->r[11];
|
|
/* 02985F58 */ cpu->r[18] = cpu->r[11];
|
|
/* 02985F5C */ cpu->r[22] = 0x101D0000u;
|
|
/* 02985F60 */ cpu->r[23] = cpu->r[9];
|
|
/* 02985F64 */ cpu->r[19] = cpu->r[8] + cpu->r[6];
|
|
/* 02985F68 */ cpu->r[24] = 0x101D0000u;
|
|
/* 02985F6C */ cpu->r[25] = 0x00000001u;
|
|
L_02985F70: ; // 0x2985f70
|
|
/* 02985F70 */ cpu->r[0] = 0xAAAA0000u;
|
|
/* 02985F74 */ cpu->r[10] = cpu->r[17] - cpu->r[18];
|
|
/* 02985F78 */ cpu->r[0] = cpu->r[0] | 0x0000AAABu;
|
|
/* 02985F7C */ /* nop */
|
|
/* 02985F80 */ cpu->r[15] = rbrew_rlwinm(cpu->r[15], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 02985F84 */ cpu->r[16] = cpu->r[15];
|
|
/* 02985F88 */ cpu->r[3] = cpu->r[30];
|
|
/* 02985F8C */ cpu->r[4] = cpu->r[16];
|
|
/* 02985F90 */ Gambit_fn_0297FC7C(cpu);
|
|
/* 02985F94 */ _t111 = cpu->r[30] + 0x0000001Cu;
|
|
/* 02985F94 */ cpu->r[5] = rbrew_read32(cpu->mem, _t111);
|
|
/* 02985F98 */ cpu->r[7] = 0x00000000u;
|
|
/* 02985F9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[16], cpu->r[5]);
|
|
/* 02985FA0 */ _t112 = cpu->r[24] + 0xFFFFE218u;
|
|
/* 02985FA0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t112);
|
|
/* 02985FA4 */ _t113 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02985FA4 */ _t114 = _t113 & 0x00000001u;
|
|
/* 02985FA4 */ if (_t114) goto L_02985FA8; else goto L_02985FB4;
|
|
L_02985FA8: ; // 0x2985fa8
|
|
/* 02985FA8 */ _t115 = cpu->r[30] + 0x00000024u;
|
|
/* 02985FA8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t115);
|
|
/* 02985FAC */ cpu->r[7] = rbrew_rlwinm(cpu->r[16], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02985FB0 */ _t116 = cpu->r[7] + cpu->r[8];
|
|
/* 02985FB0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t116);
|
|
L_02985FB4: ; // 0x2985fb4
|
|
/* 02985FB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02985FB8 */ _t117 = cpu->r[7] + 0x00000000u;
|
|
/* 02985FB8 */ cpu->r[16] = rbrew_read32(cpu->mem, _t117);
|
|
/* 02985FBC */ _t118 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985FBC */ _t119 = _t118 & 0x00000001u;
|
|
/* 02985FBC */ if (_t119) goto L_02985FC0; else goto L_02985FD0;
|
|
L_02985FC0: ; // 0x2985fc0
|
|
/* 02985FC0 */ cpu->r[10] = 0x10150000u;
|
|
/* 02985FC4 */ _t120 = cpu->r[24] + 0xFFFFE218u;
|
|
/* 02985FC4 */ rbrew_write32(cpu->mem, _t120, cpu->r[25]);
|
|
/* 02985FC8 */ cpu->r[10] = cpu->r[10] + 0xFFFFEDC8u;
|
|
/* 02985FCC */ _t121 = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02985FCC */ rbrew_write32(cpu->mem, _t121, cpu->r[10]);
|
|
L_02985FD0: ; // 0x2985fd0
|
|
/* 02985FD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[16], 0x00000000u);
|
|
/* 02985FD4 */ _t122 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985FD4 */ _t123 = _t122 & 0x00000001u;
|
|
/* 02985FD4 */ if (_t123) goto L_02986004; else goto L_02985FD8;
|
|
L_02985FD8: ; // 0x2985fd8
|
|
/* 02985FD8 */ _t124 = cpu->r[16] + 0x00000088u;
|
|
/* 02985FD8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t124);
|
|
/* 02985FDC */ _t125 = cpu->r[11] + 0x0000000Cu;
|
|
/* 02985FDC */ cpu->r[0] = rbrew_read32(cpu->mem, _t125);
|
|
/* 02985FE0 */ cpu->ctr = cpu->r[0];
|
|
/* 02985FE4 */ cpu->r[3] = cpu->r[16];
|
|
/* 02985FE8 */ cpu->r[4] = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02985FEC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02985FF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02985FF4 */ _t126 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985FF4 */ _t127 = _t126 & 0x00000001u;
|
|
/* 02985FF4 */ if (_t127) goto L_02986004; else goto L_02985FF8;
|
|
L_02985FF8: ; // 0x2985ff8
|
|
/* 02985FF8 */ cpu->r[12] = cpu->r[16];
|
|
/* 02985FF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02985FFC */ _t128 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02985FFC */ _t129 = _t128 & 0x00000001u;
|
|
/* 02985FFC */ if (_t129) goto L_02986000; else goto L_02986018;
|
|
L_02986000: ; // 0x2986000
|
|
/* 02986000 */ goto L_02986038;
|
|
L_02986004: ; // 0x2986004
|
|
/* 02986004 */ cpu->r[17] = cpu->r[17] + 0x0000000Cu;
|
|
/* 02986008 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[23]);
|
|
/* 0298600C */ cpu->r[12] = 0x00000000u;
|
|
/* 02986010 */ _t130 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986010 */ _t131 = _t130 & 0x00000001u;
|
|
/* 02986010 */ if (_t131) goto L_02986014; else goto L_02985F70;
|
|
L_02986014: ; // 0x2986014
|
|
/* 02986014 */ goto L_02986044;
|
|
L_02986018: ; // 0x2986018
|
|
/* 02986018 */ _t132 = cpu->r[12] + 0x00000094u;
|
|
/* 02986018 */ cpu->r[4] = rbrew_read32(cpu->mem, _t132);
|
|
/* 0298601C */ cpu->r[3] = cpu->r[20];
|
|
/* 02986020 */ Gambit_fn_0298519C(cpu);
|
|
/* 02986024 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986028 */ _t133 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986028 */ _t134 = _t133 & 0x00000001u;
|
|
/* 02986028 */ if (_t134) goto L_02986038; else goto L_0298602C;
|
|
L_0298602C: ; // 0x298602c
|
|
/* 0298602C */ _t135 = cpu->r[19] + 0x00000000u;
|
|
/* 0298602C */ rbrew_write32(cpu->mem, _t135, cpu->r[15]);
|
|
/* 02986030 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 02986034 */ cpu->r[19] = cpu->r[19] + 0x00000004u;
|
|
L_02986038: ; // 0x2986038
|
|
/* 02986038 */ cpu->r[17] = cpu->r[17] + 0x0000000Cu;
|
|
/* 0298603C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[23]);
|
|
/* 02986040 */ _t136 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986040 */ _t137 = _t136 & 0x00000001u;
|
|
/* 02986040 */ if (_t137) goto L_02986044; else goto L_02985F70;
|
|
L_02986044: ; // 0x2986044
|
|
/* 02986044 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02986048 */ _t138 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986048 */ _t139 = _t138 & 0x00000001u;
|
|
/* 02986048 */ if (_t139) goto L_0298604C; else goto L_02986100;
|
|
L_0298604C: ; // 0x298604c
|
|
/* 0298604C */ _t140 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298604C */ cpu->r[3] = rbrew_read32(cpu->mem, _t140);
|
|
/* 02986050 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986054 */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986054 */ _t142 = _t141 & 0x00000001u;
|
|
/* 02986054 */ if (_t142) goto L_02986058; else goto L_02986064;
|
|
L_02986058: ; // 0x2986058
|
|
/* 02986058 */ _t143 = cpu->r[1] + 0x00000024u;
|
|
/* 02986058 */ cpu->r[7] = rbrew_read32(cpu->mem, _t143);
|
|
/* 0298605C */ _t144 = cpu->r[7] + 0x00000000u;
|
|
/* 0298605C */ cpu->r[3] = rbrew_read32(cpu->mem, _t144);
|
|
/* 02986060 */ Gambit_fn_02826F20(cpu);
|
|
L_02986064: ; // 0x2986064
|
|
/* 02986064 */ _t145 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02986064 */ cpu->r[8] = rbrew_read32(cpu->mem, _t145);
|
|
/* 02986068 */ _t146 = cpu->r[8] + 0x00000034u;
|
|
/* 02986068 */ cpu->r[0] = rbrew_read32(cpu->mem, _t146);
|
|
/* 0298606C */ cpu->ctr = cpu->r[0];
|
|
/* 02986070 */ cpu->r[5] = 0x00000004u;
|
|
/* 02986074 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02986078 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298607C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02986080 */ cpu->r[0] = cpu->r[31];
|
|
/* 02986084 */ _t147 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986084 */ _t148 = _t147 & 0x00000001u;
|
|
/* 02986084 */ if (_t148) goto L_0298608C; else goto L_02986088;
|
|
L_02986088: ; // 0x2986088
|
|
/* 02986088 */ cpu->r[0] = 0x00000001u;
|
|
L_0298608C: ; // 0x298608c
|
|
/* 0298608C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986090 */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986090 */ _t150 = _t149 & 0x00000001u;
|
|
/* 02986090 */ if (_t150) goto L_02986094; else goto L_029860B4;
|
|
L_02986094: ; // 0x2986094
|
|
/* 02986094 */ _t151 = cpu->r[21] + 0x00000004u;
|
|
/* 02986094 */ cpu->r[0] = rbrew_read32(cpu->mem, _t151);
|
|
/* 02986098 */ _t152 = cpu->r[21] + 0x00000008u;
|
|
/* 02986098 */ cpu->r[3] = rbrew_read32(cpu->mem, _t152);
|
|
/* 0298609C */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 029860A0 */ cpu->r[7] = cpu->r[3];
|
|
/* 029860A4 */ cpu->r[0] = cpu->r[3] + cpu->r[12];
|
|
/* 029860A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 029860AC */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029860AC */ _t154 = _t153 & 0x00000001u;
|
|
/* 029860AC */ if (_t154) goto L_029860F0; else goto L_029860B0;
|
|
L_029860B0: ; // 0x29860b0
|
|
/* 029860B0 */ goto L_029860D0;
|
|
L_029860B4: ; // 0x29860b4
|
|
/* 029860B4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 029860B8 */ cpu->r[7] = cpu->r[3];
|
|
/* 029860BC */ cpu->r[0] = cpu->r[3] + cpu->r[12];
|
|
/* 029860C0 */ _t155 = cpu->r[21] + 0x00000004u;
|
|
/* 029860C0 */ rbrew_write32(cpu->mem, _t155, cpu->r[31]);
|
|
/* 029860C4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 029860C8 */ _t156 = cpu->r[21] + 0x00000008u;
|
|
/* 029860C8 */ rbrew_write32(cpu->mem, _t156, cpu->r[3]);
|
|
/* 029860CC */ _t157 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029860CC */ _t158 = _t157 & 0x00000001u;
|
|
/* 029860CC */ if (_t158) goto L_029860F0; else goto L_029860D0;
|
|
L_029860D0: ; // 0x29860d0
|
|
/* 029860D0 */ cpu->r[8] = cpu->r[1] + 0x00000040u;
|
|
L_029860D4: ; // 0x29860d4
|
|
/* 029860D4 */ cpu->r[4] = cpu->r[7] - cpu->r[3];
|
|
/* 029860D8 */ cpu->r[5] = rbrew_rlwinm(cpu->r[4], 0x00000001u, 0x00000000u, 0x0000001Du);
|
|
/* 029860DC */ _t159 = cpu->r[5] + cpu->r[8];
|
|
/* 029860DC */ cpu->r[6] = rbrew_read32(cpu->mem, _t159);
|
|
/* 029860E0 */ _t160 = cpu->r[7] + 0x00000000u;
|
|
/* 029860E0 */ rbrew_write16(cpu->mem, _t160, (uint16_t)cpu->r[6]);
|
|
/* 029860E4 */ cpu->r[7] = cpu->r[7] + 0x00000002u;
|
|
/* 029860E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 029860EC */ _t161 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029860EC */ _t162 = _t161 & 0x00000001u;
|
|
/* 029860EC */ if (_t162) goto L_029860F0; else goto L_029860D4;
|
|
L_029860F0: ; // 0x29860f0
|
|
/* 029860F0 */ _t163 = cpu->r[1] + 0x00000020u;
|
|
/* 029860F0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t163);
|
|
/* 029860F4 */ cpu->r[9] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 029860F8 */ cpu->r[0] = cpu->r[5] + cpu->r[9];
|
|
/* 029860FC */ _t164 = cpu->r[1] + 0x00000020u;
|
|
/* 029860FC */ rbrew_write32(cpu->mem, _t164, cpu->r[0]);
|
|
L_02986100: ; // 0x2986100
|
|
/* 02986100 */ _t165 = cpu->r[1] + 0x00000034u;
|
|
/* 02986100 */ cpu->r[11] = rbrew_read32(cpu->mem, _t165);
|
|
/* 02986104 */ _t166 = cpu->r[1] + 0x00000038u;
|
|
/* 02986104 */ cpu->r[4] = rbrew_read32(cpu->mem, _t166);
|
|
/* 02986108 */ cpu->r[10] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 02986108 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298610C */ _t167 = cpu->r[1] + 0x00000008u;
|
|
/* 0298610C */ cpu->r[7] = rbrew_read32(cpu->mem, _t167);
|
|
/* 02986110 */ cpu->r[0] = cpu->r[4] + 0x00000008u;
|
|
/* 02986114 */ _t168 = cpu->r[1] + 0x00000034u;
|
|
/* 02986114 */ rbrew_write32(cpu->mem, _t168, cpu->r[10]);
|
|
/* 02986118 */ cpu->r[5] = cpu->r[7] + 0x00000001u;
|
|
/* 0298611C */ _t169 = cpu->r[1] + 0x00000038u;
|
|
/* 0298611C */ rbrew_write32(cpu->mem, _t169, cpu->r[0]);
|
|
/* 02986120 */ _t170 = cpu->r[1] + 0x00000008u;
|
|
/* 02986120 */ rbrew_write32(cpu->mem, _t170, cpu->r[5]);
|
|
/* 02986124 */ _t171 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986124 */ _t172 = _t171 & 0x00000001u;
|
|
/* 02986124 */ if (_t172) goto L_02986150; else goto L_02986128;
|
|
L_02986128: ; // 0x2986128
|
|
/* 02986128 */ _t173 = cpu->r[14] + 0x00000000u;
|
|
/* 02986128 */ cpu->r[4] = rbrew_read32(cpu->mem, _t173);
|
|
/* 0298612C */ _t174 = cpu->r[4] + 0x0000001Cu;
|
|
/* 0298612C */ cpu->r[9] = rbrew_read32(cpu->mem, _t174);
|
|
/* 02986130 */ cpu->r[31] = 0x00000000u;
|
|
/* 02986134 */ _t175 = cpu->r[9] + 0x00000034u;
|
|
/* 02986134 */ cpu->r[4] = rbrew_read32(cpu->mem, _t175);
|
|
/* 02986138 */ cpu->r[10] = cpu->r[31];
|
|
/* 0298613C */ _t176 = cpu->r[1] + 0x00000008u;
|
|
/* 0298613C */ cpu->r[11] = rbrew_read32(cpu->mem, _t176);
|
|
/* 02986140 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02986144 */ cpu->r[6] = cpu->r[9] + 0x00000034u;
|
|
/* 02986148 */ _t177 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986148 */ _t178 = _t177 & 0x00000001u;
|
|
/* 02986148 */ if (_t178) goto L_02985DF8; else goto L_0298614C;
|
|
L_0298614C: ; // 0x298614c
|
|
/* 0298614C */ goto L_02985DF4;
|
|
L_02986150: ; // 0x2986150
|
|
/* 02986150 */ _t179 = cpu->r[1] + 0x00000010u;
|
|
/* 02986150 */ cpu->r[11] = rbrew_read32(cpu->mem, _t179);
|
|
/* 02986154 */ cpu->r[14] = cpu->r[14] + 0x00000004u;
|
|
/* 02986158 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[11]);
|
|
/* 0298615C */ _t180 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298615C */ _t181 = _t180 & 0x00000001u;
|
|
/* 0298615C */ if (_t181) goto L_02986160; else goto L_02985D90;
|
|
L_02986160: ; // 0x2986160
|
|
/* 02986160 */ _t182 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02986160 */ cpu->r[10] = rbrew_read32(cpu->mem, _t182);
|
|
/* 02986164 */ cpu->r[3] = cpu->r[29];
|
|
/* 02986168 */ _t183 = cpu->r[10] + 0x00000084u;
|
|
/* 02986168 */ cpu->r[31] = rbrew_read32(cpu->mem, _t183);
|
|
/* 0298616C */ Gambit_fn_02C51884(cpu);
|
|
/* 02986170 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[31]);
|
|
/* 02986174 */ _t184 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986174 */ _t185 = _t184 & 0x00000001u;
|
|
/* 02986174 */ if (_t185) goto L_02986178; else goto L_0298617C;
|
|
L_02986178: ; // 0x2986178
|
|
/* 02986178 */ cpu->r[31] = cpu->r[3];
|
|
L_0298617C: ; // 0x298617c
|
|
/* 0298617C */ _t186 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298617C */ cpu->r[9] = rbrew_read32(cpu->mem, _t186);
|
|
/* 02986180 */ _t187 = cpu->r[1] + 0x00000020u;
|
|
/* 02986180 */ cpu->r[3] = rbrew_read32(cpu->mem, _t187);
|
|
/* 02986184 */ _t188 = cpu->r[9] + 0x00000084u;
|
|
/* 02986184 */ rbrew_write32(cpu->mem, _t188, cpu->r[31]);
|
|
/* 02986188 */ /* nop */
|
|
/* 0298618C */ _t189 = cpu->r[1] + 0x0000048Cu;
|
|
/* 0298618C */ cpu->r[0] = rbrew_read32(cpu->mem, _t189);
|
|
/* 02986190 */ cpu->lr = cpu->r[0];
|
|
/* 02986194 */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 02986198 */ return;
|
|
}
|
|
|
|
// fn_0298619C @ 0x298619c
|
|
void Gambit_fn_0298619C(CPUState* cpu) {
|
|
uint32_t _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_0298619C: ; // 0x298619c
|
|
/* 0298619C */ cpu->r[0] = cpu->lr;
|
|
/* 029861A0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029861A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029861A0 */ cpu->r[1] = _t0;
|
|
/* 029861A4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029861A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029861A8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029861A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 029861AC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029861AC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029861B0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 029861B0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 029861B4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029861B4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029861B8 */ _t6 = cpu->r[3] + 0x00000016u;
|
|
/* 029861B8 */ cpu->r[28] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029861BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029861C0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029861C0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029861C0 */ if (_t8) goto L_02986254; else goto L_029861C4;
|
|
L_029861C4: ; // 0x29861c4
|
|
/* 029861C4 */ cpu->r[30] = cpu->r[3] + 0x0000002Cu;
|
|
/* 029861C8 */ cpu->r[31] = cpu->r[4] + 0x00000018u;
|
|
/* 029861CC */ cpu->r[29] = 0x00000000u;
|
|
L_029861D0: ; // 0x29861d0
|
|
/* 029861D0 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 029861D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029861D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 029861D8 */ cpu->r[8] = 0x00000000u;
|
|
/* 029861DC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029861DC */ _t11 = _t10 & 0x00000001u;
|
|
/* 029861DC */ if (_t11) goto L_029861E4; else goto L_029861E0;
|
|
L_029861E0: ; // 0x29861e0
|
|
/* 029861E0 */ cpu->r[8] = cpu->r[30] + cpu->r[10];
|
|
L_029861E4: ; // 0x29861e4
|
|
/* 029861E4 */ cpu->r[12] = cpu->r[8] + cpu->r[29];
|
|
/* 029861E8 */ _t12 = cpu->r[12] + 0x0000000Cu;
|
|
/* 029861E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029861EC */ cpu->r[9] = cpu->r[12] + 0x0000000Cu;
|
|
/* 029861F0 */ cpu->r[4] = 0x00000000u;
|
|
/* 029861F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 029861F8 */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 029861F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029861FC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029861FC */ _t15 = _t14 & 0x00000001u;
|
|
/* 029861FC */ if (_t15) goto L_02986208; else goto L_02986200;
|
|
L_02986200: ; // 0x2986200
|
|
/* 02986200 */ cpu->r[7] = cpu->r[9] + cpu->r[11];
|
|
/* 02986204 */ cpu->r[4] = cpu->r[7] + 0xFFFFFFFCu;
|
|
L_02986208: ; // 0x2986208
|
|
/* 02986208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298620C */ cpu->r[3] = 0x00000000u;
|
|
/* 02986210 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986210 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02986210 */ if (_t17) goto L_02986218; else goto L_02986214;
|
|
L_02986214: ; // 0x2986214
|
|
/* 02986214 */ cpu->r[3] = cpu->r[31] + cpu->r[0];
|
|
L_02986218: ; // 0x2986218
|
|
/* 02986218 */ Gambit_fn_02C605E4(cpu);
|
|
/* 0298621C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986220 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986220 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02986220 */ if (_t19) goto L_02986248; else goto L_02986224;
|
|
L_02986224: ; // 0x2986224
|
|
/* 02986224 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 02986224 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02986228 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02986228 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298622C */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298622C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02986230 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 02986230 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02986234 */ cpu->lr = cpu->r[0];
|
|
/* 02986238 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 02986238 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298623C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02986240 */ cpu->r[3] = 0x00000001u;
|
|
/* 02986244 */ return;
|
|
L_02986248: ; // 0x2986248
|
|
/* 02986248 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 02986248 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298624C */ cpu->r[29] = cpu->r[29] + 0x0000001Cu;
|
|
/* 02986250 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986250 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02986250 */ if (_t26) goto L_02986254; else goto L_029861D0;
|
|
L_02986254: ; // 0x2986254
|
|
/* 02986254 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 02986254 */ cpu->r[28] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02986258 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02986258 */ cpu->r[29] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298625C */ _t29 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298625C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02986260 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 02986260 */ cpu->r[30] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02986264 */ cpu->lr = cpu->r[0];
|
|
/* 02986268 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 02986268 */ cpu->r[31] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298626C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02986270 */ cpu->r[3] = 0x00000000u;
|
|
/* 02986274 */ return;
|
|
}
|
|
|
|
// fn_029861A0 @ 0x29861a0
|
|
void Gambit_fn_029861A0(CPUState* cpu) {
|
|
uint32_t _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_029861A0: ; // 0x29861a0
|
|
/* 029861A0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029861A0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029861A0 */ cpu->r[1] = _t0;
|
|
/* 029861A4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029861A4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029861A8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029861A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 029861AC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029861AC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029861B0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 029861B0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 029861B4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029861B4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029861B8 */ _t6 = cpu->r[3] + 0x00000016u;
|
|
/* 029861B8 */ cpu->r[28] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029861BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029861C0 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029861C0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029861C0 */ if (_t8) goto L_02986254; else goto L_029861C4;
|
|
L_029861C4: ; // 0x29861c4
|
|
/* 029861C4 */ cpu->r[30] = cpu->r[3] + 0x0000002Cu;
|
|
/* 029861C8 */ cpu->r[31] = cpu->r[4] + 0x00000018u;
|
|
/* 029861CC */ cpu->r[29] = 0x00000000u;
|
|
L_029861D0: ; // 0x29861d0
|
|
/* 029861D0 */ _t9 = cpu->r[30] + 0x00000000u;
|
|
/* 029861D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029861D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 029861D8 */ cpu->r[8] = 0x00000000u;
|
|
/* 029861DC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029861DC */ _t11 = _t10 & 0x00000001u;
|
|
/* 029861DC */ if (_t11) goto L_029861E4; else goto L_029861E0;
|
|
L_029861E0: ; // 0x29861e0
|
|
/* 029861E0 */ cpu->r[8] = cpu->r[30] + cpu->r[10];
|
|
L_029861E4: ; // 0x29861e4
|
|
/* 029861E4 */ cpu->r[12] = cpu->r[8] + cpu->r[29];
|
|
/* 029861E8 */ _t12 = cpu->r[12] + 0x0000000Cu;
|
|
/* 029861E8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029861EC */ cpu->r[9] = cpu->r[12] + 0x0000000Cu;
|
|
/* 029861F0 */ cpu->r[4] = 0x00000000u;
|
|
/* 029861F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 029861F8 */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 029861F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029861FC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029861FC */ _t15 = _t14 & 0x00000001u;
|
|
/* 029861FC */ if (_t15) goto L_02986208; else goto L_02986200;
|
|
L_02986200: ; // 0x2986200
|
|
/* 02986200 */ cpu->r[7] = cpu->r[9] + cpu->r[11];
|
|
/* 02986204 */ cpu->r[4] = cpu->r[7] + 0xFFFFFFFCu;
|
|
L_02986208: ; // 0x2986208
|
|
/* 02986208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298620C */ cpu->r[3] = 0x00000000u;
|
|
/* 02986210 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986210 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02986210 */ if (_t17) goto L_02986218; else goto L_02986214;
|
|
L_02986214: ; // 0x2986214
|
|
/* 02986214 */ cpu->r[3] = cpu->r[31] + cpu->r[0];
|
|
L_02986218: ; // 0x2986218
|
|
/* 02986218 */ Gambit_fn_02C605E4(cpu);
|
|
/* 0298621C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986220 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986220 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02986220 */ if (_t19) goto L_02986248; else goto L_02986224;
|
|
L_02986224: ; // 0x2986224
|
|
/* 02986224 */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 02986224 */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02986228 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02986228 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298622C */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298622C */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02986230 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 02986230 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02986234 */ cpu->lr = cpu->r[0];
|
|
/* 02986238 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 02986238 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298623C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02986240 */ cpu->r[3] = 0x00000001u;
|
|
/* 02986244 */ return;
|
|
L_02986248: ; // 0x2986248
|
|
/* 02986248 */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 02986248 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298624C */ cpu->r[29] = cpu->r[29] + 0x0000001Cu;
|
|
/* 02986250 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986250 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02986250 */ if (_t26) goto L_02986254; else goto L_029861D0;
|
|
L_02986254: ; // 0x2986254
|
|
/* 02986254 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 02986254 */ cpu->r[28] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02986258 */ _t28 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02986258 */ cpu->r[29] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298625C */ _t29 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298625C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02986260 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 02986260 */ cpu->r[30] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02986264 */ cpu->lr = cpu->r[0];
|
|
/* 02986268 */ _t31 = cpu->r[1] + 0x00000014u;
|
|
/* 02986268 */ cpu->r[31] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298626C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02986270 */ cpu->r[3] = 0x00000000u;
|
|
/* 02986274 */ return;
|
|
}
|
|
|
|
// fn_02986278 @ 0x2986278
|
|
void Gambit_fn_02986278(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189, _t190, _t191, _t192, _t193, _t194, _t195, _t196, _t197;
|
|
|
|
L_02986278: ; // 0x2986278
|
|
/* 02986278 */ _t0 = cpu->r[1] + 0xFFFFFB78u;
|
|
/* 02986278 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02986278 */ cpu->r[1] = _t0;
|
|
/* 0298627C */ /* nop */
|
|
/* 02986280 */ cpu->r[28] = cpu->r[9];
|
|
/* 02986284 */ cpu->r[0] = cpu->lr;
|
|
/* 02986288 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02986288 */ rbrew_write32(cpu->mem, _t1, cpu->r[3]);
|
|
/* 0298628C */ _t2 = cpu->r[1] + 0x00000018u;
|
|
/* 0298628C */ rbrew_write32(cpu->mem, _t2, cpu->r[5]);
|
|
/* 02986290 */ cpu->r[26] = cpu->r[6];
|
|
/* 02986294 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02986294 */ rbrew_write32(cpu->mem, _t3, cpu->r[10]);
|
|
/* 02986298 */ cpu->r[31] = cpu->r[7];
|
|
/* 02986298 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298629C */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 0298629C */ rbrew_write32(cpu->mem, _t4, cpu->r[8]);
|
|
/* 029862A0 */ _t5 = cpu->r[1] + 0x0000048Cu;
|
|
/* 029862A0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029862A4 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029862A4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029862A4 */ if (_t7) goto L_029862C0; else goto L_029862A8;
|
|
L_029862A8: ; // 0x29862a8
|
|
/* 029862A8 */ /* nop */
|
|
/* 029862AC */ _t8 = cpu->r[1] + 0x0000048Cu;
|
|
/* 029862AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029862B0 */ cpu->lr = cpu->r[0];
|
|
/* 029862B4 */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 029862B8 */ cpu->r[3] = 0x00000000u;
|
|
/* 029862BC */ return;
|
|
L_029862C0: ; // 0x29862c0
|
|
/* 029862C0 */ cpu->r[0] = 0x00000000u;
|
|
/* 029862C4 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029862C4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029862C8 */ cpu->r[5] = 0x101D0000u;
|
|
/* 029862CC */ _t10 = cpu->r[1] + 0x00000028u;
|
|
/* 029862CC */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 029862D0 */ cpu->r[5] = cpu->r[5] + 0xFFFF98F0u;
|
|
/* 029862D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029862D8 */ _t11 = cpu->r[1] + 0x00000020u;
|
|
/* 029862D8 */ rbrew_write32(cpu->mem, _t11, cpu->r[5]);
|
|
/* 029862DC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029862DC */ _t13 = _t12 & 0x00000001u;
|
|
/* 029862DC */ if (_t13) goto L_029862E0; else goto L_029862EC;
|
|
L_029862E0: ; // 0x29862e0
|
|
/* 029862E0 */ _t14 = cpu->r[1] + 0x00000020u;
|
|
/* 029862E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029862E4 */ _t15 = cpu->r[12] + 0x00000000u;
|
|
/* 029862E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 029862E8 */ Gambit_fn_02826F20(cpu);
|
|
L_029862EC: ; // 0x29862ec
|
|
/* 029862EC */ _t16 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029862EC */ cpu->r[11] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029862F0 */ _t17 = cpu->r[11] + 0x00000034u;
|
|
/* 029862F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029862F4 */ cpu->ctr = cpu->r[0];
|
|
/* 029862F8 */ cpu->r[5] = 0x00000004u;
|
|
/* 029862FC */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 02986300 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02986304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02986308 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298630C */ cpu->r[12] = 0x00000000u;
|
|
/* 02986310 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986310 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02986310 */ if (_t19) goto L_02986318; else goto L_02986314;
|
|
L_02986314: ; // 0x2986314
|
|
/* 02986314 */ cpu->r[4] = 0x00000001u;
|
|
L_02986318: ; // 0x2986318
|
|
/* 02986318 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[12] * (int32_t)0x0000000Cu);
|
|
/* 0298631C */ cpu->ctr = cpu->r[4];
|
|
/* 02986320 */ cpu->r[5] = 0x00000000u;
|
|
L_02986324: ; // 0x2986324
|
|
/* 02986324 */ cpu->r[9] = cpu->r[3] + cpu->r[11];
|
|
/* 02986324 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02986328 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986328 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02986328 */ if (_t21) goto L_02986334; else goto L_0298632C;
|
|
L_0298632C: ; // 0x298632c
|
|
/* 0298632C */ _t22 = cpu->r[9] + 0x00000008u;
|
|
/* 0298632C */ rbrew_write32(cpu->mem, _t22, cpu->r[5]);
|
|
/* 02986330 */ _t23 = cpu->r[9] + 0x00000004u;
|
|
/* 02986330 */ rbrew_write32(cpu->mem, _t23, cpu->r[5]);
|
|
L_02986334: ; // 0x2986334
|
|
/* 02986334 */ cpu->r[11] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02986338 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02986338 */ _t24 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02986338 */ _t25 = _t24 >> (0x00000002u & 31u);
|
|
/* 02986338 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02986338 */ if (_t26) goto L_02986324; else goto L_0298633C;
|
|
L_0298633C: ; // 0x298633c
|
|
/* 0298633C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986340 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986340 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02986340 */ if (_t28) goto L_02986350; else goto L_02986344;
|
|
L_02986344: ; // 0x2986344
|
|
/* 02986344 */ _t29 = cpu->r[1] + 0x00000010u;
|
|
/* 02986344 */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02986348 */ _t30 = cpu->r[11] + 0x00000000u;
|
|
/* 02986348 */ rbrew_write32(cpu->mem, _t30, cpu->r[31]);
|
|
/* 0298634C */ _t31 = cpu->r[11] + 0x00000004u;
|
|
/* 0298634C */ rbrew_write32(cpu->mem, _t31, cpu->r[3]);
|
|
L_02986350: ; // 0x2986350
|
|
/* 02986350 */ _t32 = cpu->r[1] + 0x00000024u;
|
|
/* 02986350 */ cpu->r[8] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02986354 */ _t33 = cpu->r[8] + 0x00000074u;
|
|
/* 02986354 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02986358 */ _t34 = cpu->r[8] + 0x0000007Cu;
|
|
/* 02986358 */ cpu->r[14] = rbrew_read32(cpu->mem, _t34);
|
|
/* 0298635C */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02986360 */ cpu->r[4] = 0x00000000u;
|
|
/* 02986364 */ cpu->r[0] = cpu->r[14] + cpu->r[10];
|
|
/* 02986368 */ _t35 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02986368 */ rbrew_write32(cpu->mem, _t35, cpu->r[4]);
|
|
/* 0298636C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[0]);
|
|
/* 02986370 */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 02986370 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 02986374 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986374 */ _t38 = _t37 & 0x00000001u;
|
|
/* 02986374 */ if (_t38) goto L_02986770; else goto L_02986378;
|
|
L_02986378: ; // 0x2986378
|
|
/* 02986378 */ _t39 = cpu->r[14] + 0x00000000u;
|
|
/* 02986378 */ cpu->r[6] = rbrew_read32(cpu->mem, _t39);
|
|
/* 0298637C */ _t40 = cpu->r[6] + 0x0000001Cu;
|
|
/* 0298637C */ cpu->r[9] = rbrew_read32(cpu->mem, _t40);
|
|
/* 02986380 */ _t41 = cpu->r[9] + 0x0000005Cu;
|
|
/* 02986380 */ cpu->r[0] = rbrew_read16(cpu->mem, _t41);
|
|
/* 02986384 */ cpu->r[9] = 0x00000000u;
|
|
/* 02986388 */ _t42 = cpu->r[1] + 0x00000034u;
|
|
/* 02986388 */ rbrew_write32(cpu->mem, _t42, cpu->r[0]);
|
|
/* 0298638C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02986390 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 02986390 */ rbrew_write32(cpu->mem, _t43, cpu->r[9]);
|
|
/* 02986394 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986394 */ _t45 = _t44 & 0x00000001u;
|
|
/* 02986394 */ if (_t45) goto L_02986760; else goto L_02986398;
|
|
L_02986398: ; // 0x2986398
|
|
/* 02986398 */ _t46 = cpu->r[1] + 0x00000018u;
|
|
/* 02986398 */ cpu->r[5] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298639C */ cpu->r[7] = 0x00000000u;
|
|
/* 029863A0 */ cpu->r[25] = cpu->r[26] + 0x00000010u;
|
|
/* 029863A4 */ _t47 = cpu->r[1] + 0x00000038u;
|
|
/* 029863A4 */ rbrew_write32(cpu->mem, _t47, cpu->r[7]);
|
|
/* 029863A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029863AC */ cpu->r[24] = cpu->r[26] + 0x0000000Cu;
|
|
/* 029863B0 */ _t48 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029863B0 */ rbrew_write32(cpu->mem, _t48, cpu->r[7]);
|
|
/* 029863B4 */ cpu->r[23] = cpu->r[26] + 0x00000008u;
|
|
/* 029863B8 */ cpu->r[22] = cpu->r[26] + 0x00000004u;
|
|
/* 029863BC */ _t49 = cpu->r[1] + 0x00000030u;
|
|
/* 029863BC */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 029863C0 */ _t50 = cpu->r[6] + 0x0000001Cu;
|
|
/* 029863C0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t50);
|
|
/* 029863C4 */ cpu->r[27] = 0x00000000u;
|
|
/* 029863C8 */ _t51 = cpu->r[7] + 0x00000038u;
|
|
/* 029863C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 029863CC */ cpu->r[8] = cpu->r[27];
|
|
/* 029863D0 */ cpu->r[5] = cpu->r[7] + 0x00000038u;
|
|
/* 029863D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029863D8 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 029863D8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t52);
|
|
/* 029863DC */ _t53 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029863DC */ _t54 = _t53 & 0x00000001u;
|
|
/* 029863DC */ if (_t54) goto L_029863E4; else goto L_029863E0;
|
|
L_029863E0: ; // 0x29863e0
|
|
/* 029863E0 */ cpu->r[8] = cpu->r[5] + cpu->r[0];
|
|
L_029863E4: ; // 0x29863e4
|
|
/* 029863E4 */ cpu->r[7] = rbrew_rlwinm(cpu->r[9], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 029863E8 */ cpu->r[9] = cpu->r[8] + cpu->r[7];
|
|
/* 029863EC */ _t55 = cpu->r[9] + 0x00000024u;
|
|
/* 029863EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t55);
|
|
/* 029863EC */ cpu->r[9] = _t55;
|
|
/* 029863F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029863F4 */ cpu->r[10] = 0x00000000u;
|
|
/* 029863F8 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029863F8 */ _t57 = _t56 & 0x00000001u;
|
|
/* 029863F8 */ if (_t57) goto L_02986400; else goto L_029863FC;
|
|
L_029863FC: ; // 0x29863fc
|
|
/* 029863FC */ cpu->r[10] = cpu->r[9] + cpu->r[12];
|
|
L_02986400: ; // 0x2986400
|
|
/* 02986400 */ _t58 = cpu->r[22] + 0x00000000u;
|
|
/* 02986400 */ cpu->r[12] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02986404 */ cpu->r[18] = cpu->r[10];
|
|
/* 02986408 */ _t59 = cpu->r[18] + 0x00000016u;
|
|
/* 02986408 */ cpu->r[10] = rbrew_read16(cpu->mem, _t59);
|
|
/* 0298640C */ cpu->r[11] = cpu->r[1] + 0x00000040u;
|
|
/* 02986410 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[10]);
|
|
/* 02986414 */ _t60 = cpu->r[1] + 0x00000040u;
|
|
/* 02986414 */ rbrew_write32(cpu->mem, _t60, cpu->r[10]);
|
|
/* 02986418 */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986418 */ _t62 = _t61 & 0x00000001u;
|
|
/* 02986418 */ if (_t62) goto L_02986420; else goto L_0298641C;
|
|
L_0298641C: ; // 0x298641c
|
|
/* 0298641C */ cpu->r[11] = cpu->r[22];
|
|
L_02986420: ; // 0x2986420
|
|
/* 02986420 */ _t63 = cpu->r[11] + 0x00000000u;
|
|
/* 02986420 */ cpu->r[12] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02986424 */ _t64 = cpu->r[22] + 0x00000000u;
|
|
/* 02986424 */ rbrew_write32(cpu->mem, _t64, cpu->r[12]);
|
|
/* 02986428 */ _t65 = cpu->r[18] + 0x00000018u;
|
|
/* 02986428 */ cpu->r[10] = rbrew_read32(cpu->mem, _t65);
|
|
/* 0298642C */ _t66 = cpu->r[23] + 0x00000000u;
|
|
/* 0298642C */ cpu->r[4] = rbrew_read32(cpu->mem, _t66);
|
|
/* 02986430 */ _t67 = cpu->r[1] + 0x00000040u;
|
|
/* 02986430 */ rbrew_write32(cpu->mem, _t67, cpu->r[10]);
|
|
/* 02986434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[10]);
|
|
/* 02986438 */ cpu->r[4] = cpu->r[1] + 0x00000040u;
|
|
/* 0298643C */ _t68 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298643C */ _t69 = _t68 & 0x00000001u;
|
|
/* 0298643C */ if (_t69) goto L_02986444; else goto L_02986440;
|
|
L_02986440: ; // 0x2986440
|
|
/* 02986440 */ cpu->r[4] = cpu->r[23];
|
|
L_02986444: ; // 0x2986444
|
|
/* 02986444 */ _t70 = cpu->r[4] + 0x00000000u;
|
|
/* 02986444 */ cpu->r[6] = rbrew_read32(cpu->mem, _t70);
|
|
/* 02986448 */ _t71 = cpu->r[23] + 0x00000000u;
|
|
/* 02986448 */ rbrew_write32(cpu->mem, _t71, cpu->r[6]);
|
|
/* 0298644C */ _t72 = cpu->r[18] + 0x0000001Cu;
|
|
/* 0298644C */ cpu->r[10] = rbrew_read32(cpu->mem, _t72);
|
|
/* 02986450 */ _t73 = cpu->r[24] + 0x00000000u;
|
|
/* 02986450 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 02986454 */ _t74 = cpu->r[1] + 0x00000040u;
|
|
/* 02986454 */ rbrew_write32(cpu->mem, _t74, cpu->r[10]);
|
|
/* 02986458 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[10]);
|
|
/* 0298645C */ cpu->r[5] = cpu->r[1] + 0x00000040u;
|
|
/* 02986460 */ _t75 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986460 */ _t76 = _t75 & 0x00000001u;
|
|
/* 02986460 */ if (_t76) goto L_02986468; else goto L_02986464;
|
|
L_02986464: ; // 0x2986464
|
|
/* 02986464 */ cpu->r[5] = cpu->r[24];
|
|
L_02986468: ; // 0x2986468
|
|
/* 02986468 */ _t77 = cpu->r[5] + 0x00000000u;
|
|
/* 02986468 */ cpu->r[10] = rbrew_read32(cpu->mem, _t77);
|
|
/* 0298646C */ _t78 = cpu->r[24] + 0x00000000u;
|
|
/* 0298646C */ rbrew_write32(cpu->mem, _t78, cpu->r[10]);
|
|
/* 02986470 */ _t79 = cpu->r[18] + 0x00000014u;
|
|
/* 02986470 */ cpu->r[10] = rbrew_read16(cpu->mem, _t79);
|
|
/* 02986474 */ _t80 = cpu->r[25] + 0x00000000u;
|
|
/* 02986474 */ cpu->r[4] = rbrew_read32(cpu->mem, _t80);
|
|
/* 02986478 */ _t81 = cpu->r[1] + 0x00000040u;
|
|
/* 02986478 */ rbrew_write32(cpu->mem, _t81, cpu->r[10]);
|
|
/* 0298647C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[10]);
|
|
/* 02986480 */ cpu->r[6] = cpu->r[1] + 0x00000040u;
|
|
/* 02986484 */ _t82 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986484 */ _t83 = _t82 & 0x00000001u;
|
|
/* 02986484 */ if (_t83) goto L_0298648C; else goto L_02986488;
|
|
L_02986488: ; // 0x2986488
|
|
/* 02986488 */ cpu->r[6] = cpu->r[25];
|
|
L_0298648C: ; // 0x298648c
|
|
/* 0298648C */ _t84 = cpu->r[6] + 0x00000000u;
|
|
/* 0298648C */ cpu->r[7] = rbrew_read32(cpu->mem, _t84);
|
|
/* 02986490 */ _t85 = cpu->r[1] + 0x00000010u;
|
|
/* 02986490 */ cpu->r[4] = rbrew_read32(cpu->mem, _t85);
|
|
/* 02986494 */ _t86 = cpu->r[25] + 0x00000000u;
|
|
/* 02986494 */ rbrew_write32(cpu->mem, _t86, cpu->r[7]);
|
|
/* 02986498 */ _t87 = cpu->r[18] + 0x0000000Cu;
|
|
/* 02986498 */ cpu->r[5] = rbrew_read16(cpu->mem, _t87);
|
|
/* 0298649C */ _t88 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298649C */ cpu->r[7] = rbrew_read32(cpu->mem, _t88);
|
|
/* 029864A0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029864A4 */ _t89 = cpu->r[26] + 0x00000015u;
|
|
/* 029864A4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t89);
|
|
/* 029864A8 */ cpu->r[5] = cpu->r[9] ^ 0x00000001u;
|
|
/* 029864AC */ _t90 = cpu->r[26] + 0x0000001Cu;
|
|
/* 029864AC */ rbrew_write32(cpu->mem, _t90, cpu->r[7]);
|
|
/* 029864B0 */ cpu->r[0] = cpu->r[0] | cpu->r[5];
|
|
/* 029864B4 */ _t91 = cpu->r[26] + 0x00000018u;
|
|
/* 029864B4 */ rbrew_write32(cpu->mem, _t91, cpu->r[7]);
|
|
/* 029864B8 */ _t92 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029864B8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t92);
|
|
/* 029864BC */ _t93 = cpu->r[26] + 0x00000015u;
|
|
/* 029864BC */ rbrew_write8(cpu->mem, _t93, (uint8_t)cpu->r[0]);
|
|
/* 029864C0 */ _t94 = cpu->r[4] + 0x00000000u;
|
|
/* 029864C0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t94);
|
|
/* 029864C4 */ cpu->r[0] = cpu->r[7] + 0x00000001u;
|
|
/* 029864C8 */ _t95 = cpu->r[4] + 0x00000004u;
|
|
/* 029864C8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t95);
|
|
/* 029864CC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[11]);
|
|
/* 029864D0 */ _t96 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029864D0 */ rbrew_write32(cpu->mem, _t96, cpu->r[0]);
|
|
/* 029864D4 */ _t97 = cpu->r[14] + 0x00000000u;
|
|
/* 029864D4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t97);
|
|
/* 029864D8 */ _t98 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029864D8 */ _t99 = _t98 & 0x00000001u;
|
|
/* 029864D8 */ if (_t99) goto L_029864DC; else goto L_0298651C;
|
|
L_029864DC: ; // 0x29864dc
|
|
/* 029864DC */ _t100 = cpu->r[1] + 0x00000030u;
|
|
/* 029864DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t100);
|
|
/* 029864E0 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x0000000Cu);
|
|
/* 029864E4 */ cpu->r[8] = cpu->r[6] + cpu->r[0];
|
|
/* 029864E8 */ _t101 = cpu->r[8] + 0x0000002Cu;
|
|
/* 029864E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t101);
|
|
/* 029864EC */ _t102 = cpu->r[1] + 0x00000038u;
|
|
/* 029864EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t102);
|
|
/* 029864F0 */ _t103 = cpu->r[1] + 0x00000024u;
|
|
/* 029864F0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t103);
|
|
/* 029864F4 */ cpu->r[0] = cpu->r[10] + cpu->r[8];
|
|
/* 029864F8 */ _t104 = cpu->r[9] + cpu->r[4];
|
|
/* 029864F8 */ rbrew_write32(cpu->mem, _t104, cpu->r[0]);
|
|
/* 029864FC */ _t105 = cpu->r[7] + 0x00000008u;
|
|
/* 029864FC */ cpu->r[8] = rbrew_read32(cpu->mem, _t105);
|
|
/* 02986500 */ _t106 = cpu->r[7] + 0x0000000Cu;
|
|
/* 02986500 */ cpu->r[11] = rbrew_read32(cpu->mem, _t106);
|
|
/* 02986504 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000000Cu);
|
|
/* 02986508 */ cpu->r[8] = cpu->r[11] + cpu->r[12];
|
|
/* 0298650C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[8]);
|
|
/* 02986510 */ cpu->r[19] = cpu->r[9] + cpu->r[4];
|
|
/* 02986514 */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986514 */ _t108 = _t107 & 0x00000001u;
|
|
/* 02986514 */ if (_t108) goto L_02986654; else goto L_02986518;
|
|
L_02986518: ; // 0x2986518
|
|
/* 02986518 */ goto L_02986554;
|
|
L_0298651C: ; // 0x298651c
|
|
/* 0298651C */ _t109 = cpu->r[1] + 0x00000030u;
|
|
/* 0298651C */ cpu->r[0] = rbrew_read32(cpu->mem, _t109);
|
|
/* 02986520 */ cpu->r[8] = cpu->r[6] + cpu->r[0];
|
|
/* 02986524 */ _t110 = cpu->r[8] + 0x0000002Cu;
|
|
/* 02986524 */ cpu->r[10] = rbrew_read32(cpu->mem, _t110);
|
|
/* 02986528 */ _t111 = cpu->r[1] + 0x00000038u;
|
|
/* 02986528 */ cpu->r[8] = rbrew_read32(cpu->mem, _t111);
|
|
/* 0298652C */ cpu->r[19] = cpu->r[9];
|
|
/* 02986530 */ _t112 = cpu->r[1] + 0x00000024u;
|
|
/* 02986530 */ cpu->r[7] = rbrew_read32(cpu->mem, _t112);
|
|
/* 02986534 */ cpu->r[0] = cpu->r[10] + cpu->r[8];
|
|
/* 02986538 */ _t113 = cpu->r[19] + 0x00000000u;
|
|
/* 02986538 */ rbrew_write32(cpu->mem, _t113, cpu->r[0]);
|
|
/* 0298653C */ _t114 = cpu->r[7] + 0x00000008u;
|
|
/* 0298653C */ cpu->r[8] = rbrew_read32(cpu->mem, _t114);
|
|
/* 02986540 */ _t115 = cpu->r[7] + 0x0000000Cu;
|
|
/* 02986540 */ cpu->r[11] = rbrew_read32(cpu->mem, _t115);
|
|
/* 02986544 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000000Cu);
|
|
/* 02986548 */ cpu->r[8] = cpu->r[11] + cpu->r[12];
|
|
/* 0298654C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[8]);
|
|
/* 02986550 */ _t116 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986550 */ _t117 = _t116 & 0x00000001u;
|
|
/* 02986550 */ if (_t117) goto L_02986654; else goto L_02986554;
|
|
L_02986554: ; // 0x2986554
|
|
/* 02986554 */ cpu->r[17] = cpu->r[11];
|
|
/* 02986558 */ cpu->r[7] = cpu->r[1] + 0x00000044u;
|
|
/* 0298655C */ cpu->r[5] = rbrew_rlwinm(cpu->r[27], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02986560 */ cpu->r[29] = 0x101D0000u;
|
|
/* 02986564 */ cpu->r[20] = cpu->r[11];
|
|
/* 02986568 */ cpu->r[21] = cpu->r[7] + cpu->r[5];
|
|
/* 0298656C */ cpu->r[5] = 0x00000001u;
|
|
/* 02986570 */ cpu->r[31] = 0x101D0000u;
|
|
/* 02986574 */ cpu->r[30] = cpu->r[8];
|
|
/* 02986578 */ _t118 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02986578 */ rbrew_write32(cpu->mem, _t118, cpu->r[5]);
|
|
L_0298657C: ; // 0x298657c
|
|
/* 0298657C */ cpu->r[0] = 0xAAAA0000u;
|
|
/* 02986580 */ cpu->r[9] = cpu->r[17] - cpu->r[20];
|
|
/* 02986584 */ cpu->r[0] = cpu->r[0] | 0x0000AAABu;
|
|
/* 02986588 */ /* nop */
|
|
/* 0298658C */ cpu->r[15] = rbrew_rlwinm(cpu->r[15], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 02986590 */ cpu->r[16] = cpu->r[15];
|
|
/* 02986594 */ cpu->r[3] = cpu->r[28];
|
|
/* 02986598 */ cpu->r[4] = cpu->r[16];
|
|
/* 0298659C */ Gambit_fn_0297FC7C(cpu);
|
|
/* 029865A0 */ _t119 = cpu->r[28] + 0x0000001Cu;
|
|
/* 029865A0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t119);
|
|
/* 029865A4 */ cpu->r[9] = 0x00000000u;
|
|
/* 029865A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[16], cpu->r[4]);
|
|
/* 029865AC */ _t120 = cpu->r[31] + 0xFFFFE218u;
|
|
/* 029865AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t120);
|
|
/* 029865B0 */ _t121 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029865B0 */ _t122 = _t121 & 0x00000001u;
|
|
/* 029865B0 */ if (_t122) goto L_029865B4; else goto L_029865C0;
|
|
L_029865B4: ; // 0x29865b4
|
|
/* 029865B4 */ _t123 = cpu->r[28] + 0x00000024u;
|
|
/* 029865B4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t123);
|
|
/* 029865B8 */ cpu->r[6] = rbrew_rlwinm(cpu->r[16], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029865BC */ _t124 = cpu->r[6] + cpu->r[8];
|
|
/* 029865BC */ cpu->r[9] = rbrew_read32(cpu->mem, _t124);
|
|
L_029865C0: ; // 0x29865c0
|
|
/* 029865C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 029865C4 */ _t125 = cpu->r[9] + 0x00000000u;
|
|
/* 029865C4 */ cpu->r[16] = rbrew_read32(cpu->mem, _t125);
|
|
/* 029865C8 */ _t126 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029865C8 */ _t127 = _t126 & 0x00000001u;
|
|
/* 029865C8 */ if (_t127) goto L_029865CC; else goto L_029865E0;
|
|
L_029865CC: ; // 0x29865cc
|
|
/* 029865CC */ cpu->r[11] = 0x10150000u;
|
|
/* 029865D0 */ cpu->r[0] = 0x00000001u;
|
|
/* 029865D4 */ cpu->r[11] = cpu->r[11] + 0xFFFFEDC8u;
|
|
/* 029865D8 */ _t128 = cpu->r[31] + 0xFFFFE218u;
|
|
/* 029865D8 */ rbrew_write32(cpu->mem, _t128, cpu->r[0]);
|
|
/* 029865DC */ _t129 = cpu->r[29] + 0xFFFFEF88u;
|
|
/* 029865DC */ rbrew_write32(cpu->mem, _t129, cpu->r[11]);
|
|
L_029865E0: ; // 0x29865e0
|
|
/* 029865E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[16], 0x00000000u);
|
|
/* 029865E4 */ _t130 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029865E4 */ _t131 = _t130 & 0x00000001u;
|
|
/* 029865E4 */ if (_t131) goto L_02986614; else goto L_029865E8;
|
|
L_029865E8: ; // 0x29865e8
|
|
/* 029865E8 */ _t132 = cpu->r[16] + 0x00000088u;
|
|
/* 029865E8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t132);
|
|
/* 029865EC */ _t133 = cpu->r[4] + 0x0000000Cu;
|
|
/* 029865EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t133);
|
|
/* 029865F0 */ cpu->ctr = cpu->r[0];
|
|
/* 029865F4 */ cpu->r[4] = cpu->r[29] + 0xFFFFEF88u;
|
|
/* 029865F8 */ cpu->r[3] = cpu->r[16];
|
|
/* 029865FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02986600 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986604 */ _t134 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986604 */ _t135 = _t134 & 0x00000001u;
|
|
/* 02986604 */ if (_t135) goto L_02986614; else goto L_02986608;
|
|
L_02986608: ; // 0x2986608
|
|
/* 02986608 */ cpu->r[12] = cpu->r[16];
|
|
/* 02986608 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298660C */ _t136 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298660C */ _t137 = _t136 & 0x00000001u;
|
|
/* 0298660C */ if (_t137) goto L_02986610; else goto L_02986628;
|
|
L_02986610: ; // 0x2986610
|
|
/* 02986610 */ goto L_02986648;
|
|
L_02986614: ; // 0x2986614
|
|
/* 02986614 */ cpu->r[17] = cpu->r[17] + 0x0000000Cu;
|
|
/* 02986618 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[30]);
|
|
/* 0298661C */ cpu->r[12] = 0x00000000u;
|
|
/* 02986620 */ _t138 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986620 */ _t139 = _t138 & 0x00000001u;
|
|
/* 02986620 */ if (_t139) goto L_02986624; else goto L_0298657C;
|
|
L_02986624: ; // 0x2986624
|
|
/* 02986624 */ goto L_02986654;
|
|
L_02986628: ; // 0x2986628
|
|
/* 02986628 */ _t140 = cpu->r[12] + 0x00000094u;
|
|
/* 02986628 */ cpu->r[4] = rbrew_read32(cpu->mem, _t140);
|
|
/* 0298662C */ cpu->r[3] = cpu->r[18];
|
|
/* 02986630 */ Gambit_fn_0298619C(cpu);
|
|
/* 02986634 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986638 */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986638 */ _t142 = _t141 & 0x00000001u;
|
|
/* 02986638 */ if (_t142) goto L_02986648; else goto L_0298663C;
|
|
L_0298663C: ; // 0x298663c
|
|
/* 0298663C */ _t143 = cpu->r[21] + 0x00000000u;
|
|
/* 0298663C */ rbrew_write32(cpu->mem, _t143, cpu->r[15]);
|
|
/* 02986640 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 02986644 */ cpu->r[21] = cpu->r[21] + 0x00000004u;
|
|
L_02986648: ; // 0x2986648
|
|
/* 02986648 */ cpu->r[17] = cpu->r[17] + 0x0000000Cu;
|
|
/* 0298664C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[30]);
|
|
/* 02986650 */ _t144 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986650 */ _t145 = _t144 & 0x00000001u;
|
|
/* 02986650 */ if (_t145) goto L_02986654; else goto L_0298657C;
|
|
L_02986654: ; // 0x2986654
|
|
/* 02986654 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 02986658 */ _t146 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986658 */ _t147 = _t146 & 0x00000001u;
|
|
/* 02986658 */ if (_t147) goto L_0298665C; else goto L_02986710;
|
|
L_0298665C: ; // 0x298665c
|
|
/* 0298665C */ _t148 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298665C */ cpu->r[3] = rbrew_read32(cpu->mem, _t148);
|
|
/* 02986660 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986664 */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986664 */ _t150 = _t149 & 0x00000001u;
|
|
/* 02986664 */ if (_t150) goto L_02986668; else goto L_02986674;
|
|
L_02986668: ; // 0x2986668
|
|
/* 02986668 */ _t151 = cpu->r[1] + 0x00000020u;
|
|
/* 02986668 */ cpu->r[11] = rbrew_read32(cpu->mem, _t151);
|
|
/* 0298666C */ _t152 = cpu->r[11] + 0x00000000u;
|
|
/* 0298666C */ cpu->r[3] = rbrew_read32(cpu->mem, _t152);
|
|
/* 02986670 */ Gambit_fn_02826F20(cpu);
|
|
L_02986674: ; // 0x2986674
|
|
/* 02986674 */ _t153 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02986674 */ cpu->r[10] = rbrew_read32(cpu->mem, _t153);
|
|
/* 02986678 */ _t154 = cpu->r[10] + 0x00000034u;
|
|
/* 02986678 */ cpu->r[0] = rbrew_read32(cpu->mem, _t154);
|
|
/* 0298667C */ cpu->ctr = cpu->r[0];
|
|
/* 02986680 */ cpu->r[5] = 0x00000004u;
|
|
/* 02986684 */ cpu->r[4] = rbrew_rlwinm(cpu->r[27], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02986688 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298668C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 02986690 */ cpu->r[7] = cpu->r[27];
|
|
/* 02986694 */ _t155 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986694 */ _t156 = _t155 & 0x00000001u;
|
|
/* 02986694 */ if (_t156) goto L_0298669C; else goto L_02986698;
|
|
L_02986698: ; // 0x2986698
|
|
/* 02986698 */ cpu->r[7] = 0x00000001u;
|
|
L_0298669C: ; // 0x298669c
|
|
/* 0298669C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029866A0 */ _t157 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029866A0 */ _t158 = _t157 & 0x00000001u;
|
|
/* 029866A0 */ if (_t158) goto L_029866A4; else goto L_029866C4;
|
|
L_029866A4: ; // 0x29866a4
|
|
/* 029866A4 */ _t159 = cpu->r[19] + 0x00000004u;
|
|
/* 029866A4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t159);
|
|
/* 029866A8 */ _t160 = cpu->r[19] + 0x00000008u;
|
|
/* 029866A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t160);
|
|
/* 029866AC */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 029866B0 */ cpu->r[6] = cpu->r[3] + cpu->r[11];
|
|
/* 029866B4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[6]);
|
|
/* 029866B8 */ cpu->r[0] = cpu->r[3];
|
|
/* 029866BC */ _t161 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029866BC */ _t162 = _t161 & 0x00000001u;
|
|
/* 029866BC */ if (_t162) goto L_02986700; else goto L_029866C0;
|
|
L_029866C0: ; // 0x29866c0
|
|
/* 029866C0 */ goto L_029866E0;
|
|
L_029866C4: ; // 0x29866c4
|
|
/* 029866C4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[27], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 029866C8 */ _t163 = cpu->r[19] + 0x00000004u;
|
|
/* 029866C8 */ rbrew_write32(cpu->mem, _t163, cpu->r[27]);
|
|
/* 029866CC */ cpu->r[6] = cpu->r[3] + cpu->r[11];
|
|
/* 029866D0 */ _t164 = cpu->r[19] + 0x00000008u;
|
|
/* 029866D0 */ rbrew_write32(cpu->mem, _t164, cpu->r[3]);
|
|
/* 029866D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[6]);
|
|
/* 029866D8 */ cpu->r[0] = cpu->r[3];
|
|
/* 029866DC */ _t165 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029866DC */ _t166 = _t165 & 0x00000001u;
|
|
/* 029866DC */ if (_t166) goto L_02986700; else goto L_029866E0;
|
|
L_029866E0: ; // 0x29866e0
|
|
/* 029866E0 */ cpu->r[9] = cpu->r[1] + 0x00000044u;
|
|
L_029866E4: ; // 0x29866e4
|
|
/* 029866E4 */ cpu->r[12] = cpu->r[3] - cpu->r[0];
|
|
/* 029866E8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x00000000u, 0x0000001Du);
|
|
/* 029866EC */ _t167 = cpu->r[4] + cpu->r[9];
|
|
/* 029866EC */ cpu->r[5] = rbrew_read32(cpu->mem, _t167);
|
|
/* 029866F0 */ _t168 = cpu->r[3] + 0x00000000u;
|
|
/* 029866F0 */ rbrew_write16(cpu->mem, _t168, (uint16_t)cpu->r[5]);
|
|
/* 029866F4 */ cpu->r[3] = cpu->r[3] + 0x00000002u;
|
|
/* 029866F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[6]);
|
|
/* 029866FC */ _t169 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029866FC */ _t170 = _t169 & 0x00000001u;
|
|
/* 029866FC */ if (_t170) goto L_02986700; else goto L_029866E4;
|
|
L_02986700: ; // 0x2986700
|
|
/* 02986700 */ _t171 = cpu->r[1] + 0x00000028u;
|
|
/* 02986700 */ cpu->r[10] = rbrew_read32(cpu->mem, _t171);
|
|
/* 02986704 */ cpu->r[7] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 02986708 */ cpu->r[0] = cpu->r[10] + cpu->r[7];
|
|
/* 0298670C */ _t172 = cpu->r[1] + 0x00000028u;
|
|
/* 0298670C */ rbrew_write32(cpu->mem, _t172, cpu->r[0]);
|
|
L_02986710: ; // 0x2986710
|
|
/* 02986710 */ _t173 = cpu->r[1] + 0x00000034u;
|
|
/* 02986710 */ cpu->r[6] = rbrew_read32(cpu->mem, _t173);
|
|
/* 02986714 */ _t174 = cpu->r[1] + 0x00000038u;
|
|
/* 02986714 */ cpu->r[8] = rbrew_read32(cpu->mem, _t174);
|
|
/* 02986718 */ cpu->r[4] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 02986718 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298671C */ _t175 = cpu->r[1] + 0x00000008u;
|
|
/* 0298671C */ cpu->r[12] = rbrew_read32(cpu->mem, _t175);
|
|
/* 02986720 */ cpu->r[7] = cpu->r[8] + 0x00000008u;
|
|
/* 02986724 */ _t176 = cpu->r[1] + 0x00000034u;
|
|
/* 02986724 */ rbrew_write32(cpu->mem, _t176, cpu->r[4]);
|
|
/* 02986728 */ cpu->r[0] = cpu->r[12] + 0x00000001u;
|
|
/* 0298672C */ _t177 = cpu->r[1] + 0x00000038u;
|
|
/* 0298672C */ rbrew_write32(cpu->mem, _t177, cpu->r[7]);
|
|
/* 02986730 */ _t178 = cpu->r[1] + 0x00000008u;
|
|
/* 02986730 */ rbrew_write32(cpu->mem, _t178, cpu->r[0]);
|
|
/* 02986734 */ _t179 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986734 */ _t180 = _t179 & 0x00000001u;
|
|
/* 02986734 */ if (_t180) goto L_02986760; else goto L_02986738;
|
|
L_02986738: ; // 0x2986738
|
|
/* 02986738 */ _t181 = cpu->r[14] + 0x00000000u;
|
|
/* 02986738 */ cpu->r[6] = rbrew_read32(cpu->mem, _t181);
|
|
/* 0298673C */ _t182 = cpu->r[6] + 0x0000001Cu;
|
|
/* 0298673C */ cpu->r[7] = rbrew_read32(cpu->mem, _t182);
|
|
/* 02986740 */ cpu->r[27] = 0x00000000u;
|
|
/* 02986744 */ _t183 = cpu->r[7] + 0x00000038u;
|
|
/* 02986744 */ cpu->r[0] = rbrew_read32(cpu->mem, _t183);
|
|
/* 02986748 */ cpu->r[8] = cpu->r[27];
|
|
/* 0298674C */ _t184 = cpu->r[1] + 0x00000008u;
|
|
/* 0298674C */ cpu->r[9] = rbrew_read32(cpu->mem, _t184);
|
|
/* 02986750 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02986754 */ cpu->r[5] = cpu->r[7] + 0x00000038u;
|
|
/* 02986758 */ _t185 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986758 */ _t186 = _t185 & 0x00000001u;
|
|
/* 02986758 */ if (_t186) goto L_029863E4; else goto L_0298675C;
|
|
L_0298675C: ; // 0x298675c
|
|
/* 0298675C */ goto L_029863E0;
|
|
L_02986760: ; // 0x2986760
|
|
/* 02986760 */ _t187 = cpu->r[1] + 0x00000014u;
|
|
/* 02986760 */ cpu->r[6] = rbrew_read32(cpu->mem, _t187);
|
|
/* 02986764 */ cpu->r[14] = cpu->r[14] + 0x00000004u;
|
|
/* 02986768 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[14], cpu->r[6]);
|
|
/* 0298676C */ _t188 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298676C */ _t189 = _t188 & 0x00000001u;
|
|
/* 0298676C */ if (_t189) goto L_02986770; else goto L_02986378;
|
|
L_02986770: ; // 0x2986770
|
|
/* 02986770 */ _t190 = cpu->r[1] + 0x00000024u;
|
|
/* 02986770 */ cpu->r[5] = rbrew_read32(cpu->mem, _t190);
|
|
/* 02986774 */ cpu->r[3] = cpu->r[26];
|
|
/* 02986778 */ _t191 = cpu->r[5] + 0x00000084u;
|
|
/* 02986778 */ cpu->r[31] = rbrew_read32(cpu->mem, _t191);
|
|
/* 0298677C */ Gambit_fn_02C5DEA8(cpu);
|
|
/* 02986780 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[31]);
|
|
/* 02986784 */ _t192 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986784 */ _t193 = _t192 & 0x00000001u;
|
|
/* 02986784 */ if (_t193) goto L_02986788; else goto L_0298678C;
|
|
L_02986788: ; // 0x2986788
|
|
/* 02986788 */ cpu->r[31] = cpu->r[3];
|
|
L_0298678C: ; // 0x298678c
|
|
/* 0298678C */ _t194 = cpu->r[1] + 0x00000024u;
|
|
/* 0298678C */ cpu->r[12] = rbrew_read32(cpu->mem, _t194);
|
|
/* 02986790 */ _t195 = cpu->r[1] + 0x00000028u;
|
|
/* 02986790 */ cpu->r[3] = rbrew_read32(cpu->mem, _t195);
|
|
/* 02986794 */ _t196 = cpu->r[12] + 0x00000084u;
|
|
/* 02986794 */ rbrew_write32(cpu->mem, _t196, cpu->r[31]);
|
|
/* 02986798 */ /* nop */
|
|
/* 0298679C */ _t197 = cpu->r[1] + 0x0000048Cu;
|
|
/* 0298679C */ cpu->r[0] = rbrew_read32(cpu->mem, _t197);
|
|
/* 029867A0 */ cpu->lr = cpu->r[0];
|
|
/* 029867A4 */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 029867A8 */ return;
|
|
}
|
|
|
|
// fn_029867AC @ 0x29867ac
|
|
void Gambit_fn_029867AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40;
|
|
|
|
L_029867AC: ; // 0x29867ac
|
|
/* 029867AC */ cpu->r[0] = cpu->lr;
|
|
/* 029867B0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029867B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029867B0 */ cpu->r[1] = _t0;
|
|
/* 029867B4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029867B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029867B8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029867B8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029867BC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029867BC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029867C0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029867C0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029867C4 */ _t5 = cpu->r[3] + 0x00000024u;
|
|
/* 029867C4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029867C8 */ cpu->r[31] = 0x00000000u;
|
|
/* 029867CC */ cpu->r[10] = cpu->r[3] + 0x00000024u;
|
|
/* 029867D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 029867D4 */ _t6 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029867D4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029867D8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029867D8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029867D8 */ if (_t8) goto L_029867E0; else goto L_029867DC;
|
|
L_029867DC: ; // 0x29867dc
|
|
/* 029867DC */ cpu->r[31] = cpu->r[10] + cpu->r[11];
|
|
L_029867E0: ; // 0x29867e0
|
|
/* 029867E0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 029867E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 029867E4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029867E4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 029867E4 */ if (_t10) goto L_029867E8; else goto L_02986828;
|
|
L_029867E8: ; // 0x29867e8
|
|
/* 029867E8 */ _t11 = cpu->r[4] + 0x0000000Cu;
|
|
/* 029867E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029867EC */ cpu->r[9] = 0x00000000u;
|
|
/* 029867F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029867F4 */ cpu->r[12] = cpu->r[4] + 0x0000000Cu;
|
|
/* 029867F8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029867F8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029867F8 */ if (_t13) goto L_02986800; else goto L_029867FC;
|
|
L_029867FC: ; // 0x29867fc
|
|
/* 029867FC */ cpu->r[9] = cpu->r[12] + cpu->r[0];
|
|
L_02986800: ; // 0x2986800
|
|
/* 02986800 */ _t14 = cpu->r[9] + 0x00000010u;
|
|
/* 02986800 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02986804 */ cpu->r[30] = 0x00000000u;
|
|
/* 02986808 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298680C */ cpu->r[7] = cpu->r[9] + 0x00000010u;
|
|
/* 02986810 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986810 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02986810 */ if (_t16) goto L_02986818; else goto L_02986814;
|
|
L_02986814: ; // 0x2986814
|
|
/* 02986814 */ cpu->r[30] = cpu->r[7] + cpu->r[0];
|
|
L_02986818: ; // 0x2986818
|
|
/* 02986818 */ _t17 = cpu->r[3] + 0x00000014u;
|
|
/* 02986818 */ cpu->r[29] = rbrew_read16(cpu->mem, _t17);
|
|
/* 0298681C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02986820 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986820 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02986820 */ if (_t19) goto L_029868A0; else goto L_02986824;
|
|
L_02986824: ; // 0x2986824
|
|
/* 02986824 */ goto L_0298684C;
|
|
L_02986828: ; // 0x2986828
|
|
/* 02986828 */ _t20 = cpu->r[4] + 0x00000018u;
|
|
/* 02986828 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298682C */ cpu->r[30] = 0x00000000u;
|
|
/* 02986830 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02986834 */ cpu->r[11] = cpu->r[4] + 0x00000018u;
|
|
/* 02986838 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986838 */ _t22 = _t21 & 0x00000001u;
|
|
/* 02986838 */ if (_t22) goto L_02986840; else goto L_0298683C;
|
|
L_0298683C: ; // 0x298683c
|
|
/* 0298683C */ cpu->r[30] = cpu->r[11] + cpu->r[12];
|
|
L_02986840: ; // 0x2986840
|
|
/* 02986840 */ _t23 = cpu->r[3] + 0x00000014u;
|
|
/* 02986840 */ cpu->r[29] = rbrew_read16(cpu->mem, _t23);
|
|
/* 02986844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02986848 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986848 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02986848 */ if (_t25) goto L_029868A0; else goto L_0298684C;
|
|
L_0298684C: ; // 0x298684c
|
|
/* 0298684C */ _t26 = cpu->r[31] + 0x00000000u;
|
|
/* 0298684C */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02986850 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02986854 */ cpu->r[4] = 0x00000000u;
|
|
/* 02986858 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986858 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02986858 */ if (_t28) goto L_02986864; else goto L_0298685C;
|
|
L_0298685C: ; // 0x298685c
|
|
/* 0298685C */ cpu->r[10] = cpu->r[31] + cpu->r[0];
|
|
/* 02986860 */ cpu->r[4] = cpu->r[10] + 0xFFFFFFFCu;
|
|
L_02986864: ; // 0x2986864
|
|
/* 02986864 */ cpu->r[3] = cpu->r[30];
|
|
/* 02986868 */ Gambit_fn_02C606B8(cpu);
|
|
/* 0298686C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 02986870 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986870 */ _t30 = _t29 & 0x00000001u;
|
|
/* 02986870 */ if (_t30) goto L_02986894; else goto L_02986874;
|
|
L_02986874: ; // 0x2986874
|
|
/* 02986874 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02986874 */ cpu->r[29] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02986878 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02986878 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298687C */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 0298687C */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02986880 */ cpu->lr = cpu->r[0];
|
|
/* 02986884 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 02986884 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02986888 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298688C */ cpu->r[3] = 0x00000001u;
|
|
/* 02986890 */ return;
|
|
L_02986894: ; // 0x2986894
|
|
/* 02986894 */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 02986894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02986898 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 0298689C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298689C */ _t36 = _t35 & 0x00000001u;
|
|
/* 0298689C */ if (_t36) goto L_029868A0; else goto L_0298684C;
|
|
L_029868A0: ; // 0x29868a0
|
|
/* 029868A0 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029868A0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 029868A4 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029868A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029868A8 */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 029868A8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029868AC */ cpu->lr = cpu->r[0];
|
|
/* 029868B0 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 029868B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 029868B4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029868B8 */ cpu->r[3] = 0x00000000u;
|
|
/* 029868BC */ return;
|
|
}
|
|
|
|
// fn_029867B0 @ 0x29867b0
|
|
void Gambit_fn_029867B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40;
|
|
|
|
L_029867B0: ; // 0x29867b0
|
|
/* 029867B0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029867B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029867B0 */ cpu->r[1] = _t0;
|
|
/* 029867B4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029867B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029867B8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029867B8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029867BC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029867BC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029867C0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029867C0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029867C4 */ _t5 = cpu->r[3] + 0x00000024u;
|
|
/* 029867C4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029867C8 */ cpu->r[31] = 0x00000000u;
|
|
/* 029867CC */ cpu->r[10] = cpu->r[3] + 0x00000024u;
|
|
/* 029867D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 029867D4 */ _t6 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029867D4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029867D8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029867D8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029867D8 */ if (_t8) goto L_029867E0; else goto L_029867DC;
|
|
L_029867DC: ; // 0x29867dc
|
|
/* 029867DC */ cpu->r[31] = cpu->r[10] + cpu->r[11];
|
|
L_029867E0: ; // 0x29867e0
|
|
/* 029867E0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 029867E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 029867E4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029867E4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 029867E4 */ if (_t10) goto L_029867E8; else goto L_02986828;
|
|
L_029867E8: ; // 0x29867e8
|
|
/* 029867E8 */ _t11 = cpu->r[4] + 0x0000000Cu;
|
|
/* 029867E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029867EC */ cpu->r[9] = 0x00000000u;
|
|
/* 029867F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029867F4 */ cpu->r[12] = cpu->r[4] + 0x0000000Cu;
|
|
/* 029867F8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029867F8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029867F8 */ if (_t13) goto L_02986800; else goto L_029867FC;
|
|
L_029867FC: ; // 0x29867fc
|
|
/* 029867FC */ cpu->r[9] = cpu->r[12] + cpu->r[0];
|
|
L_02986800: ; // 0x2986800
|
|
/* 02986800 */ _t14 = cpu->r[9] + 0x00000010u;
|
|
/* 02986800 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02986804 */ cpu->r[30] = 0x00000000u;
|
|
/* 02986808 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298680C */ cpu->r[7] = cpu->r[9] + 0x00000010u;
|
|
/* 02986810 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986810 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02986810 */ if (_t16) goto L_02986818; else goto L_02986814;
|
|
L_02986814: ; // 0x2986814
|
|
/* 02986814 */ cpu->r[30] = cpu->r[7] + cpu->r[0];
|
|
L_02986818: ; // 0x2986818
|
|
/* 02986818 */ _t17 = cpu->r[3] + 0x00000014u;
|
|
/* 02986818 */ cpu->r[29] = rbrew_read16(cpu->mem, _t17);
|
|
/* 0298681C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02986820 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986820 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02986820 */ if (_t19) goto L_029868A0; else goto L_02986824;
|
|
L_02986824: ; // 0x2986824
|
|
/* 02986824 */ goto L_0298684C;
|
|
L_02986828: ; // 0x2986828
|
|
/* 02986828 */ _t20 = cpu->r[4] + 0x00000018u;
|
|
/* 02986828 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298682C */ cpu->r[30] = 0x00000000u;
|
|
/* 02986830 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02986834 */ cpu->r[11] = cpu->r[4] + 0x00000018u;
|
|
/* 02986838 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986838 */ _t22 = _t21 & 0x00000001u;
|
|
/* 02986838 */ if (_t22) goto L_02986840; else goto L_0298683C;
|
|
L_0298683C: ; // 0x298683c
|
|
/* 0298683C */ cpu->r[30] = cpu->r[11] + cpu->r[12];
|
|
L_02986840: ; // 0x2986840
|
|
/* 02986840 */ _t23 = cpu->r[3] + 0x00000014u;
|
|
/* 02986840 */ cpu->r[29] = rbrew_read16(cpu->mem, _t23);
|
|
/* 02986844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02986848 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986848 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02986848 */ if (_t25) goto L_029868A0; else goto L_0298684C;
|
|
L_0298684C: ; // 0x298684c
|
|
/* 0298684C */ _t26 = cpu->r[31] + 0x00000000u;
|
|
/* 0298684C */ cpu->r[0] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02986850 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02986854 */ cpu->r[4] = 0x00000000u;
|
|
/* 02986858 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986858 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02986858 */ if (_t28) goto L_02986864; else goto L_0298685C;
|
|
L_0298685C: ; // 0x298685c
|
|
/* 0298685C */ cpu->r[10] = cpu->r[31] + cpu->r[0];
|
|
/* 02986860 */ cpu->r[4] = cpu->r[10] + 0xFFFFFFFCu;
|
|
L_02986864: ; // 0x2986864
|
|
/* 02986864 */ cpu->r[3] = cpu->r[30];
|
|
/* 02986868 */ Gambit_fn_02C606B8(cpu);
|
|
/* 0298686C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 02986870 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986870 */ _t30 = _t29 & 0x00000001u;
|
|
/* 02986870 */ if (_t30) goto L_02986894; else goto L_02986874;
|
|
L_02986874: ; // 0x2986874
|
|
/* 02986874 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02986874 */ cpu->r[29] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02986878 */ _t32 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02986878 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298687C */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 0298687C */ cpu->r[30] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02986880 */ cpu->lr = cpu->r[0];
|
|
/* 02986884 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 02986884 */ cpu->r[31] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02986888 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298688C */ cpu->r[3] = 0x00000001u;
|
|
/* 02986890 */ return;
|
|
L_02986894: ; // 0x2986894
|
|
/* 02986894 */ cpu->r[29] = cpu->r[29] + 0xFFFFFFFFu;
|
|
/* 02986894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02986898 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 0298689C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298689C */ _t36 = _t35 & 0x00000001u;
|
|
/* 0298689C */ if (_t36) goto L_029868A0; else goto L_0298684C;
|
|
L_029868A0: ; // 0x29868a0
|
|
/* 029868A0 */ _t37 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029868A0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t37);
|
|
/* 029868A4 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029868A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029868A8 */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 029868A8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029868AC */ cpu->lr = cpu->r[0];
|
|
/* 029868B0 */ _t40 = cpu->r[1] + 0x00000014u;
|
|
/* 029868B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t40);
|
|
/* 029868B4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029868B8 */ cpu->r[3] = 0x00000000u;
|
|
/* 029868BC */ return;
|
|
}
|
|
|
|
// fn_029868C0 @ 0x29868c0
|
|
void Gambit_fn_029868C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185;
|
|
|
|
L_029868C0: ; // 0x29868c0
|
|
/* 029868C0 */ _t0 = cpu->r[1] + 0xFFFFFB78u;
|
|
/* 029868C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029868C0 */ cpu->r[1] = _t0;
|
|
/* 029868C4 */ /* nop */
|
|
/* 029868C8 */ cpu->r[0] = cpu->lr;
|
|
/* 029868CC */ cpu->r[30] = cpu->r[6];
|
|
/* 029868D0 */ cpu->r[28] = cpu->r[7];
|
|
/* 029868D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029868D4 */ cpu->r[25] = cpu->r[8];
|
|
/* 029868D8 */ cpu->r[31] = cpu->r[9];
|
|
/* 029868DC */ _t1 = cpu->r[1] + 0x0000048Cu;
|
|
/* 029868DC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029868E0 */ cpu->r[29] = cpu->r[3];
|
|
/* 029868E4 */ cpu->r[14] = cpu->r[10];
|
|
/* 029868E8 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029868E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[5]);
|
|
/* 029868EC */ _t3 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029868EC */ _t4 = _t3 & 0x00000001u;
|
|
/* 029868EC */ if (_t4) goto L_02986908; else goto L_029868F0;
|
|
L_029868F0: ; // 0x29868f0
|
|
/* 029868F0 */ /* nop */
|
|
/* 029868F4 */ _t5 = cpu->r[1] + 0x0000048Cu;
|
|
/* 029868F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029868F8 */ cpu->lr = cpu->r[0];
|
|
/* 029868FC */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 02986900 */ cpu->r[3] = 0x00000000u;
|
|
/* 02986904 */ return;
|
|
L_02986908: ; // 0x2986908
|
|
/* 02986908 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298690C */ _t6 = cpu->r[1] + 0x00000028u;
|
|
/* 0298690C */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 02986910 */ cpu->r[0] = 0x101D0000u;
|
|
/* 02986914 */ cpu->r[0] = cpu->r[0] + 0xFFFF98F0u;
|
|
/* 02986918 */ cpu->r[3] = cpu->r[14];
|
|
/* 02986918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298691C */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 0298691C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 02986920 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986920 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02986920 */ if (_t9) goto L_02986924; else goto L_02986930;
|
|
L_02986924: ; // 0x2986924
|
|
/* 02986924 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 02986924 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02986928 */ _t11 = cpu->r[10] + 0x00000000u;
|
|
/* 02986928 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298692C */ Gambit_fn_02826F20(cpu);
|
|
L_02986930: ; // 0x2986930
|
|
/* 02986930 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02986930 */ cpu->r[5] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02986934 */ _t13 = cpu->r[5] + 0x00000034u;
|
|
/* 02986934 */ cpu->r[6] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02986938 */ cpu->ctr = cpu->r[6];
|
|
/* 0298693C */ cpu->r[5] = 0x00000004u;
|
|
/* 02986940 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0x0000000Cu);
|
|
/* 02986944 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02986948 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298694C */ cpu->r[0] = cpu->r[28];
|
|
/* 02986950 */ cpu->r[9] = 0x00000000u;
|
|
/* 02986954 */ _t14 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986954 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02986954 */ if (_t15) goto L_0298695C; else goto L_02986958;
|
|
L_02986958: ; // 0x2986958
|
|
/* 02986958 */ cpu->r[0] = 0x00000001u;
|
|
L_0298695C: ; // 0x298695c
|
|
/* 0298695C */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02986960 */ cpu->ctr = cpu->r[0];
|
|
/* 02986964 */ cpu->r[8] = 0x00000000u;
|
|
L_02986968: ; // 0x2986968
|
|
/* 02986968 */ cpu->r[7] = cpu->r[3] + cpu->r[6];
|
|
/* 02986968 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298696C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298696C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298696C */ if (_t17) goto L_02986978; else goto L_02986970;
|
|
L_02986970: ; // 0x2986970
|
|
/* 02986970 */ _t18 = cpu->r[7] + 0x00000008u;
|
|
/* 02986970 */ rbrew_write32(cpu->mem, _t18, cpu->r[8]);
|
|
/* 02986974 */ _t19 = cpu->r[7] + 0x00000004u;
|
|
/* 02986974 */ rbrew_write32(cpu->mem, _t19, cpu->r[8]);
|
|
L_02986978: ; // 0x2986978
|
|
/* 02986978 */ cpu->r[6] = cpu->r[6] + 0x0000000Cu;
|
|
/* 0298697C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298697C */ _t20 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298697C */ _t21 = _t20 >> (0x00000002u & 31u);
|
|
/* 0298697C */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298697C */ if (_t22) goto L_02986968; else goto L_02986980;
|
|
L_02986980: ; // 0x2986980
|
|
/* 02986980 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986984 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986984 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02986984 */ if (_t24) goto L_02986990; else goto L_02986988;
|
|
L_02986988: ; // 0x2986988
|
|
/* 02986988 */ _t25 = cpu->r[25] + 0x00000004u;
|
|
/* 02986988 */ rbrew_write32(cpu->mem, _t25, cpu->r[3]);
|
|
/* 0298698C */ _t26 = cpu->r[25] + 0x00000000u;
|
|
/* 0298698C */ rbrew_write32(cpu->mem, _t26, cpu->r[28]);
|
|
L_02986990: ; // 0x2986990
|
|
/* 02986990 */ _t27 = cpu->r[29] + 0x00000074u;
|
|
/* 02986990 */ cpu->r[7] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02986994 */ _t28 = cpu->r[29] + 0x0000007Cu;
|
|
/* 02986994 */ cpu->r[27] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02986998 */ cpu->r[5] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298699C */ cpu->r[4] = 0x00000000u;
|
|
/* 029869A0 */ cpu->r[7] = cpu->r[27] + cpu->r[5];
|
|
/* 029869A4 */ _t29 = cpu->r[1] + 0x00000018u;
|
|
/* 029869A4 */ rbrew_write32(cpu->mem, _t29, cpu->r[4]);
|
|
/* 029869A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[7]);
|
|
/* 029869AC */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 029869AC */ rbrew_write32(cpu->mem, _t30, cpu->r[7]);
|
|
/* 029869B0 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029869B0 */ _t32 = _t31 & 0x00000001u;
|
|
/* 029869B0 */ if (_t32) goto L_02986DA0; else goto L_029869B4;
|
|
L_029869B4: ; // 0x29869b4
|
|
/* 029869B4 */ _t33 = cpu->r[27] + 0x00000000u;
|
|
/* 029869B4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t33);
|
|
/* 029869B8 */ _t34 = cpu->r[6] + 0x0000001Cu;
|
|
/* 029869B8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t34);
|
|
/* 029869BC */ _t35 = cpu->r[10] + 0x0000005Eu;
|
|
/* 029869BC */ cpu->r[0] = rbrew_read16(cpu->mem, _t35);
|
|
/* 029869C0 */ cpu->r[10] = 0x00000000u;
|
|
/* 029869C4 */ _t36 = cpu->r[1] + 0x00000020u;
|
|
/* 029869C4 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 029869C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029869CC */ _t37 = cpu->r[1] + 0x00000008u;
|
|
/* 029869CC */ rbrew_write32(cpu->mem, _t37, cpu->r[10]);
|
|
/* 029869D0 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029869D0 */ _t39 = _t38 & 0x00000001u;
|
|
/* 029869D0 */ if (_t39) goto L_02986D90; else goto L_029869D4;
|
|
L_029869D4: ; // 0x29869d4
|
|
/* 029869D4 */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029869D4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t40);
|
|
/* 029869D8 */ cpu->r[8] = 0x00000000u;
|
|
/* 029869DC */ _t41 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029869DC */ rbrew_write32(cpu->mem, _t41, cpu->r[8]);
|
|
/* 029869E0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029869E4 */ _t42 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029869E4 */ rbrew_write32(cpu->mem, _t42, cpu->r[8]);
|
|
/* 029869E8 */ cpu->r[28] = cpu->r[30] + 0x00000010u;
|
|
/* 029869EC */ _t43 = cpu->r[1] + 0x00000024u;
|
|
/* 029869EC */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 029869F0 */ _t44 = cpu->r[6] + 0x0000001Cu;
|
|
/* 029869F0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t44);
|
|
/* 029869F4 */ cpu->r[26] = 0x00000000u;
|
|
/* 029869F8 */ _t45 = cpu->r[5] + 0x0000003Cu;
|
|
/* 029869F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t45);
|
|
/* 029869FC */ cpu->r[6] = cpu->r[26];
|
|
/* 02986A00 */ cpu->r[8] = cpu->r[5] + 0x0000003Cu;
|
|
/* 02986A04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02986A08 */ _t46 = cpu->r[1] + 0x00000008u;
|
|
/* 02986A08 */ cpu->r[7] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02986A0C */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986A0C */ _t48 = _t47 & 0x00000001u;
|
|
/* 02986A0C */ if (_t48) goto L_02986A14; else goto L_02986A10;
|
|
L_02986A10: ; // 0x2986a10
|
|
/* 02986A10 */ cpu->r[6] = cpu->r[8] + cpu->r[4];
|
|
L_02986A14: ; // 0x2986a14
|
|
/* 02986A14 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02986A18 */ cpu->r[12] = cpu->r[6] + cpu->r[12];
|
|
/* 02986A1C */ _t49 = cpu->r[12] + 0x00000024u;
|
|
/* 02986A1C */ cpu->r[9] = rbrew_read32(cpu->mem, _t49);
|
|
/* 02986A20 */ cpu->r[10] = 0x00000000u;
|
|
/* 02986A24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02986A28 */ cpu->r[7] = cpu->r[12] + 0x00000024u;
|
|
/* 02986A2C */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986A2C */ _t51 = _t50 & 0x00000001u;
|
|
/* 02986A2C */ if (_t51) goto L_02986A34; else goto L_02986A30;
|
|
L_02986A30: ; // 0x2986a30
|
|
/* 02986A30 */ cpu->r[10] = cpu->r[7] + cpu->r[9];
|
|
L_02986A34: ; // 0x2986a34
|
|
/* 02986A34 */ cpu->r[23] = cpu->r[10];
|
|
/* 02986A38 */ _t52 = cpu->r[23] + 0x0000000Cu;
|
|
/* 02986A38 */ cpu->r[7] = rbrew_read16(cpu->mem, _t52);
|
|
/* 02986A3C */ cpu->r[5] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 02986A3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02986A40 */ _t53 = cpu->r[23] + 0x00000014u;
|
|
/* 02986A40 */ cpu->r[0] = rbrew_read16(cpu->mem, _t53);
|
|
/* 02986A44 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986A44 */ _t55 = _t54 & 0x00000001u;
|
|
/* 02986A44 */ if (_t55) goto L_02986A48; else goto L_02986A88;
|
|
L_02986A48: ; // 0x2986a48
|
|
/* 02986A48 */ _t56 = cpu->r[1] + 0x00000038u;
|
|
/* 02986A48 */ rbrew_write32(cpu->mem, _t56, cpu->r[0]);
|
|
/* 02986A4C */ _t57 = cpu->r[30] + 0x00000008u;
|
|
/* 02986A4C */ cpu->r[9] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02986A50 */ cpu->r[8] = cpu->r[1] + 0x00000038u;
|
|
/* 02986A54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[0]);
|
|
/* 02986A58 */ cpu->r[4] = cpu->r[30] + 0x00000008u;
|
|
/* 02986A5C */ _t58 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986A5C */ _t59 = _t58 & 0x00000001u;
|
|
/* 02986A5C */ if (_t59) goto L_02986A64; else goto L_02986A60;
|
|
L_02986A60: ; // 0x2986a60
|
|
/* 02986A60 */ cpu->r[8] = cpu->r[4];
|
|
L_02986A64: ; // 0x2986a64
|
|
/* 02986A64 */ _t60 = cpu->r[8] + 0x00000000u;
|
|
/* 02986A64 */ cpu->r[12] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02986A68 */ _t61 = cpu->r[4] + 0x00000000u;
|
|
/* 02986A68 */ rbrew_write32(cpu->mem, _t61, cpu->r[12]);
|
|
/* 02986A6C */ _t62 = cpu->r[23] + 0x00000016u;
|
|
/* 02986A6C */ cpu->r[0] = rbrew_read16(cpu->mem, _t62);
|
|
/* 02986A70 */ _t63 = cpu->r[28] + 0x00000000u;
|
|
/* 02986A70 */ cpu->r[10] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02986A74 */ _t64 = cpu->r[1] + 0x00000034u;
|
|
/* 02986A74 */ rbrew_write32(cpu->mem, _t64, cpu->r[0]);
|
|
/* 02986A78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 02986A7C */ cpu->r[10] = cpu->r[1] + 0x00000034u;
|
|
/* 02986A80 */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986A80 */ _t66 = _t65 & 0x00000001u;
|
|
/* 02986A80 */ if (_t66) goto L_02986AC8; else goto L_02986A84;
|
|
L_02986A84: ; // 0x2986a84
|
|
/* 02986A84 */ goto L_02986AC4;
|
|
L_02986A88: ; // 0x2986a88
|
|
/* 02986A88 */ _t67 = cpu->r[30] + 0x0000000Cu;
|
|
/* 02986A88 */ cpu->r[5] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02986A8C */ cpu->r[4] = cpu->r[30] + 0x0000000Cu;
|
|
/* 02986A90 */ cpu->r[9] = cpu->r[1] + 0x0000003Cu;
|
|
/* 02986A94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[0]);
|
|
/* 02986A98 */ _t68 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02986A98 */ rbrew_write32(cpu->mem, _t68, cpu->r[0]);
|
|
/* 02986A9C */ _t69 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986A9C */ _t70 = _t69 & 0x00000001u;
|
|
/* 02986A9C */ if (_t70) goto L_02986AA4; else goto L_02986AA0;
|
|
L_02986AA0: ; // 0x2986aa0
|
|
/* 02986AA0 */ cpu->r[9] = cpu->r[4];
|
|
L_02986AA4: ; // 0x2986aa4
|
|
/* 02986AA4 */ _t71 = cpu->r[9] + 0x00000000u;
|
|
/* 02986AA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t71);
|
|
/* 02986AA8 */ _t72 = cpu->r[4] + 0x00000000u;
|
|
/* 02986AA8 */ rbrew_write32(cpu->mem, _t72, cpu->r[12]);
|
|
/* 02986AAC */ _t73 = cpu->r[23] + 0x00000016u;
|
|
/* 02986AAC */ cpu->r[0] = rbrew_read16(cpu->mem, _t73);
|
|
/* 02986AB0 */ _t74 = cpu->r[28] + 0x00000000u;
|
|
/* 02986AB0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02986AB4 */ _t75 = cpu->r[1] + 0x00000034u;
|
|
/* 02986AB4 */ rbrew_write32(cpu->mem, _t75, cpu->r[0]);
|
|
/* 02986AB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 02986ABC */ cpu->r[10] = cpu->r[1] + 0x00000034u;
|
|
/* 02986AC0 */ _t76 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986AC0 */ _t77 = _t76 & 0x00000001u;
|
|
/* 02986AC0 */ if (_t77) goto L_02986AC8; else goto L_02986AC4;
|
|
L_02986AC4: ; // 0x2986ac4
|
|
/* 02986AC4 */ cpu->r[10] = cpu->r[28];
|
|
L_02986AC8: ; // 0x2986ac8
|
|
/* 02986AC8 */ _t78 = cpu->r[10] + 0x00000000u;
|
|
/* 02986AC8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02986ACC */ _t79 = cpu->r[1] + 0x00000018u;
|
|
/* 02986ACC */ cpu->r[11] = rbrew_read32(cpu->mem, _t79);
|
|
/* 02986AD0 */ _t80 = cpu->r[28] + 0x00000000u;
|
|
/* 02986AD0 */ rbrew_write32(cpu->mem, _t80, cpu->r[12]);
|
|
/* 02986AD4 */ _t81 = cpu->r[23] + 0x0000000Cu;
|
|
/* 02986AD4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t81);
|
|
/* 02986AD8 */ _t82 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02986AD8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02986ADC */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02986AE0 */ _t83 = cpu->r[30] + 0x00000015u;
|
|
/* 02986AE0 */ cpu->r[12] = rbrew_read8(cpu->mem, _t83);
|
|
/* 02986AE4 */ cpu->r[5] = cpu->r[4] ^ 0x00000001u;
|
|
/* 02986AE8 */ _t84 = cpu->r[30] + 0x0000001Cu;
|
|
/* 02986AE8 */ rbrew_write32(cpu->mem, _t84, cpu->r[7]);
|
|
/* 02986AEC */ cpu->r[12] = cpu->r[12] | cpu->r[5];
|
|
/* 02986AF0 */ _t85 = cpu->r[30] + 0x00000018u;
|
|
/* 02986AF0 */ rbrew_write32(cpu->mem, _t85, cpu->r[7]);
|
|
/* 02986AF4 */ _t86 = cpu->r[30] + 0x00000015u;
|
|
/* 02986AF4 */ rbrew_write8(cpu->mem, _t86, (uint8_t)cpu->r[12]);
|
|
/* 02986AF8 */ _t87 = cpu->r[25] + 0x00000000u;
|
|
/* 02986AF8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02986AFC */ _t88 = cpu->r[25] + 0x00000004u;
|
|
/* 02986AFC */ cpu->r[9] = rbrew_read32(cpu->mem, _t88);
|
|
/* 02986B00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[5]);
|
|
/* 02986B04 */ _t89 = cpu->r[27] + 0x00000000u;
|
|
/* 02986B04 */ cpu->r[4] = rbrew_read32(cpu->mem, _t89);
|
|
/* 02986B08 */ cpu->r[0] = cpu->r[11] + 0x00000001u;
|
|
/* 02986B0C */ _t90 = cpu->r[1] + 0x00000018u;
|
|
/* 02986B0C */ rbrew_write32(cpu->mem, _t90, cpu->r[0]);
|
|
/* 02986B10 */ _t91 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986B10 */ _t92 = _t91 & 0x00000001u;
|
|
/* 02986B10 */ if (_t92) goto L_02986B14; else goto L_02986B50;
|
|
L_02986B14: ; // 0x2986b14
|
|
/* 02986B14 */ _t93 = cpu->r[1] + 0x00000024u;
|
|
/* 02986B14 */ cpu->r[6] = rbrew_read32(cpu->mem, _t93);
|
|
/* 02986B18 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000000Cu);
|
|
/* 02986B1C */ cpu->r[12] = cpu->r[4] + cpu->r[6];
|
|
/* 02986B20 */ _t94 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02986B20 */ cpu->r[4] = rbrew_read32(cpu->mem, _t94);
|
|
/* 02986B24 */ _t95 = cpu->r[12] + 0x0000002Cu;
|
|
/* 02986B24 */ cpu->r[5] = rbrew_read32(cpu->mem, _t95);
|
|
/* 02986B28 */ cpu->r[18] = cpu->r[9] + cpu->r[8];
|
|
/* 02986B2C */ cpu->r[9] = cpu->r[5] + cpu->r[4];
|
|
/* 02986B30 */ _t96 = cpu->r[18] + 0x00000000u;
|
|
/* 02986B30 */ rbrew_write32(cpu->mem, _t96, cpu->r[9]);
|
|
/* 02986B34 */ _t97 = cpu->r[29] + 0x00000008u;
|
|
/* 02986B34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 02986B38 */ _t98 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02986B38 */ cpu->r[11] = rbrew_read32(cpu->mem, _t98);
|
|
/* 02986B3C */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02986B40 */ cpu->r[8] = cpu->r[11] + cpu->r[6];
|
|
/* 02986B44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[8]);
|
|
/* 02986B48 */ _t99 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986B48 */ _t100 = _t99 & 0x00000001u;
|
|
/* 02986B48 */ if (_t100) goto L_02986C84; else goto L_02986B4C;
|
|
L_02986B4C: ; // 0x2986b4c
|
|
/* 02986B4C */ goto L_02986B84;
|
|
L_02986B50: ; // 0x2986b50
|
|
/* 02986B50 */ _t101 = cpu->r[1] + 0x00000024u;
|
|
/* 02986B50 */ cpu->r[6] = rbrew_read32(cpu->mem, _t101);
|
|
/* 02986B54 */ cpu->r[12] = cpu->r[4] + cpu->r[6];
|
|
/* 02986B58 */ _t102 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02986B58 */ cpu->r[4] = rbrew_read32(cpu->mem, _t102);
|
|
/* 02986B5C */ _t103 = cpu->r[12] + 0x0000002Cu;
|
|
/* 02986B5C */ cpu->r[5] = rbrew_read32(cpu->mem, _t103);
|
|
/* 02986B60 */ cpu->r[18] = cpu->r[9];
|
|
/* 02986B64 */ cpu->r[9] = cpu->r[5] + cpu->r[4];
|
|
/* 02986B68 */ _t104 = cpu->r[18] + 0x00000000u;
|
|
/* 02986B68 */ rbrew_write32(cpu->mem, _t104, cpu->r[9]);
|
|
/* 02986B6C */ _t105 = cpu->r[29] + 0x00000008u;
|
|
/* 02986B6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t105);
|
|
/* 02986B70 */ _t106 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02986B70 */ cpu->r[11] = rbrew_read32(cpu->mem, _t106);
|
|
/* 02986B74 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02986B78 */ cpu->r[8] = cpu->r[11] + cpu->r[6];
|
|
/* 02986B7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[8]);
|
|
/* 02986B80 */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986B80 */ _t108 = _t107 & 0x00000001u;
|
|
/* 02986B80 */ if (_t108) goto L_02986C84; else goto L_02986B84;
|
|
L_02986B84: ; // 0x2986b84
|
|
/* 02986B84 */ cpu->r[19] = cpu->r[11];
|
|
/* 02986B88 */ cpu->r[7] = cpu->r[1] + 0x00000040u;
|
|
/* 02986B8C */ cpu->r[0] = rbrew_rlwinm(cpu->r[26], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02986B90 */ cpu->r[24] = cpu->r[8];
|
|
/* 02986B94 */ cpu->r[20] = cpu->r[11];
|
|
/* 02986B98 */ cpu->r[21] = cpu->r[7] + cpu->r[0];
|
|
/* 02986B9C */ cpu->r[0] = 0x00000001u;
|
|
/* 02986BA0 */ cpu->r[16] = 0x101D0000u;
|
|
/* 02986BA4 */ cpu->r[22] = 0x101D0000u;
|
|
/* 02986BA8 */ _t109 = cpu->r[1] + 0x00000030u;
|
|
/* 02986BA8 */ rbrew_write32(cpu->mem, _t109, cpu->r[0]);
|
|
L_02986BAC: ; // 0x2986bac
|
|
/* 02986BAC */ cpu->r[0] = 0xAAAA0000u;
|
|
/* 02986BB0 */ cpu->r[9] = cpu->r[19] - cpu->r[20];
|
|
/* 02986BB4 */ cpu->r[0] = cpu->r[0] | 0x0000AAABu;
|
|
/* 02986BB8 */ /* nop */
|
|
/* 02986BBC */ cpu->r[15] = rbrew_rlwinm(cpu->r[15], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 02986BC0 */ cpu->r[17] = cpu->r[15];
|
|
/* 02986BC4 */ cpu->r[3] = cpu->r[31];
|
|
/* 02986BC8 */ cpu->r[4] = cpu->r[17];
|
|
/* 02986BCC */ Gambit_fn_0297FC7C(cpu);
|
|
/* 02986BD0 */ _t110 = cpu->r[31] + 0x0000001Cu;
|
|
/* 02986BD0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t110);
|
|
/* 02986BD4 */ cpu->r[12] = 0x00000000u;
|
|
/* 02986BD8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[11]);
|
|
/* 02986BDC */ _t111 = cpu->r[16] + 0xFFFFE218u;
|
|
/* 02986BDC */ cpu->r[10] = rbrew_read32(cpu->mem, _t111);
|
|
/* 02986BE0 */ _t112 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986BE0 */ _t113 = _t112 & 0x00000001u;
|
|
/* 02986BE0 */ if (_t113) goto L_02986BE4; else goto L_02986BF0;
|
|
L_02986BE4: ; // 0x2986be4
|
|
/* 02986BE4 */ _t114 = cpu->r[31] + 0x00000024u;
|
|
/* 02986BE4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t114);
|
|
/* 02986BE8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[17], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02986BEC */ _t115 = cpu->r[12] + cpu->r[8];
|
|
/* 02986BEC */ cpu->r[12] = rbrew_read32(cpu->mem, _t115);
|
|
L_02986BF0: ; // 0x2986bf0
|
|
/* 02986BF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02986BF4 */ _t116 = cpu->r[12] + 0x00000000u;
|
|
/* 02986BF4 */ cpu->r[17] = rbrew_read32(cpu->mem, _t116);
|
|
/* 02986BF8 */ _t117 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986BF8 */ _t118 = _t117 & 0x00000001u;
|
|
/* 02986BF8 */ if (_t118) goto L_02986BFC; else goto L_02986C10;
|
|
L_02986BFC: ; // 0x2986bfc
|
|
/* 02986BFC */ cpu->r[11] = 0x00000001u;
|
|
/* 02986C00 */ _t119 = cpu->r[16] + 0xFFFFE218u;
|
|
/* 02986C00 */ rbrew_write32(cpu->mem, _t119, cpu->r[11]);
|
|
/* 02986C04 */ cpu->r[11] = 0x10150000u;
|
|
/* 02986C08 */ cpu->r[11] = cpu->r[11] + 0xFFFFEDC8u;
|
|
/* 02986C0C */ _t120 = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02986C0C */ rbrew_write32(cpu->mem, _t120, cpu->r[11]);
|
|
L_02986C10: ; // 0x2986c10
|
|
/* 02986C10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 02986C14 */ _t121 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986C14 */ _t122 = _t121 & 0x00000001u;
|
|
/* 02986C14 */ if (_t122) goto L_02986C44; else goto L_02986C18;
|
|
L_02986C18: ; // 0x2986c18
|
|
/* 02986C18 */ _t123 = cpu->r[17] + 0x00000088u;
|
|
/* 02986C18 */ cpu->r[12] = rbrew_read32(cpu->mem, _t123);
|
|
/* 02986C1C */ _t124 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02986C1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t124);
|
|
/* 02986C20 */ cpu->ctr = cpu->r[0];
|
|
/* 02986C24 */ cpu->r[3] = cpu->r[17];
|
|
/* 02986C28 */ cpu->r[4] = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02986C2C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02986C30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986C34 */ _t125 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986C34 */ _t126 = _t125 & 0x00000001u;
|
|
/* 02986C34 */ if (_t126) goto L_02986C44; else goto L_02986C38;
|
|
L_02986C38: ; // 0x2986c38
|
|
/* 02986C38 */ cpu->r[12] = cpu->r[17];
|
|
/* 02986C38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02986C3C */ _t127 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986C3C */ _t128 = _t127 & 0x00000001u;
|
|
/* 02986C3C */ if (_t128) goto L_02986C40; else goto L_02986C58;
|
|
L_02986C40: ; // 0x2986c40
|
|
/* 02986C40 */ goto L_02986C78;
|
|
L_02986C44: ; // 0x2986c44
|
|
/* 02986C44 */ cpu->r[19] = cpu->r[19] + 0x0000000Cu;
|
|
/* 02986C48 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[24]);
|
|
/* 02986C4C */ cpu->r[12] = 0x00000000u;
|
|
/* 02986C50 */ _t129 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986C50 */ _t130 = _t129 & 0x00000001u;
|
|
/* 02986C50 */ if (_t130) goto L_02986C54; else goto L_02986BAC;
|
|
L_02986C54: ; // 0x2986c54
|
|
/* 02986C54 */ goto L_02986C84;
|
|
L_02986C58: ; // 0x2986c58
|
|
/* 02986C58 */ _t131 = cpu->r[12] + 0x00000094u;
|
|
/* 02986C58 */ cpu->r[4] = rbrew_read32(cpu->mem, _t131);
|
|
/* 02986C5C */ cpu->r[3] = cpu->r[23];
|
|
/* 02986C60 */ Gambit_fn_029867AC(cpu);
|
|
/* 02986C64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986C68 */ _t132 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986C68 */ _t133 = _t132 & 0x00000001u;
|
|
/* 02986C68 */ if (_t133) goto L_02986C78; else goto L_02986C6C;
|
|
L_02986C6C: ; // 0x2986c6c
|
|
/* 02986C6C */ _t134 = cpu->r[21] + 0x00000000u;
|
|
/* 02986C6C */ rbrew_write32(cpu->mem, _t134, cpu->r[15]);
|
|
/* 02986C70 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 02986C74 */ cpu->r[21] = cpu->r[21] + 0x00000004u;
|
|
L_02986C78: ; // 0x2986c78
|
|
/* 02986C78 */ cpu->r[19] = cpu->r[19] + 0x0000000Cu;
|
|
/* 02986C7C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[24]);
|
|
/* 02986C80 */ _t135 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986C80 */ _t136 = _t135 & 0x00000001u;
|
|
/* 02986C80 */ if (_t136) goto L_02986C84; else goto L_02986BAC;
|
|
L_02986C84: ; // 0x2986c84
|
|
/* 02986C84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 02986C88 */ _t137 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986C88 */ _t138 = _t137 & 0x00000001u;
|
|
/* 02986C88 */ if (_t138) goto L_02986C8C; else goto L_02986D40;
|
|
L_02986C8C: ; // 0x2986c8c
|
|
/* 02986C8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[14], 0x00000000u);
|
|
/* 02986C90 */ cpu->r[3] = cpu->r[14];
|
|
/* 02986C94 */ _t139 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986C94 */ _t140 = _t139 & 0x00000001u;
|
|
/* 02986C94 */ if (_t140) goto L_02986C98; else goto L_02986CA4;
|
|
L_02986C98: ; // 0x2986c98
|
|
/* 02986C98 */ _t141 = cpu->r[1] + 0x00000014u;
|
|
/* 02986C98 */ cpu->r[11] = rbrew_read32(cpu->mem, _t141);
|
|
/* 02986C9C */ _t142 = cpu->r[11] + 0x00000000u;
|
|
/* 02986C9C */ cpu->r[3] = rbrew_read32(cpu->mem, _t142);
|
|
/* 02986CA0 */ Gambit_fn_02826F20(cpu);
|
|
L_02986CA4: ; // 0x2986ca4
|
|
/* 02986CA4 */ _t143 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02986CA4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t143);
|
|
/* 02986CA8 */ _t144 = cpu->r[10] + 0x00000034u;
|
|
/* 02986CA8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t144);
|
|
/* 02986CAC */ cpu->ctr = cpu->r[11];
|
|
/* 02986CB0 */ cpu->r[5] = 0x00000004u;
|
|
/* 02986CB4 */ cpu->r[4] = rbrew_rlwinm(cpu->r[26], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02986CB8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02986CBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 02986CC0 */ cpu->r[6] = cpu->r[26];
|
|
/* 02986CC4 */ _t145 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986CC4 */ _t146 = _t145 & 0x00000001u;
|
|
/* 02986CC4 */ if (_t146) goto L_02986CCC; else goto L_02986CC8;
|
|
L_02986CC8: ; // 0x2986cc8
|
|
/* 02986CC8 */ cpu->r[6] = 0x00000001u;
|
|
L_02986CCC: ; // 0x2986ccc
|
|
/* 02986CCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986CD0 */ _t147 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986CD0 */ _t148 = _t147 & 0x00000001u;
|
|
/* 02986CD0 */ if (_t148) goto L_02986CD4; else goto L_02986CF4;
|
|
L_02986CD4: ; // 0x2986cd4
|
|
/* 02986CD4 */ _t149 = cpu->r[18] + 0x00000004u;
|
|
/* 02986CD4 */ cpu->r[4] = rbrew_read32(cpu->mem, _t149);
|
|
/* 02986CD8 */ _t150 = cpu->r[18] + 0x00000008u;
|
|
/* 02986CD8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t150);
|
|
/* 02986CDC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02986CE0 */ cpu->r[0] = cpu->r[3] + cpu->r[0];
|
|
/* 02986CE4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 02986CE8 */ cpu->r[7] = cpu->r[3];
|
|
/* 02986CEC */ _t151 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986CEC */ _t152 = _t151 & 0x00000001u;
|
|
/* 02986CEC */ if (_t152) goto L_02986D30; else goto L_02986CF0;
|
|
L_02986CF0: ; // 0x2986cf0
|
|
/* 02986CF0 */ goto L_02986D10;
|
|
L_02986CF4: ; // 0x2986cf4
|
|
/* 02986CF4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[26], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02986CF8 */ _t153 = cpu->r[18] + 0x00000004u;
|
|
/* 02986CF8 */ rbrew_write32(cpu->mem, _t153, cpu->r[26]);
|
|
/* 02986CFC */ cpu->r[0] = cpu->r[3] + cpu->r[0];
|
|
/* 02986D00 */ _t154 = cpu->r[18] + 0x00000008u;
|
|
/* 02986D00 */ rbrew_write32(cpu->mem, _t154, cpu->r[3]);
|
|
/* 02986D04 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 02986D08 */ cpu->r[7] = cpu->r[3];
|
|
/* 02986D0C */ _t155 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986D0C */ _t156 = _t155 & 0x00000001u;
|
|
/* 02986D0C */ if (_t156) goto L_02986D30; else goto L_02986D10;
|
|
L_02986D10: ; // 0x2986d10
|
|
/* 02986D10 */ cpu->r[11] = cpu->r[1] + 0x00000040u;
|
|
L_02986D14: ; // 0x2986d14
|
|
/* 02986D14 */ cpu->r[12] = cpu->r[3] - cpu->r[7];
|
|
/* 02986D18 */ cpu->r[4] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x00000000u, 0x0000001Du);
|
|
/* 02986D1C */ _t157 = cpu->r[4] + cpu->r[11];
|
|
/* 02986D1C */ cpu->r[5] = rbrew_read32(cpu->mem, _t157);
|
|
/* 02986D20 */ _t158 = cpu->r[3] + 0x00000000u;
|
|
/* 02986D20 */ rbrew_write16(cpu->mem, _t158, (uint16_t)cpu->r[5]);
|
|
/* 02986D24 */ cpu->r[3] = cpu->r[3] + 0x00000002u;
|
|
/* 02986D28 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 02986D2C */ _t159 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986D2C */ _t160 = _t159 & 0x00000001u;
|
|
/* 02986D2C */ if (_t160) goto L_02986D30; else goto L_02986D14;
|
|
L_02986D30: ; // 0x2986d30
|
|
/* 02986D30 */ _t161 = cpu->r[1] + 0x00000028u;
|
|
/* 02986D30 */ cpu->r[9] = rbrew_read32(cpu->mem, _t161);
|
|
/* 02986D34 */ cpu->r[0] = cpu->r[26] + 0xFFFFFFFFu;
|
|
/* 02986D38 */ cpu->r[0] = cpu->r[9] + cpu->r[0];
|
|
/* 02986D3C */ _t162 = cpu->r[1] + 0x00000028u;
|
|
/* 02986D3C */ rbrew_write32(cpu->mem, _t162, cpu->r[0]);
|
|
L_02986D40: ; // 0x2986d40
|
|
/* 02986D40 */ _t163 = cpu->r[1] + 0x00000020u;
|
|
/* 02986D40 */ cpu->r[6] = rbrew_read32(cpu->mem, _t163);
|
|
/* 02986D44 */ _t164 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02986D44 */ cpu->r[9] = rbrew_read32(cpu->mem, _t164);
|
|
/* 02986D48 */ cpu->r[4] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 02986D48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02986D4C */ _t165 = cpu->r[1] + 0x00000008u;
|
|
/* 02986D4C */ cpu->r[12] = rbrew_read32(cpu->mem, _t165);
|
|
/* 02986D50 */ cpu->r[8] = cpu->r[9] + 0x00000008u;
|
|
/* 02986D54 */ _t166 = cpu->r[1] + 0x00000020u;
|
|
/* 02986D54 */ rbrew_write32(cpu->mem, _t166, cpu->r[4]);
|
|
/* 02986D58 */ cpu->r[0] = cpu->r[12] + 0x00000001u;
|
|
/* 02986D5C */ _t167 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02986D5C */ rbrew_write32(cpu->mem, _t167, cpu->r[8]);
|
|
/* 02986D60 */ _t168 = cpu->r[1] + 0x00000008u;
|
|
/* 02986D60 */ rbrew_write32(cpu->mem, _t168, cpu->r[0]);
|
|
/* 02986D64 */ _t169 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986D64 */ _t170 = _t169 & 0x00000001u;
|
|
/* 02986D64 */ if (_t170) goto L_02986D90; else goto L_02986D68;
|
|
L_02986D68: ; // 0x2986d68
|
|
/* 02986D68 */ _t171 = cpu->r[27] + 0x00000000u;
|
|
/* 02986D68 */ cpu->r[6] = rbrew_read32(cpu->mem, _t171);
|
|
/* 02986D6C */ _t172 = cpu->r[6] + 0x0000001Cu;
|
|
/* 02986D6C */ cpu->r[5] = rbrew_read32(cpu->mem, _t172);
|
|
/* 02986D70 */ cpu->r[26] = 0x00000000u;
|
|
/* 02986D74 */ _t173 = cpu->r[5] + 0x0000003Cu;
|
|
/* 02986D74 */ cpu->r[4] = rbrew_read32(cpu->mem, _t173);
|
|
/* 02986D78 */ cpu->r[6] = cpu->r[26];
|
|
/* 02986D7C */ _t174 = cpu->r[1] + 0x00000008u;
|
|
/* 02986D7C */ cpu->r[7] = rbrew_read32(cpu->mem, _t174);
|
|
/* 02986D80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02986D84 */ cpu->r[8] = cpu->r[5] + 0x0000003Cu;
|
|
/* 02986D88 */ _t175 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986D88 */ _t176 = _t175 & 0x00000001u;
|
|
/* 02986D88 */ if (_t176) goto L_02986A14; else goto L_02986D8C;
|
|
L_02986D8C: ; // 0x2986d8c
|
|
/* 02986D8C */ goto L_02986A10;
|
|
L_02986D90: ; // 0x2986d90
|
|
/* 02986D90 */ _t177 = cpu->r[1] + 0x00000010u;
|
|
/* 02986D90 */ cpu->r[7] = rbrew_read32(cpu->mem, _t177);
|
|
/* 02986D94 */ cpu->r[27] = cpu->r[27] + 0x00000004u;
|
|
/* 02986D98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[7]);
|
|
/* 02986D9C */ _t178 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986D9C */ _t179 = _t178 & 0x00000001u;
|
|
/* 02986D9C */ if (_t179) goto L_02986DA0; else goto L_029869B4;
|
|
L_02986DA0: ; // 0x2986da0
|
|
/* 02986DA0 */ _t180 = cpu->r[29] + 0x00000084u;
|
|
/* 02986DA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t180);
|
|
/* 02986DA4 */ cpu->r[3] = cpu->r[30];
|
|
/* 02986DA8 */ Gambit_fn_02C5EA2C(cpu);
|
|
/* 02986DAC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[31]);
|
|
/* 02986DB0 */ _t181 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986DB0 */ _t182 = _t181 & 0x00000001u;
|
|
/* 02986DB0 */ if (_t182) goto L_02986DB4; else goto L_02986DB8;
|
|
L_02986DB4: ; // 0x2986db4
|
|
/* 02986DB4 */ cpu->r[31] = cpu->r[3];
|
|
L_02986DB8: ; // 0x2986db8
|
|
/* 02986DB8 */ _t183 = cpu->r[1] + 0x00000028u;
|
|
/* 02986DB8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t183);
|
|
/* 02986DBC */ _t184 = cpu->r[29] + 0x00000084u;
|
|
/* 02986DBC */ rbrew_write32(cpu->mem, _t184, cpu->r[31]);
|
|
/* 02986DC0 */ /* nop */
|
|
/* 02986DC4 */ _t185 = cpu->r[1] + 0x0000048Cu;
|
|
/* 02986DC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t185);
|
|
/* 02986DC8 */ cpu->lr = cpu->r[0];
|
|
/* 02986DCC */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 02986DD0 */ return;
|
|
}
|
|
|
|
// fn_02986DD4 @ 0x2986dd4
|
|
void Gambit_fn_02986DD4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185;
|
|
|
|
L_02986DD4: ; // 0x2986dd4
|
|
/* 02986DD4 */ _t0 = cpu->r[1] + 0xFFFFFB78u;
|
|
/* 02986DD4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02986DD4 */ cpu->r[1] = _t0;
|
|
/* 02986DD8 */ /* nop */
|
|
/* 02986DDC */ cpu->r[0] = cpu->lr;
|
|
/* 02986DE0 */ cpu->r[30] = cpu->r[6];
|
|
/* 02986DE4 */ cpu->r[28] = cpu->r[7];
|
|
/* 02986DE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02986DE8 */ cpu->r[25] = cpu->r[8];
|
|
/* 02986DEC */ cpu->r[31] = cpu->r[9];
|
|
/* 02986DF0 */ _t1 = cpu->r[1] + 0x0000048Cu;
|
|
/* 02986DF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02986DF4 */ cpu->r[29] = cpu->r[3];
|
|
/* 02986DF8 */ cpu->r[14] = cpu->r[10];
|
|
/* 02986DFC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02986DFC */ rbrew_write32(cpu->mem, _t2, cpu->r[5]);
|
|
/* 02986E00 */ _t3 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986E00 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02986E00 */ if (_t4) goto L_02986E1C; else goto L_02986E04;
|
|
L_02986E04: ; // 0x2986e04
|
|
/* 02986E04 */ /* nop */
|
|
/* 02986E08 */ _t5 = cpu->r[1] + 0x0000048Cu;
|
|
/* 02986E08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02986E0C */ cpu->lr = cpu->r[0];
|
|
/* 02986E10 */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 02986E14 */ cpu->r[3] = 0x00000000u;
|
|
/* 02986E18 */ return;
|
|
L_02986E1C: ; // 0x2986e1c
|
|
/* 02986E1C */ cpu->r[0] = 0x00000000u;
|
|
/* 02986E20 */ _t6 = cpu->r[1] + 0x00000028u;
|
|
/* 02986E20 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 02986E24 */ cpu->r[0] = 0x101D0000u;
|
|
/* 02986E28 */ cpu->r[0] = cpu->r[0] + 0xFFFF98F0u;
|
|
/* 02986E2C */ cpu->r[3] = cpu->r[14];
|
|
/* 02986E2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986E30 */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 02986E30 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 02986E34 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986E34 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02986E34 */ if (_t9) goto L_02986E38; else goto L_02986E44;
|
|
L_02986E38: ; // 0x2986e38
|
|
/* 02986E38 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 02986E38 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02986E3C */ _t11 = cpu->r[10] + 0x00000000u;
|
|
/* 02986E3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02986E40 */ Gambit_fn_02826F20(cpu);
|
|
L_02986E44: ; // 0x2986e44
|
|
/* 02986E44 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02986E44 */ cpu->r[5] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02986E48 */ _t13 = cpu->r[5] + 0x00000034u;
|
|
/* 02986E48 */ cpu->r[6] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02986E4C */ cpu->ctr = cpu->r[6];
|
|
/* 02986E50 */ cpu->r[5] = 0x00000004u;
|
|
/* 02986E54 */ cpu->r[4] = (uint32_t)((int32_t)cpu->r[28] * (int32_t)0x0000000Cu);
|
|
/* 02986E58 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02986E5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02986E60 */ cpu->r[0] = cpu->r[28];
|
|
/* 02986E64 */ cpu->r[9] = 0x00000000u;
|
|
/* 02986E68 */ _t14 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02986E68 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02986E68 */ if (_t15) goto L_02986E70; else goto L_02986E6C;
|
|
L_02986E6C: ; // 0x2986e6c
|
|
/* 02986E6C */ cpu->r[0] = 0x00000001u;
|
|
L_02986E70: ; // 0x2986e70
|
|
/* 02986E70 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02986E74 */ cpu->ctr = cpu->r[0];
|
|
/* 02986E78 */ cpu->r[8] = 0x00000000u;
|
|
L_02986E7C: ; // 0x2986e7c
|
|
/* 02986E7C */ cpu->r[7] = cpu->r[3] + cpu->r[6];
|
|
/* 02986E7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02986E80 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986E80 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02986E80 */ if (_t17) goto L_02986E8C; else goto L_02986E84;
|
|
L_02986E84: ; // 0x2986e84
|
|
/* 02986E84 */ _t18 = cpu->r[7] + 0x00000008u;
|
|
/* 02986E84 */ rbrew_write32(cpu->mem, _t18, cpu->r[8]);
|
|
/* 02986E88 */ _t19 = cpu->r[7] + 0x00000004u;
|
|
/* 02986E88 */ rbrew_write32(cpu->mem, _t19, cpu->r[8]);
|
|
L_02986E8C: ; // 0x2986e8c
|
|
/* 02986E8C */ cpu->r[6] = cpu->r[6] + 0x0000000Cu;
|
|
/* 02986E90 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02986E90 */ _t20 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02986E90 */ _t21 = _t20 >> (0x00000002u & 31u);
|
|
/* 02986E90 */ _t22 = _t21 & 0x00000001u;
|
|
/* 02986E90 */ if (_t22) goto L_02986E7C; else goto L_02986E94;
|
|
L_02986E94: ; // 0x2986e94
|
|
/* 02986E94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02986E98 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986E98 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02986E98 */ if (_t24) goto L_02986EA4; else goto L_02986E9C;
|
|
L_02986E9C: ; // 0x2986e9c
|
|
/* 02986E9C */ _t25 = cpu->r[25] + 0x00000004u;
|
|
/* 02986E9C */ rbrew_write32(cpu->mem, _t25, cpu->r[3]);
|
|
/* 02986EA0 */ _t26 = cpu->r[25] + 0x00000000u;
|
|
/* 02986EA0 */ rbrew_write32(cpu->mem, _t26, cpu->r[28]);
|
|
L_02986EA4: ; // 0x2986ea4
|
|
/* 02986EA4 */ _t27 = cpu->r[29] + 0x00000074u;
|
|
/* 02986EA4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02986EA8 */ _t28 = cpu->r[29] + 0x0000007Cu;
|
|
/* 02986EA8 */ cpu->r[27] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02986EAC */ cpu->r[5] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02986EB0 */ cpu->r[4] = 0x00000000u;
|
|
/* 02986EB4 */ cpu->r[7] = cpu->r[27] + cpu->r[5];
|
|
/* 02986EB8 */ _t29 = cpu->r[1] + 0x00000018u;
|
|
/* 02986EB8 */ rbrew_write32(cpu->mem, _t29, cpu->r[4]);
|
|
/* 02986EBC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[7]);
|
|
/* 02986EC0 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 02986EC0 */ rbrew_write32(cpu->mem, _t30, cpu->r[7]);
|
|
/* 02986EC4 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986EC4 */ _t32 = _t31 & 0x00000001u;
|
|
/* 02986EC4 */ if (_t32) goto L_029872B4; else goto L_02986EC8;
|
|
L_02986EC8: ; // 0x2986ec8
|
|
/* 02986EC8 */ _t33 = cpu->r[27] + 0x00000000u;
|
|
/* 02986EC8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02986ECC */ _t34 = cpu->r[6] + 0x0000001Cu;
|
|
/* 02986ECC */ cpu->r[10] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02986ED0 */ _t35 = cpu->r[10] + 0x00000060u;
|
|
/* 02986ED0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t35);
|
|
/* 02986ED4 */ cpu->r[10] = 0x00000000u;
|
|
/* 02986ED8 */ _t36 = cpu->r[1] + 0x00000020u;
|
|
/* 02986ED8 */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 02986EDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02986EE0 */ _t37 = cpu->r[1] + 0x00000008u;
|
|
/* 02986EE0 */ rbrew_write32(cpu->mem, _t37, cpu->r[10]);
|
|
/* 02986EE4 */ _t38 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986EE4 */ _t39 = _t38 & 0x00000001u;
|
|
/* 02986EE4 */ if (_t39) goto L_029872A4; else goto L_02986EE8;
|
|
L_02986EE8: ; // 0x2986ee8
|
|
/* 02986EE8 */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02986EE8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t40);
|
|
/* 02986EEC */ cpu->r[8] = 0x00000000u;
|
|
/* 02986EF0 */ _t41 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02986EF0 */ rbrew_write32(cpu->mem, _t41, cpu->r[8]);
|
|
/* 02986EF4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02986EF8 */ _t42 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02986EF8 */ rbrew_write32(cpu->mem, _t42, cpu->r[8]);
|
|
/* 02986EFC */ cpu->r[28] = cpu->r[30] + 0x00000010u;
|
|
/* 02986F00 */ _t43 = cpu->r[1] + 0x00000024u;
|
|
/* 02986F00 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 02986F04 */ _t44 = cpu->r[6] + 0x0000001Cu;
|
|
/* 02986F04 */ cpu->r[5] = rbrew_read32(cpu->mem, _t44);
|
|
/* 02986F08 */ cpu->r[26] = 0x00000000u;
|
|
/* 02986F0C */ _t45 = cpu->r[5] + 0x00000040u;
|
|
/* 02986F0C */ cpu->r[4] = rbrew_read32(cpu->mem, _t45);
|
|
/* 02986F10 */ cpu->r[6] = cpu->r[26];
|
|
/* 02986F14 */ cpu->r[8] = cpu->r[5] + 0x00000040u;
|
|
/* 02986F18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02986F1C */ _t46 = cpu->r[1] + 0x00000008u;
|
|
/* 02986F1C */ cpu->r[7] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02986F20 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986F20 */ _t48 = _t47 & 0x00000001u;
|
|
/* 02986F20 */ if (_t48) goto L_02986F28; else goto L_02986F24;
|
|
L_02986F24: ; // 0x2986f24
|
|
/* 02986F24 */ cpu->r[6] = cpu->r[8] + cpu->r[4];
|
|
L_02986F28: ; // 0x2986f28
|
|
/* 02986F28 */ cpu->r[12] = rbrew_rlwinm(cpu->r[7], 0x00000004u, 0x00000000u, 0x0000001Bu);
|
|
/* 02986F2C */ cpu->r[12] = cpu->r[6] + cpu->r[12];
|
|
/* 02986F30 */ _t49 = cpu->r[12] + 0x00000024u;
|
|
/* 02986F30 */ cpu->r[9] = rbrew_read32(cpu->mem, _t49);
|
|
/* 02986F34 */ cpu->r[10] = 0x00000000u;
|
|
/* 02986F38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02986F3C */ cpu->r[7] = cpu->r[12] + 0x00000024u;
|
|
/* 02986F40 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986F40 */ _t51 = _t50 & 0x00000001u;
|
|
/* 02986F40 */ if (_t51) goto L_02986F48; else goto L_02986F44;
|
|
L_02986F44: ; // 0x2986f44
|
|
/* 02986F44 */ cpu->r[10] = cpu->r[7] + cpu->r[9];
|
|
L_02986F48: ; // 0x2986f48
|
|
/* 02986F48 */ cpu->r[23] = cpu->r[10];
|
|
/* 02986F4C */ _t52 = cpu->r[23] + 0x0000000Cu;
|
|
/* 02986F4C */ cpu->r[7] = rbrew_read16(cpu->mem, _t52);
|
|
/* 02986F50 */ cpu->r[5] = rbrew_rlwinm(cpu->r[7], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 02986F50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 02986F54 */ _t53 = cpu->r[23] + 0x00000014u;
|
|
/* 02986F54 */ cpu->r[0] = rbrew_read16(cpu->mem, _t53);
|
|
/* 02986F58 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02986F58 */ _t55 = _t54 & 0x00000001u;
|
|
/* 02986F58 */ if (_t55) goto L_02986F5C; else goto L_02986F9C;
|
|
L_02986F5C: ; // 0x2986f5c
|
|
/* 02986F5C */ _t56 = cpu->r[1] + 0x00000038u;
|
|
/* 02986F5C */ rbrew_write32(cpu->mem, _t56, cpu->r[0]);
|
|
/* 02986F60 */ _t57 = cpu->r[30] + 0x00000008u;
|
|
/* 02986F60 */ cpu->r[9] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02986F64 */ cpu->r[8] = cpu->r[1] + 0x00000038u;
|
|
/* 02986F68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[0]);
|
|
/* 02986F6C */ cpu->r[4] = cpu->r[30] + 0x00000008u;
|
|
/* 02986F70 */ _t58 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986F70 */ _t59 = _t58 & 0x00000001u;
|
|
/* 02986F70 */ if (_t59) goto L_02986F78; else goto L_02986F74;
|
|
L_02986F74: ; // 0x2986f74
|
|
/* 02986F74 */ cpu->r[8] = cpu->r[4];
|
|
L_02986F78: ; // 0x2986f78
|
|
/* 02986F78 */ _t60 = cpu->r[8] + 0x00000000u;
|
|
/* 02986F78 */ cpu->r[12] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02986F7C */ _t61 = cpu->r[4] + 0x00000000u;
|
|
/* 02986F7C */ rbrew_write32(cpu->mem, _t61, cpu->r[12]);
|
|
/* 02986F80 */ _t62 = cpu->r[23] + 0x00000016u;
|
|
/* 02986F80 */ cpu->r[0] = rbrew_read16(cpu->mem, _t62);
|
|
/* 02986F84 */ _t63 = cpu->r[28] + 0x00000000u;
|
|
/* 02986F84 */ cpu->r[10] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02986F88 */ _t64 = cpu->r[1] + 0x00000034u;
|
|
/* 02986F88 */ rbrew_write32(cpu->mem, _t64, cpu->r[0]);
|
|
/* 02986F8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 02986F90 */ cpu->r[10] = cpu->r[1] + 0x00000034u;
|
|
/* 02986F94 */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986F94 */ _t66 = _t65 & 0x00000001u;
|
|
/* 02986F94 */ if (_t66) goto L_02986FDC; else goto L_02986F98;
|
|
L_02986F98: ; // 0x2986f98
|
|
/* 02986F98 */ goto L_02986FD8;
|
|
L_02986F9C: ; // 0x2986f9c
|
|
/* 02986F9C */ _t67 = cpu->r[30] + 0x0000000Cu;
|
|
/* 02986F9C */ cpu->r[5] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02986FA0 */ cpu->r[4] = cpu->r[30] + 0x0000000Cu;
|
|
/* 02986FA4 */ cpu->r[9] = cpu->r[1] + 0x0000003Cu;
|
|
/* 02986FA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], cpu->r[0]);
|
|
/* 02986FAC */ _t68 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02986FAC */ rbrew_write32(cpu->mem, _t68, cpu->r[0]);
|
|
/* 02986FB0 */ _t69 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986FB0 */ _t70 = _t69 & 0x00000001u;
|
|
/* 02986FB0 */ if (_t70) goto L_02986FB8; else goto L_02986FB4;
|
|
L_02986FB4: ; // 0x2986fb4
|
|
/* 02986FB4 */ cpu->r[9] = cpu->r[4];
|
|
L_02986FB8: ; // 0x2986fb8
|
|
/* 02986FB8 */ _t71 = cpu->r[9] + 0x00000000u;
|
|
/* 02986FB8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t71);
|
|
/* 02986FBC */ _t72 = cpu->r[4] + 0x00000000u;
|
|
/* 02986FBC */ rbrew_write32(cpu->mem, _t72, cpu->r[12]);
|
|
/* 02986FC0 */ _t73 = cpu->r[23] + 0x00000016u;
|
|
/* 02986FC0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t73);
|
|
/* 02986FC4 */ _t74 = cpu->r[28] + 0x00000000u;
|
|
/* 02986FC4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02986FC8 */ _t75 = cpu->r[1] + 0x00000034u;
|
|
/* 02986FC8 */ rbrew_write32(cpu->mem, _t75, cpu->r[0]);
|
|
/* 02986FCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 02986FD0 */ cpu->r[10] = cpu->r[1] + 0x00000034u;
|
|
/* 02986FD4 */ _t76 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02986FD4 */ _t77 = _t76 & 0x00000001u;
|
|
/* 02986FD4 */ if (_t77) goto L_02986FDC; else goto L_02986FD8;
|
|
L_02986FD8: ; // 0x2986fd8
|
|
/* 02986FD8 */ cpu->r[10] = cpu->r[28];
|
|
L_02986FDC: ; // 0x2986fdc
|
|
/* 02986FDC */ _t78 = cpu->r[10] + 0x00000000u;
|
|
/* 02986FDC */ cpu->r[12] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02986FE0 */ _t79 = cpu->r[1] + 0x00000018u;
|
|
/* 02986FE0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t79);
|
|
/* 02986FE4 */ _t80 = cpu->r[28] + 0x00000000u;
|
|
/* 02986FE4 */ rbrew_write32(cpu->mem, _t80, cpu->r[12]);
|
|
/* 02986FE8 */ _t81 = cpu->r[23] + 0x0000000Cu;
|
|
/* 02986FE8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t81);
|
|
/* 02986FEC */ _t82 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02986FEC */ cpu->r[7] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02986FF0 */ cpu->r[4] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02986FF4 */ _t83 = cpu->r[30] + 0x00000015u;
|
|
/* 02986FF4 */ cpu->r[12] = rbrew_read8(cpu->mem, _t83);
|
|
/* 02986FF8 */ cpu->r[5] = cpu->r[4] ^ 0x00000001u;
|
|
/* 02986FFC */ _t84 = cpu->r[30] + 0x0000001Cu;
|
|
/* 02986FFC */ rbrew_write32(cpu->mem, _t84, cpu->r[7]);
|
|
/* 02987000 */ cpu->r[12] = cpu->r[12] | cpu->r[5];
|
|
/* 02987004 */ _t85 = cpu->r[30] + 0x00000018u;
|
|
/* 02987004 */ rbrew_write32(cpu->mem, _t85, cpu->r[7]);
|
|
/* 02987008 */ _t86 = cpu->r[30] + 0x00000015u;
|
|
/* 02987008 */ rbrew_write8(cpu->mem, _t86, (uint8_t)cpu->r[12]);
|
|
/* 0298700C */ _t87 = cpu->r[25] + 0x00000000u;
|
|
/* 0298700C */ cpu->r[5] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02987010 */ _t88 = cpu->r[25] + 0x00000004u;
|
|
/* 02987010 */ cpu->r[9] = rbrew_read32(cpu->mem, _t88);
|
|
/* 02987014 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[5]);
|
|
/* 02987018 */ _t89 = cpu->r[27] + 0x00000000u;
|
|
/* 02987018 */ cpu->r[4] = rbrew_read32(cpu->mem, _t89);
|
|
/* 0298701C */ cpu->r[0] = cpu->r[11] + 0x00000001u;
|
|
/* 02987020 */ _t90 = cpu->r[1] + 0x00000018u;
|
|
/* 02987020 */ rbrew_write32(cpu->mem, _t90, cpu->r[0]);
|
|
/* 02987024 */ _t91 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987024 */ _t92 = _t91 & 0x00000001u;
|
|
/* 02987024 */ if (_t92) goto L_02987028; else goto L_02987064;
|
|
L_02987028: ; // 0x2987028
|
|
/* 02987028 */ _t93 = cpu->r[1] + 0x00000024u;
|
|
/* 02987028 */ cpu->r[6] = rbrew_read32(cpu->mem, _t93);
|
|
/* 0298702C */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x0000000Cu);
|
|
/* 02987030 */ cpu->r[12] = cpu->r[4] + cpu->r[6];
|
|
/* 02987034 */ _t94 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987034 */ cpu->r[4] = rbrew_read32(cpu->mem, _t94);
|
|
/* 02987038 */ _t95 = cpu->r[12] + 0x0000002Cu;
|
|
/* 02987038 */ cpu->r[5] = rbrew_read32(cpu->mem, _t95);
|
|
/* 0298703C */ cpu->r[18] = cpu->r[9] + cpu->r[8];
|
|
/* 02987040 */ cpu->r[9] = cpu->r[5] + cpu->r[4];
|
|
/* 02987044 */ _t96 = cpu->r[18] + 0x00000000u;
|
|
/* 02987044 */ rbrew_write32(cpu->mem, _t96, cpu->r[9]);
|
|
/* 02987048 */ _t97 = cpu->r[29] + 0x00000008u;
|
|
/* 02987048 */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 0298704C */ _t98 = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298704C */ cpu->r[11] = rbrew_read32(cpu->mem, _t98);
|
|
/* 02987050 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 02987054 */ cpu->r[8] = cpu->r[11] + cpu->r[6];
|
|
/* 02987058 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[8]);
|
|
/* 0298705C */ _t99 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298705C */ _t100 = _t99 & 0x00000001u;
|
|
/* 0298705C */ if (_t100) goto L_02987198; else goto L_02987060;
|
|
L_02987060: ; // 0x2987060
|
|
/* 02987060 */ goto L_02987098;
|
|
L_02987064: ; // 0x2987064
|
|
/* 02987064 */ _t101 = cpu->r[1] + 0x00000024u;
|
|
/* 02987064 */ cpu->r[6] = rbrew_read32(cpu->mem, _t101);
|
|
/* 02987068 */ cpu->r[12] = cpu->r[4] + cpu->r[6];
|
|
/* 0298706C */ _t102 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298706C */ cpu->r[4] = rbrew_read32(cpu->mem, _t102);
|
|
/* 02987070 */ _t103 = cpu->r[12] + 0x0000002Cu;
|
|
/* 02987070 */ cpu->r[5] = rbrew_read32(cpu->mem, _t103);
|
|
/* 02987074 */ cpu->r[18] = cpu->r[9];
|
|
/* 02987078 */ cpu->r[9] = cpu->r[5] + cpu->r[4];
|
|
/* 0298707C */ _t104 = cpu->r[18] + 0x00000000u;
|
|
/* 0298707C */ rbrew_write32(cpu->mem, _t104, cpu->r[9]);
|
|
/* 02987080 */ _t105 = cpu->r[29] + 0x00000008u;
|
|
/* 02987080 */ cpu->r[0] = rbrew_read32(cpu->mem, _t105);
|
|
/* 02987084 */ _t106 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02987084 */ cpu->r[11] = rbrew_read32(cpu->mem, _t106);
|
|
/* 02987088 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000000Cu);
|
|
/* 0298708C */ cpu->r[8] = cpu->r[11] + cpu->r[6];
|
|
/* 02987090 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[8]);
|
|
/* 02987094 */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987094 */ _t108 = _t107 & 0x00000001u;
|
|
/* 02987094 */ if (_t108) goto L_02987198; else goto L_02987098;
|
|
L_02987098: ; // 0x2987098
|
|
/* 02987098 */ cpu->r[19] = cpu->r[11];
|
|
/* 0298709C */ cpu->r[7] = cpu->r[1] + 0x00000040u;
|
|
/* 029870A0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[26], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029870A4 */ cpu->r[24] = cpu->r[8];
|
|
/* 029870A8 */ cpu->r[20] = cpu->r[11];
|
|
/* 029870AC */ cpu->r[21] = cpu->r[7] + cpu->r[0];
|
|
/* 029870B0 */ cpu->r[0] = 0x00000001u;
|
|
/* 029870B4 */ cpu->r[16] = 0x101D0000u;
|
|
/* 029870B8 */ cpu->r[22] = 0x101D0000u;
|
|
/* 029870BC */ _t109 = cpu->r[1] + 0x00000030u;
|
|
/* 029870BC */ rbrew_write32(cpu->mem, _t109, cpu->r[0]);
|
|
L_029870C0: ; // 0x29870c0
|
|
/* 029870C0 */ cpu->r[0] = 0xAAAA0000u;
|
|
/* 029870C4 */ cpu->r[9] = cpu->r[19] - cpu->r[20];
|
|
/* 029870C8 */ cpu->r[0] = cpu->r[0] | 0x0000AAABu;
|
|
/* 029870CC */ /* nop */
|
|
/* 029870D0 */ cpu->r[15] = rbrew_rlwinm(cpu->r[15], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 029870D4 */ cpu->r[17] = cpu->r[15];
|
|
/* 029870D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029870DC */ cpu->r[4] = cpu->r[17];
|
|
/* 029870E0 */ Gambit_fn_0297FC7C(cpu);
|
|
/* 029870E4 */ _t110 = cpu->r[31] + 0x0000001Cu;
|
|
/* 029870E4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t110);
|
|
/* 029870E8 */ cpu->r[12] = 0x00000000u;
|
|
/* 029870EC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[17], cpu->r[11]);
|
|
/* 029870F0 */ _t111 = cpu->r[16] + 0xFFFFE218u;
|
|
/* 029870F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t111);
|
|
/* 029870F4 */ _t112 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029870F4 */ _t113 = _t112 & 0x00000001u;
|
|
/* 029870F4 */ if (_t113) goto L_029870F8; else goto L_02987104;
|
|
L_029870F8: ; // 0x29870f8
|
|
/* 029870F8 */ _t114 = cpu->r[31] + 0x00000024u;
|
|
/* 029870F8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t114);
|
|
/* 029870FC */ cpu->r[12] = rbrew_rlwinm(cpu->r[17], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02987100 */ _t115 = cpu->r[12] + cpu->r[8];
|
|
/* 02987100 */ cpu->r[12] = rbrew_read32(cpu->mem, _t115);
|
|
L_02987104: ; // 0x2987104
|
|
/* 02987104 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02987108 */ _t116 = cpu->r[12] + 0x00000000u;
|
|
/* 02987108 */ cpu->r[17] = rbrew_read32(cpu->mem, _t116);
|
|
/* 0298710C */ _t117 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298710C */ _t118 = _t117 & 0x00000001u;
|
|
/* 0298710C */ if (_t118) goto L_02987110; else goto L_02987124;
|
|
L_02987110: ; // 0x2987110
|
|
/* 02987110 */ cpu->r[11] = 0x00000001u;
|
|
/* 02987114 */ _t119 = cpu->r[16] + 0xFFFFE218u;
|
|
/* 02987114 */ rbrew_write32(cpu->mem, _t119, cpu->r[11]);
|
|
/* 02987118 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298711C */ cpu->r[11] = cpu->r[11] + 0xFFFFEDC8u;
|
|
/* 02987120 */ _t120 = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02987120 */ rbrew_write32(cpu->mem, _t120, cpu->r[11]);
|
|
L_02987124: ; // 0x2987124
|
|
/* 02987124 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[17], 0x00000000u);
|
|
/* 02987128 */ _t121 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987128 */ _t122 = _t121 & 0x00000001u;
|
|
/* 02987128 */ if (_t122) goto L_02987158; else goto L_0298712C;
|
|
L_0298712C: ; // 0x298712c
|
|
/* 0298712C */ _t123 = cpu->r[17] + 0x00000088u;
|
|
/* 0298712C */ cpu->r[12] = rbrew_read32(cpu->mem, _t123);
|
|
/* 02987130 */ _t124 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02987130 */ cpu->r[0] = rbrew_read32(cpu->mem, _t124);
|
|
/* 02987134 */ cpu->ctr = cpu->r[0];
|
|
/* 02987138 */ cpu->r[3] = cpu->r[17];
|
|
/* 0298713C */ cpu->r[4] = cpu->r[22] + 0xFFFFEF88u;
|
|
/* 02987140 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02987144 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02987148 */ _t125 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987148 */ _t126 = _t125 & 0x00000001u;
|
|
/* 02987148 */ if (_t126) goto L_02987158; else goto L_0298714C;
|
|
L_0298714C: ; // 0x298714c
|
|
/* 0298714C */ cpu->r[12] = cpu->r[17];
|
|
/* 0298714C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02987150 */ _t127 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987150 */ _t128 = _t127 & 0x00000001u;
|
|
/* 02987150 */ if (_t128) goto L_02987154; else goto L_0298716C;
|
|
L_02987154: ; // 0x2987154
|
|
/* 02987154 */ goto L_0298718C;
|
|
L_02987158: ; // 0x2987158
|
|
/* 02987158 */ cpu->r[19] = cpu->r[19] + 0x0000000Cu;
|
|
/* 0298715C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[24]);
|
|
/* 02987160 */ cpu->r[12] = 0x00000000u;
|
|
/* 02987164 */ _t129 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987164 */ _t130 = _t129 & 0x00000001u;
|
|
/* 02987164 */ if (_t130) goto L_02987168; else goto L_029870C0;
|
|
L_02987168: ; // 0x2987168
|
|
/* 02987168 */ goto L_02987198;
|
|
L_0298716C: ; // 0x298716c
|
|
/* 0298716C */ _t131 = cpu->r[12] + 0x00000094u;
|
|
/* 0298716C */ cpu->r[4] = rbrew_read32(cpu->mem, _t131);
|
|
/* 02987170 */ cpu->r[3] = cpu->r[23];
|
|
/* 02987174 */ Gambit_fn_029867AC(cpu);
|
|
/* 02987178 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298717C */ _t132 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298717C */ _t133 = _t132 & 0x00000001u;
|
|
/* 0298717C */ if (_t133) goto L_0298718C; else goto L_02987180;
|
|
L_02987180: ; // 0x2987180
|
|
/* 02987180 */ _t134 = cpu->r[21] + 0x00000000u;
|
|
/* 02987180 */ rbrew_write32(cpu->mem, _t134, cpu->r[15]);
|
|
/* 02987184 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 02987188 */ cpu->r[21] = cpu->r[21] + 0x00000004u;
|
|
L_0298718C: ; // 0x298718c
|
|
/* 0298718C */ cpu->r[19] = cpu->r[19] + 0x0000000Cu;
|
|
/* 02987190 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[24]);
|
|
/* 02987194 */ _t135 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987194 */ _t136 = _t135 & 0x00000001u;
|
|
/* 02987194 */ if (_t136) goto L_02987198; else goto L_029870C0;
|
|
L_02987198: ; // 0x2987198
|
|
/* 02987198 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 0298719C */ _t137 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298719C */ _t138 = _t137 & 0x00000001u;
|
|
/* 0298719C */ if (_t138) goto L_029871A0; else goto L_02987254;
|
|
L_029871A0: ; // 0x29871a0
|
|
/* 029871A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[14], 0x00000000u);
|
|
/* 029871A4 */ cpu->r[3] = cpu->r[14];
|
|
/* 029871A8 */ _t139 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029871A8 */ _t140 = _t139 & 0x00000001u;
|
|
/* 029871A8 */ if (_t140) goto L_029871AC; else goto L_029871B8;
|
|
L_029871AC: ; // 0x29871ac
|
|
/* 029871AC */ _t141 = cpu->r[1] + 0x00000014u;
|
|
/* 029871AC */ cpu->r[11] = rbrew_read32(cpu->mem, _t141);
|
|
/* 029871B0 */ _t142 = cpu->r[11] + 0x00000000u;
|
|
/* 029871B0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t142);
|
|
/* 029871B4 */ Gambit_fn_02826F20(cpu);
|
|
L_029871B8: ; // 0x29871b8
|
|
/* 029871B8 */ _t143 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029871B8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t143);
|
|
/* 029871BC */ _t144 = cpu->r[10] + 0x00000034u;
|
|
/* 029871BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t144);
|
|
/* 029871C0 */ cpu->ctr = cpu->r[11];
|
|
/* 029871C4 */ cpu->r[5] = 0x00000004u;
|
|
/* 029871C8 */ cpu->r[4] = rbrew_rlwinm(cpu->r[26], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 029871CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029871D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 029871D4 */ cpu->r[6] = cpu->r[26];
|
|
/* 029871D8 */ _t145 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029871D8 */ _t146 = _t145 & 0x00000001u;
|
|
/* 029871D8 */ if (_t146) goto L_029871E0; else goto L_029871DC;
|
|
L_029871DC: ; // 0x29871dc
|
|
/* 029871DC */ cpu->r[6] = 0x00000001u;
|
|
L_029871E0: ; // 0x29871e0
|
|
/* 029871E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029871E4 */ _t147 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029871E4 */ _t148 = _t147 & 0x00000001u;
|
|
/* 029871E4 */ if (_t148) goto L_029871E8; else goto L_02987208;
|
|
L_029871E8: ; // 0x29871e8
|
|
/* 029871E8 */ _t149 = cpu->r[18] + 0x00000004u;
|
|
/* 029871E8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t149);
|
|
/* 029871EC */ _t150 = cpu->r[18] + 0x00000008u;
|
|
/* 029871EC */ cpu->r[3] = rbrew_read32(cpu->mem, _t150);
|
|
/* 029871F0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 029871F4 */ cpu->r[0] = cpu->r[3] + cpu->r[0];
|
|
/* 029871F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 029871FC */ cpu->r[7] = cpu->r[3];
|
|
/* 02987200 */ _t151 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987200 */ _t152 = _t151 & 0x00000001u;
|
|
/* 02987200 */ if (_t152) goto L_02987244; else goto L_02987204;
|
|
L_02987204: ; // 0x2987204
|
|
/* 02987204 */ goto L_02987224;
|
|
L_02987208: ; // 0x2987208
|
|
/* 02987208 */ cpu->r[0] = rbrew_rlwinm(cpu->r[26], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 0298720C */ _t153 = cpu->r[18] + 0x00000004u;
|
|
/* 0298720C */ rbrew_write32(cpu->mem, _t153, cpu->r[26]);
|
|
/* 02987210 */ cpu->r[0] = cpu->r[3] + cpu->r[0];
|
|
/* 02987214 */ _t154 = cpu->r[18] + 0x00000008u;
|
|
/* 02987214 */ rbrew_write32(cpu->mem, _t154, cpu->r[3]);
|
|
/* 02987218 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 0298721C */ cpu->r[7] = cpu->r[3];
|
|
/* 02987220 */ _t155 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987220 */ _t156 = _t155 & 0x00000001u;
|
|
/* 02987220 */ if (_t156) goto L_02987244; else goto L_02987224;
|
|
L_02987224: ; // 0x2987224
|
|
/* 02987224 */ cpu->r[11] = cpu->r[1] + 0x00000040u;
|
|
L_02987228: ; // 0x2987228
|
|
/* 02987228 */ cpu->r[12] = cpu->r[3] - cpu->r[7];
|
|
/* 0298722C */ cpu->r[4] = rbrew_rlwinm(cpu->r[12], 0x00000001u, 0x00000000u, 0x0000001Du);
|
|
/* 02987230 */ _t157 = cpu->r[4] + cpu->r[11];
|
|
/* 02987230 */ cpu->r[5] = rbrew_read32(cpu->mem, _t157);
|
|
/* 02987234 */ _t158 = cpu->r[3] + 0x00000000u;
|
|
/* 02987234 */ rbrew_write16(cpu->mem, _t158, (uint16_t)cpu->r[5]);
|
|
/* 02987238 */ cpu->r[3] = cpu->r[3] + 0x00000002u;
|
|
/* 0298723C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 02987240 */ _t159 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987240 */ _t160 = _t159 & 0x00000001u;
|
|
/* 02987240 */ if (_t160) goto L_02987244; else goto L_02987228;
|
|
L_02987244: ; // 0x2987244
|
|
/* 02987244 */ _t161 = cpu->r[1] + 0x00000028u;
|
|
/* 02987244 */ cpu->r[9] = rbrew_read32(cpu->mem, _t161);
|
|
/* 02987248 */ cpu->r[0] = cpu->r[26] + 0xFFFFFFFFu;
|
|
/* 0298724C */ cpu->r[0] = cpu->r[9] + cpu->r[0];
|
|
/* 02987250 */ _t162 = cpu->r[1] + 0x00000028u;
|
|
/* 02987250 */ rbrew_write32(cpu->mem, _t162, cpu->r[0]);
|
|
L_02987254: ; // 0x2987254
|
|
/* 02987254 */ _t163 = cpu->r[1] + 0x00000020u;
|
|
/* 02987254 */ cpu->r[6] = rbrew_read32(cpu->mem, _t163);
|
|
/* 02987258 */ _t164 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987258 */ cpu->r[9] = rbrew_read32(cpu->mem, _t164);
|
|
/* 0298725C */ cpu->r[4] = cpu->r[6] + 0xFFFFFFFFu;
|
|
/* 0298725C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02987260 */ _t165 = cpu->r[1] + 0x00000008u;
|
|
/* 02987260 */ cpu->r[12] = rbrew_read32(cpu->mem, _t165);
|
|
/* 02987264 */ cpu->r[8] = cpu->r[9] + 0x00000008u;
|
|
/* 02987268 */ _t166 = cpu->r[1] + 0x00000020u;
|
|
/* 02987268 */ rbrew_write32(cpu->mem, _t166, cpu->r[4]);
|
|
/* 0298726C */ cpu->r[0] = cpu->r[12] + 0x00000001u;
|
|
/* 02987270 */ _t167 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987270 */ rbrew_write32(cpu->mem, _t167, cpu->r[8]);
|
|
/* 02987274 */ _t168 = cpu->r[1] + 0x00000008u;
|
|
/* 02987274 */ rbrew_write32(cpu->mem, _t168, cpu->r[0]);
|
|
/* 02987278 */ _t169 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987278 */ _t170 = _t169 & 0x00000001u;
|
|
/* 02987278 */ if (_t170) goto L_029872A4; else goto L_0298727C;
|
|
L_0298727C: ; // 0x298727c
|
|
/* 0298727C */ _t171 = cpu->r[27] + 0x00000000u;
|
|
/* 0298727C */ cpu->r[6] = rbrew_read32(cpu->mem, _t171);
|
|
/* 02987280 */ _t172 = cpu->r[6] + 0x0000001Cu;
|
|
/* 02987280 */ cpu->r[5] = rbrew_read32(cpu->mem, _t172);
|
|
/* 02987284 */ cpu->r[26] = 0x00000000u;
|
|
/* 02987288 */ _t173 = cpu->r[5] + 0x00000040u;
|
|
/* 02987288 */ cpu->r[4] = rbrew_read32(cpu->mem, _t173);
|
|
/* 0298728C */ cpu->r[6] = cpu->r[26];
|
|
/* 02987290 */ _t174 = cpu->r[1] + 0x00000008u;
|
|
/* 02987290 */ cpu->r[7] = rbrew_read32(cpu->mem, _t174);
|
|
/* 02987294 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02987298 */ cpu->r[8] = cpu->r[5] + 0x00000040u;
|
|
/* 0298729C */ _t175 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298729C */ _t176 = _t175 & 0x00000001u;
|
|
/* 0298729C */ if (_t176) goto L_02986F28; else goto L_029872A0;
|
|
L_029872A0: ; // 0x29872a0
|
|
/* 029872A0 */ goto L_02986F24;
|
|
L_029872A4: ; // 0x29872a4
|
|
/* 029872A4 */ _t177 = cpu->r[1] + 0x00000010u;
|
|
/* 029872A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t177);
|
|
/* 029872A8 */ cpu->r[27] = cpu->r[27] + 0x00000004u;
|
|
/* 029872AC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[7]);
|
|
/* 029872B0 */ _t178 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029872B0 */ _t179 = _t178 & 0x00000001u;
|
|
/* 029872B0 */ if (_t179) goto L_029872B4; else goto L_02986EC8;
|
|
L_029872B4: ; // 0x29872b4
|
|
/* 029872B4 */ _t180 = cpu->r[29] + 0x00000084u;
|
|
/* 029872B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t180);
|
|
/* 029872B8 */ cpu->r[3] = cpu->r[30];
|
|
/* 029872BC */ Gambit_fn_02C5EA2C(cpu);
|
|
/* 029872C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[31]);
|
|
/* 029872C4 */ _t181 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029872C4 */ _t182 = _t181 & 0x00000001u;
|
|
/* 029872C4 */ if (_t182) goto L_029872C8; else goto L_029872CC;
|
|
L_029872C8: ; // 0x29872c8
|
|
/* 029872C8 */ cpu->r[31] = cpu->r[3];
|
|
L_029872CC: ; // 0x29872cc
|
|
/* 029872CC */ _t183 = cpu->r[1] + 0x00000028u;
|
|
/* 029872CC */ cpu->r[3] = rbrew_read32(cpu->mem, _t183);
|
|
/* 029872D0 */ _t184 = cpu->r[29] + 0x00000084u;
|
|
/* 029872D0 */ rbrew_write32(cpu->mem, _t184, cpu->r[31]);
|
|
/* 029872D4 */ /* nop */
|
|
/* 029872D8 */ _t185 = cpu->r[1] + 0x0000048Cu;
|
|
/* 029872D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t185);
|
|
/* 029872DC */ cpu->lr = cpu->r[0];
|
|
/* 029872E0 */ cpu->r[1] = cpu->r[1] + 0x00000488u;
|
|
/* 029872E4 */ return;
|
|
}
|
|
|
|
// fn_029872E8 @ 0x29872e8
|
|
void Gambit_fn_029872E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_029872E8: ; // 0x29872e8
|
|
/* 029872E8 */ cpu->r[11] = 0x00000000u;
|
|
/* 029872EC */ _t0 = cpu->r[3] + 0x00000088u;
|
|
/* 029872EC */ cpu->r[0] = rbrew_read16(cpu->mem, _t0);
|
|
/* 029872F0 */ _t1 = cpu->r[4] + 0x00000018u;
|
|
/* 029872F0 */ rbrew_write32(cpu->mem, _t1, cpu->r[11]);
|
|
/* 029872F4 */ _t2 = cpu->r[4] + 0x00000000u;
|
|
/* 029872F4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 029872F8 */ _t3 = cpu->r[4] + 0x00000014u;
|
|
/* 029872F8 */ rbrew_write32(cpu->mem, _t3, cpu->r[11]);
|
|
/* 029872FC */ return;
|
|
}
|
|
|
|
// fn_02987300 @ 0x2987300
|
|
void Gambit_fn_02987300(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02987300: ; // 0x2987300
|
|
/* 02987300 */ _t0 = cpu->r[1] + 0xFFFFFF98u;
|
|
/* 02987300 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02987300 */ cpu->r[1] = _t0;
|
|
/* 02987304 */ /* nop */
|
|
/* 02987308 */ cpu->r[0] = cpu->lr;
|
|
/* 0298730C */ _t1 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0298730C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02987310 */ cpu->r[27] = cpu->r[5];
|
|
/* 02987314 */ _t2 = cpu->r[27] + 0x00000004u;
|
|
/* 02987314 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02987318 */ cpu->r[26] = cpu->r[3];
|
|
/* 0298731C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987320 */ cpu->r[28] = cpu->r[7];
|
|
/* 02987324 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987324 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02987324 */ if (_t4) goto L_029874F0; else goto L_02987328;
|
|
L_02987328: ; // 0x2987328
|
|
/* 02987328 */ _t5 = cpu->r[26] + 0x00000030u;
|
|
/* 02987328 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298732C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[9]);
|
|
/* 02987330 */ _t6 = cpu->r[26] + 0x00000034u;
|
|
/* 02987330 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02987334 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987334 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02987334 */ if (_t8) goto L_02987338; else goto L_02987340;
|
|
L_02987338: ; // 0x2987338
|
|
/* 02987338 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 0298733C */ cpu->r[31] = cpu->r[31] + cpu->r[10];
|
|
L_02987340: ; // 0x2987340
|
|
/* 02987340 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 02987344 */ _t9 = cpu->r[27] + 0x00000008u;
|
|
/* 02987344 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02987348 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987348 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02987348 */ if (_t11) goto L_0298734C; else goto L_02987354;
|
|
L_0298734C: ; // 0x298734c
|
|
/* 0298734C */ cpu->r[11] = rbrew_rlwinm(cpu->r[28], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02987350 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_02987354: ; // 0x2987354
|
|
/* 02987354 */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 02987354 */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t12);
|
|
/* 02987358 */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 02987358 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298735C */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0298735C */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[7]);
|
|
/* 02987360 */ _t15 = cpu->r[26] + 0x00000084u;
|
|
/* 02987360 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02987364 */ cpu->r[30] = cpu->r[10] + cpu->r[12];
|
|
/* 02987364 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02987368 */ cpu->r[29] = 0x00000000u;
|
|
/* 0298736C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298736C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298736C */ if (_t17) goto L_029873D8; else goto L_02987370;
|
|
L_02987370: ; // 0x2987370
|
|
/* 02987370 */ cpu->r[3] = cpu->r[30];
|
|
/* 02987374 */ Gambit_fn_02C4F040(cpu);
|
|
/* 02987378 */ cpu->r[0] = 0x101B0000u;
|
|
/* 0298737C */ _t18 = cpu->r[30] + 0x00000044u;
|
|
/* 0298737C */ rbrew_write32(cpu->mem, _t18, cpu->r[29]);
|
|
/* 02987380 */ cpu->r[0] = cpu->r[0] + 0xFFFFED88u;
|
|
/* 02987384 */ _t19 = cpu->r[30] + 0x00000034u;
|
|
/* 02987384 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 02987388 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 02987388 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 0298738C */ _t21 = cpu->r[27] + 0x00000000u;
|
|
/* 0298738C */ cpu->r[7] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02987390 */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 02987394 */ _t22 = cpu->r[7] + 0x00000000u;
|
|
/* 02987394 */ cpu->r[25] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02987398 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 02987398 */ rbrew_write32(cpu->mem, _t23, cpu->r[5]);
|
|
/* 0298739C */ _t24 = cpu->r[1] + 0x00000018u;
|
|
/* 0298739C */ rbrew_write32(cpu->mem, _t24, cpu->r[5]);
|
|
/* 029873A0 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 029873A0 */ rbrew_write32(cpu->mem, _t25, cpu->r[5]);
|
|
/* 029873A4 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029873A4 */ rbrew_write32(cpu->mem, _t26, cpu->r[5]);
|
|
/* 029873A8 */ cpu->r[5] = 0x00000000u;
|
|
/* 029873AC */ _t27 = cpu->r[1] + 0x00000028u;
|
|
/* 029873AC */ rbrew_write32(cpu->mem, _t27, cpu->r[29]);
|
|
/* 029873B0 */ cpu->r[0] = 0x00000001u;
|
|
/* 029873B4 */ _t28 = cpu->r[1] + 0x00000021u;
|
|
/* 029873B4 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[5]);
|
|
/* 029873B8 */ _t29 = cpu->r[1] + 0x00000020u;
|
|
/* 029873B8 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[0]);
|
|
/* 029873BC */ _t30 = cpu->r[1] + 0x00000024u;
|
|
/* 029873BC */ rbrew_write32(cpu->mem, _t30, cpu->r[29]);
|
|
/* 029873C0 */ _t31 = cpu->r[25] + 0x00000014u;
|
|
/* 029873C0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t31);
|
|
/* 029873C4 */ cpu->r[8] = cpu->r[1] + 0x00000018u;
|
|
/* 029873C8 */ cpu->r[6] = cpu->r[1] + 0x00000014u;
|
|
/* 029873CC */ cpu->r[10] = cpu->r[1] + 0x0000001Cu;
|
|
/* 029873D0 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 029873D0 */ rbrew_write32(cpu->mem, _t32, cpu->r[0]);
|
|
/* 029873D4 */ goto L_02987424;
|
|
L_029873D8: ; // 0x29873d8
|
|
/* 029873D8 */ cpu->r[30] = 0x00000000u;
|
|
/* 029873DC */ _t33 = cpu->r[31] + 0x00000008u;
|
|
/* 029873DC */ rbrew_write32(cpu->mem, _t33, cpu->r[30]);
|
|
/* 029873E0 */ _t34 = cpu->r[27] + 0x00000000u;
|
|
/* 029873E0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t34);
|
|
/* 029873E4 */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 029873E8 */ _t35 = cpu->r[7] + 0x00000000u;
|
|
/* 029873E8 */ cpu->r[25] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029873EC */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 029873EC */ rbrew_write32(cpu->mem, _t36, cpu->r[5]);
|
|
/* 029873F0 */ _t37 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029873F0 */ rbrew_write32(cpu->mem, _t37, cpu->r[5]);
|
|
/* 029873F4 */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 029873F4 */ rbrew_write32(cpu->mem, _t38, cpu->r[5]);
|
|
/* 029873F8 */ cpu->r[0] = 0x00000001u;
|
|
/* 029873FC */ _t39 = cpu->r[1] + 0x00000018u;
|
|
/* 029873FC */ rbrew_write32(cpu->mem, _t39, cpu->r[5]);
|
|
/* 02987400 */ _t40 = cpu->r[1] + 0x00000020u;
|
|
/* 02987400 */ rbrew_write8(cpu->mem, _t40, (uint8_t)cpu->r[0]);
|
|
/* 02987404 */ _t41 = cpu->r[1] + 0x00000021u;
|
|
/* 02987404 */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[30]);
|
|
/* 02987408 */ _t42 = cpu->r[1] + 0x00000028u;
|
|
/* 02987408 */ rbrew_write32(cpu->mem, _t42, cpu->r[29]);
|
|
/* 0298740C */ _t43 = cpu->r[1] + 0x00000024u;
|
|
/* 0298740C */ rbrew_write32(cpu->mem, _t43, cpu->r[29]);
|
|
/* 02987410 */ _t44 = cpu->r[25] + 0x00000014u;
|
|
/* 02987410 */ cpu->r[0] = rbrew_read16(cpu->mem, _t44);
|
|
/* 02987414 */ cpu->r[10] = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987418 */ cpu->r[6] = cpu->r[1] + 0x00000014u;
|
|
/* 0298741C */ cpu->r[8] = cpu->r[1] + 0x00000018u;
|
|
/* 02987420 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 02987420 */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
L_02987424: ; // 0x2987424
|
|
/* 02987424 */ _t46 = cpu->r[1] + 0x00000008u;
|
|
/* 02987424 */ cpu->r[9] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02987428 */ _t47 = cpu->r[6] + 0x00000000u;
|
|
/* 02987428 */ rbrew_write32(cpu->mem, _t47, cpu->r[9]);
|
|
/* 0298742C */ _t48 = cpu->r[25] + 0x00000018u;
|
|
/* 0298742C */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02987430 */ cpu->r[9] = cpu->r[8];
|
|
/* 02987434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987438 */ _t49 = cpu->r[1] + 0x00000008u;
|
|
/* 02987438 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 0298743C */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298743C */ _t51 = _t50 & 0x00000001u;
|
|
/* 0298743C */ if (_t51) goto L_02987444; else goto L_02987440;
|
|
L_02987440: ; // 0x2987440
|
|
/* 02987440 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
L_02987444: ; // 0x2987444
|
|
/* 02987444 */ _t52 = cpu->r[9] + 0x00000000u;
|
|
/* 02987444 */ cpu->r[12] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02987448 */ _t53 = cpu->r[8] + 0x00000000u;
|
|
/* 02987448 */ rbrew_write32(cpu->mem, _t53, cpu->r[12]);
|
|
/* 0298744C */ _t54 = cpu->r[25] + 0x0000001Cu;
|
|
/* 0298744C */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02987450 */ cpu->r[11] = cpu->r[10];
|
|
/* 02987454 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987458 */ _t55 = cpu->r[1] + 0x00000008u;
|
|
/* 02987458 */ rbrew_write32(cpu->mem, _t55, cpu->r[0]);
|
|
/* 0298745C */ _t56 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298745C */ _t57 = _t56 & 0x00000001u;
|
|
/* 0298745C */ if (_t57) goto L_02987464; else goto L_02987460;
|
|
L_02987460: ; // 0x2987460
|
|
/* 02987460 */ cpu->r[11] = cpu->r[1] + 0x00000008u;
|
|
L_02987464: ; // 0x2987464
|
|
/* 02987464 */ _t58 = cpu->r[11] + 0x00000000u;
|
|
/* 02987464 */ cpu->r[5] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02987468 */ _t59 = cpu->r[10] + 0x00000000u;
|
|
/* 02987468 */ rbrew_write32(cpu->mem, _t59, cpu->r[5]);
|
|
/* 0298746C */ _t60 = cpu->r[25] + 0x0000000Cu;
|
|
/* 0298746C */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02987470 */ _t61 = cpu->r[1] + 0x00000028u;
|
|
/* 02987470 */ rbrew_write32(cpu->mem, _t61, cpu->r[29]);
|
|
/* 02987474 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02987478 */ _t62 = cpu->r[1] + 0x00000024u;
|
|
/* 02987478 */ rbrew_write32(cpu->mem, _t62, cpu->r[29]);
|
|
/* 0298747C */ cpu->r[0] = cpu->r[0] ^ 0x00000001u;
|
|
/* 02987480 */ cpu->r[3] = cpu->r[26];
|
|
/* 02987484 */ _t63 = cpu->r[1] + 0x00000021u;
|
|
/* 02987484 */ rbrew_write8(cpu->mem, _t63, (uint8_t)cpu->r[0]);
|
|
/* 02987488 */ _t64 = cpu->r[31] + 0x00000000u;
|
|
/* 02987488 */ cpu->r[0] = rbrew_read32(cpu->mem, _t64);
|
|
/* 0298748C */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02987490 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 02987494 */ _t65 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02987494 */ rbrew_write32(cpu->mem, _t65, cpu->r[0]);
|
|
/* 02987498 */ Gambit_fn_029872E8(cpu);
|
|
/* 0298749C */ _t66 = cpu->r[31] + 0x00000004u;
|
|
/* 0298749C */ cpu->r[5] = rbrew_read32(cpu->mem, _t66);
|
|
/* 029874A0 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 029874A4 */ _t67 = cpu->r[26] + 0x00000084u;
|
|
/* 029874A4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t67);
|
|
/* 029874A8 */ cpu->r[3] = cpu->r[30];
|
|
/* 029874AC */ Gambit_fn_02C51750(cpu);
|
|
/* 029874B0 */ cpu->r[3] = cpu->r[30];
|
|
/* 029874B4 */ cpu->r[4] = cpu->r[25];
|
|
/* 029874B8 */ Gambit_fn_02C520EC(cpu);
|
|
/* 029874BC */ _t68 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029874BC */ cpu->r[12] = rbrew_read16(cpu->mem, _t68);
|
|
/* 029874C0 */ cpu->r[12] = cpu->r[12] | 0x00000001u;
|
|
/* 029874C4 */ _t69 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029874C4 */ rbrew_write16(cpu->mem, _t69, (uint16_t)cpu->r[12]);
|
|
/* 029874C8 */ _t70 = cpu->r[27] + 0x00000004u;
|
|
/* 029874C8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t70);
|
|
/* 029874CC */ cpu->r[0] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 029874D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 029874D4 */ _t71 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029874D4 */ _t72 = _t71 & 0x00000001u;
|
|
/* 029874D4 */ if (_t72) goto L_029874D8; else goto L_029874F0;
|
|
L_029874D8: ; // 0x29874d8
|
|
/* 029874D8 */ cpu->r[3] = cpu->r[28] + 0x00000001u;
|
|
/* 029874DC */ /* nop */
|
|
/* 029874E0 */ _t73 = cpu->r[1] + 0x0000006Cu;
|
|
/* 029874E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 029874E4 */ cpu->lr = cpu->r[0];
|
|
/* 029874E8 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 029874EC */ return;
|
|
L_029874F0: ; // 0x29874f0
|
|
/* 029874F0 */ /* nop */
|
|
/* 029874F4 */ _t74 = cpu->r[1] + 0x0000006Cu;
|
|
/* 029874F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 029874F8 */ cpu->lr = cpu->r[0];
|
|
/* 029874FC */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 02987500 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 02987504 */ return;
|
|
}
|
|
|
|
// fn_02987508 @ 0x2987508
|
|
void Gambit_fn_02987508(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02987508: ; // 0x2987508
|
|
/* 02987508 */ _t0 = cpu->r[1] + 0xFFFFFF98u;
|
|
/* 02987508 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02987508 */ cpu->r[1] = _t0;
|
|
/* 0298750C */ /* nop */
|
|
/* 02987510 */ cpu->r[0] = cpu->lr;
|
|
/* 02987514 */ _t1 = cpu->r[1] + 0x0000006Cu;
|
|
/* 02987514 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02987518 */ cpu->r[27] = cpu->r[5];
|
|
/* 0298751C */ _t2 = cpu->r[27] + 0x00000004u;
|
|
/* 0298751C */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02987520 */ cpu->r[26] = cpu->r[3];
|
|
/* 02987524 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987528 */ cpu->r[28] = cpu->r[7];
|
|
/* 0298752C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298752C */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298752C */ if (_t4) goto L_029876F8; else goto L_02987530;
|
|
L_02987530: ; // 0x2987530
|
|
/* 02987530 */ _t5 = cpu->r[26] + 0x00000030u;
|
|
/* 02987530 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02987534 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[9]);
|
|
/* 02987538 */ _t6 = cpu->r[26] + 0x00000034u;
|
|
/* 02987538 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298753C */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298753C */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298753C */ if (_t8) goto L_02987540; else goto L_02987548;
|
|
L_02987540: ; // 0x2987540
|
|
/* 02987540 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 02987544 */ cpu->r[31] = cpu->r[31] + cpu->r[10];
|
|
L_02987548: ; // 0x2987548
|
|
/* 02987548 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 0298754C */ _t9 = cpu->r[27] + 0x00000008u;
|
|
/* 0298754C */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02987550 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987550 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02987550 */ if (_t11) goto L_02987554; else goto L_0298755C;
|
|
L_02987554: ; // 0x2987554
|
|
/* 02987554 */ cpu->r[11] = rbrew_rlwinm(cpu->r[28], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02987558 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_0298755C: ; // 0x298755c
|
|
/* 0298755C */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 0298755C */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t12);
|
|
/* 02987560 */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 02987560 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02987564 */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02987564 */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[7]);
|
|
/* 02987568 */ _t15 = cpu->r[26] + 0x00000084u;
|
|
/* 02987568 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298756C */ cpu->r[30] = cpu->r[10] + cpu->r[12];
|
|
/* 0298756C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02987570 */ cpu->r[29] = 0x00000000u;
|
|
/* 02987574 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987574 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02987574 */ if (_t17) goto L_029875E0; else goto L_02987578;
|
|
L_02987578: ; // 0x2987578
|
|
/* 02987578 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298757C */ Gambit_fn_02C4F040(cpu);
|
|
/* 02987580 */ cpu->r[0] = 0x101B0000u;
|
|
/* 02987584 */ _t18 = cpu->r[30] + 0x00000044u;
|
|
/* 02987584 */ rbrew_write32(cpu->mem, _t18, cpu->r[29]);
|
|
/* 02987588 */ cpu->r[0] = cpu->r[0] + 0xFFFFED88u;
|
|
/* 0298758C */ _t19 = cpu->r[30] + 0x00000034u;
|
|
/* 0298758C */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 02987590 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 02987590 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 02987594 */ _t21 = cpu->r[27] + 0x00000000u;
|
|
/* 02987594 */ cpu->r[7] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02987598 */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 0298759C */ _t22 = cpu->r[7] + 0x00000000u;
|
|
/* 0298759C */ cpu->r[25] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029875A0 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 029875A0 */ rbrew_write32(cpu->mem, _t23, cpu->r[5]);
|
|
/* 029875A4 */ _t24 = cpu->r[1] + 0x00000018u;
|
|
/* 029875A4 */ rbrew_write32(cpu->mem, _t24, cpu->r[5]);
|
|
/* 029875A8 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 029875A8 */ rbrew_write32(cpu->mem, _t25, cpu->r[5]);
|
|
/* 029875AC */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029875AC */ rbrew_write32(cpu->mem, _t26, cpu->r[5]);
|
|
/* 029875B0 */ cpu->r[5] = 0x00000000u;
|
|
/* 029875B4 */ _t27 = cpu->r[1] + 0x00000028u;
|
|
/* 029875B4 */ rbrew_write32(cpu->mem, _t27, cpu->r[29]);
|
|
/* 029875B8 */ cpu->r[0] = 0x00000001u;
|
|
/* 029875BC */ _t28 = cpu->r[1] + 0x00000021u;
|
|
/* 029875BC */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[5]);
|
|
/* 029875C0 */ _t29 = cpu->r[1] + 0x00000020u;
|
|
/* 029875C0 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[0]);
|
|
/* 029875C4 */ _t30 = cpu->r[1] + 0x00000024u;
|
|
/* 029875C4 */ rbrew_write32(cpu->mem, _t30, cpu->r[29]);
|
|
/* 029875C8 */ _t31 = cpu->r[25] + 0x00000014u;
|
|
/* 029875C8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t31);
|
|
/* 029875CC */ cpu->r[8] = cpu->r[1] + 0x00000018u;
|
|
/* 029875D0 */ cpu->r[6] = cpu->r[1] + 0x00000014u;
|
|
/* 029875D4 */ cpu->r[10] = cpu->r[1] + 0x0000001Cu;
|
|
/* 029875D8 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 029875D8 */ rbrew_write32(cpu->mem, _t32, cpu->r[0]);
|
|
/* 029875DC */ goto L_0298762C;
|
|
L_029875E0: ; // 0x29875e0
|
|
/* 029875E0 */ cpu->r[30] = 0x00000000u;
|
|
/* 029875E4 */ _t33 = cpu->r[31] + 0x00000008u;
|
|
/* 029875E4 */ rbrew_write32(cpu->mem, _t33, cpu->r[30]);
|
|
/* 029875E8 */ _t34 = cpu->r[27] + 0x00000000u;
|
|
/* 029875E8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t34);
|
|
/* 029875EC */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 029875F0 */ _t35 = cpu->r[7] + 0x00000000u;
|
|
/* 029875F0 */ cpu->r[25] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029875F4 */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 029875F4 */ rbrew_write32(cpu->mem, _t36, cpu->r[5]);
|
|
/* 029875F8 */ _t37 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029875F8 */ rbrew_write32(cpu->mem, _t37, cpu->r[5]);
|
|
/* 029875FC */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 029875FC */ rbrew_write32(cpu->mem, _t38, cpu->r[5]);
|
|
/* 02987600 */ cpu->r[0] = 0x00000001u;
|
|
/* 02987604 */ _t39 = cpu->r[1] + 0x00000018u;
|
|
/* 02987604 */ rbrew_write32(cpu->mem, _t39, cpu->r[5]);
|
|
/* 02987608 */ _t40 = cpu->r[1] + 0x00000020u;
|
|
/* 02987608 */ rbrew_write8(cpu->mem, _t40, (uint8_t)cpu->r[0]);
|
|
/* 0298760C */ _t41 = cpu->r[1] + 0x00000021u;
|
|
/* 0298760C */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[30]);
|
|
/* 02987610 */ _t42 = cpu->r[1] + 0x00000028u;
|
|
/* 02987610 */ rbrew_write32(cpu->mem, _t42, cpu->r[29]);
|
|
/* 02987614 */ _t43 = cpu->r[1] + 0x00000024u;
|
|
/* 02987614 */ rbrew_write32(cpu->mem, _t43, cpu->r[29]);
|
|
/* 02987618 */ _t44 = cpu->r[25] + 0x00000014u;
|
|
/* 02987618 */ cpu->r[0] = rbrew_read16(cpu->mem, _t44);
|
|
/* 0298761C */ cpu->r[10] = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987620 */ cpu->r[6] = cpu->r[1] + 0x00000014u;
|
|
/* 02987624 */ cpu->r[8] = cpu->r[1] + 0x00000018u;
|
|
/* 02987628 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 02987628 */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
L_0298762C: ; // 0x298762c
|
|
/* 0298762C */ _t46 = cpu->r[1] + 0x00000008u;
|
|
/* 0298762C */ cpu->r[9] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02987630 */ _t47 = cpu->r[6] + 0x00000000u;
|
|
/* 02987630 */ rbrew_write32(cpu->mem, _t47, cpu->r[9]);
|
|
/* 02987634 */ _t48 = cpu->r[25] + 0x00000018u;
|
|
/* 02987634 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02987638 */ cpu->r[9] = cpu->r[8];
|
|
/* 0298763C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987640 */ _t49 = cpu->r[1] + 0x00000008u;
|
|
/* 02987640 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 02987644 */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987644 */ _t51 = _t50 & 0x00000001u;
|
|
/* 02987644 */ if (_t51) goto L_0298764C; else goto L_02987648;
|
|
L_02987648: ; // 0x2987648
|
|
/* 02987648 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
L_0298764C: ; // 0x298764c
|
|
/* 0298764C */ _t52 = cpu->r[9] + 0x00000000u;
|
|
/* 0298764C */ cpu->r[12] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02987650 */ _t53 = cpu->r[8] + 0x00000000u;
|
|
/* 02987650 */ rbrew_write32(cpu->mem, _t53, cpu->r[12]);
|
|
/* 02987654 */ _t54 = cpu->r[25] + 0x0000001Cu;
|
|
/* 02987654 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02987658 */ cpu->r[11] = cpu->r[10];
|
|
/* 0298765C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987660 */ _t55 = cpu->r[1] + 0x00000008u;
|
|
/* 02987660 */ rbrew_write32(cpu->mem, _t55, cpu->r[0]);
|
|
/* 02987664 */ _t56 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987664 */ _t57 = _t56 & 0x00000001u;
|
|
/* 02987664 */ if (_t57) goto L_0298766C; else goto L_02987668;
|
|
L_02987668: ; // 0x2987668
|
|
/* 02987668 */ cpu->r[11] = cpu->r[1] + 0x00000008u;
|
|
L_0298766C: ; // 0x298766c
|
|
/* 0298766C */ _t58 = cpu->r[11] + 0x00000000u;
|
|
/* 0298766C */ cpu->r[5] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02987670 */ _t59 = cpu->r[10] + 0x00000000u;
|
|
/* 02987670 */ rbrew_write32(cpu->mem, _t59, cpu->r[5]);
|
|
/* 02987674 */ _t60 = cpu->r[25] + 0x0000000Cu;
|
|
/* 02987674 */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02987678 */ _t61 = cpu->r[1] + 0x00000028u;
|
|
/* 02987678 */ rbrew_write32(cpu->mem, _t61, cpu->r[29]);
|
|
/* 0298767C */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02987680 */ _t62 = cpu->r[1] + 0x00000024u;
|
|
/* 02987680 */ rbrew_write32(cpu->mem, _t62, cpu->r[29]);
|
|
/* 02987684 */ cpu->r[0] = cpu->r[0] ^ 0x00000001u;
|
|
/* 02987688 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298768C */ _t63 = cpu->r[1] + 0x00000021u;
|
|
/* 0298768C */ rbrew_write8(cpu->mem, _t63, (uint8_t)cpu->r[0]);
|
|
/* 02987690 */ _t64 = cpu->r[31] + 0x00000000u;
|
|
/* 02987690 */ cpu->r[0] = rbrew_read32(cpu->mem, _t64);
|
|
/* 02987694 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02987698 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 0298769C */ _t65 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298769C */ rbrew_write32(cpu->mem, _t65, cpu->r[0]);
|
|
/* 029876A0 */ Gambit_fn_029872E8(cpu);
|
|
/* 029876A4 */ _t66 = cpu->r[31] + 0x00000004u;
|
|
/* 029876A4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t66);
|
|
/* 029876A8 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 029876AC */ _t67 = cpu->r[26] + 0x00000084u;
|
|
/* 029876AC */ cpu->r[6] = rbrew_read32(cpu->mem, _t67);
|
|
/* 029876B0 */ cpu->r[3] = cpu->r[30];
|
|
/* 029876B4 */ Gambit_fn_02C51750(cpu);
|
|
/* 029876B8 */ cpu->r[3] = cpu->r[30];
|
|
/* 029876BC */ cpu->r[4] = cpu->r[25];
|
|
/* 029876C0 */ Gambit_fn_02C520EC(cpu);
|
|
/* 029876C4 */ _t68 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029876C4 */ cpu->r[12] = rbrew_read16(cpu->mem, _t68);
|
|
/* 029876C8 */ cpu->r[12] = cpu->r[12] | 0x00000001u;
|
|
/* 029876CC */ _t69 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029876CC */ rbrew_write16(cpu->mem, _t69, (uint16_t)cpu->r[12]);
|
|
/* 029876D0 */ _t70 = cpu->r[27] + 0x00000004u;
|
|
/* 029876D0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t70);
|
|
/* 029876D4 */ cpu->r[0] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 029876D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 029876DC */ _t71 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029876DC */ _t72 = _t71 & 0x00000001u;
|
|
/* 029876DC */ if (_t72) goto L_029876E0; else goto L_029876F8;
|
|
L_029876E0: ; // 0x29876e0
|
|
/* 029876E0 */ cpu->r[3] = cpu->r[28] + 0x00000001u;
|
|
/* 029876E4 */ /* nop */
|
|
/* 029876E8 */ _t73 = cpu->r[1] + 0x0000006Cu;
|
|
/* 029876E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 029876EC */ cpu->lr = cpu->r[0];
|
|
/* 029876F0 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 029876F4 */ return;
|
|
L_029876F8: ; // 0x29876f8
|
|
/* 029876F8 */ /* nop */
|
|
/* 029876FC */ _t74 = cpu->r[1] + 0x0000006Cu;
|
|
/* 029876FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02987700 */ cpu->lr = cpu->r[0];
|
|
/* 02987704 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 02987708 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 0298770C */ return;
|
|
}
|
|
|
|
// fn_02987710 @ 0x2987710
|
|
void Gambit_fn_02987710(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02987710: ; // 0x2987710
|
|
/* 02987710 */ _t0 = cpu->r[1] + 0xFFFFFF98u;
|
|
/* 02987710 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02987710 */ cpu->r[1] = _t0;
|
|
/* 02987714 */ /* nop */
|
|
/* 02987718 */ cpu->r[0] = cpu->lr;
|
|
/* 0298771C */ _t1 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0298771C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02987720 */ cpu->r[27] = cpu->r[5];
|
|
/* 02987724 */ _t2 = cpu->r[27] + 0x00000004u;
|
|
/* 02987724 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02987728 */ cpu->r[26] = cpu->r[3];
|
|
/* 0298772C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987730 */ cpu->r[28] = cpu->r[7];
|
|
/* 02987734 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987734 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02987734 */ if (_t4) goto L_02987900; else goto L_02987738;
|
|
L_02987738: ; // 0x2987738
|
|
/* 02987738 */ _t5 = cpu->r[26] + 0x00000030u;
|
|
/* 02987738 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298773C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[9]);
|
|
/* 02987740 */ _t6 = cpu->r[26] + 0x00000034u;
|
|
/* 02987740 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02987744 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987744 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02987744 */ if (_t8) goto L_02987748; else goto L_02987750;
|
|
L_02987748: ; // 0x2987748
|
|
/* 02987748 */ cpu->r[10] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 0298774C */ cpu->r[31] = cpu->r[31] + cpu->r[10];
|
|
L_02987750: ; // 0x2987750
|
|
/* 02987750 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 02987754 */ _t9 = cpu->r[27] + 0x00000008u;
|
|
/* 02987754 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02987758 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987758 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02987758 */ if (_t11) goto L_0298775C; else goto L_02987764;
|
|
L_0298775C: ; // 0x298775c
|
|
/* 0298775C */ cpu->r[11] = rbrew_rlwinm(cpu->r[28], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02987760 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_02987764: ; // 0x2987764
|
|
/* 02987764 */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 02987764 */ cpu->r[7] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t12);
|
|
/* 02987768 */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 02987768 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298776C */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0298776C */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[7]);
|
|
/* 02987770 */ _t15 = cpu->r[26] + 0x00000084u;
|
|
/* 02987770 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02987774 */ cpu->r[30] = cpu->r[10] + cpu->r[12];
|
|
/* 02987774 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02987778 */ cpu->r[29] = 0x00000000u;
|
|
/* 0298777C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298777C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298777C */ if (_t17) goto L_029877E8; else goto L_02987780;
|
|
L_02987780: ; // 0x2987780
|
|
/* 02987780 */ cpu->r[3] = cpu->r[30];
|
|
/* 02987784 */ Gambit_fn_02C4F040(cpu);
|
|
/* 02987788 */ cpu->r[0] = 0x101B0000u;
|
|
/* 0298778C */ _t18 = cpu->r[30] + 0x00000044u;
|
|
/* 0298778C */ rbrew_write32(cpu->mem, _t18, cpu->r[29]);
|
|
/* 02987790 */ cpu->r[0] = cpu->r[0] + 0xFFFFED88u;
|
|
/* 02987794 */ _t19 = cpu->r[30] + 0x00000034u;
|
|
/* 02987794 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 02987798 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 02987798 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 0298779C */ _t21 = cpu->r[27] + 0x00000000u;
|
|
/* 0298779C */ cpu->r[7] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029877A0 */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 029877A4 */ _t22 = cpu->r[7] + 0x00000000u;
|
|
/* 029877A4 */ cpu->r[25] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029877A8 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 029877A8 */ rbrew_write32(cpu->mem, _t23, cpu->r[5]);
|
|
/* 029877AC */ _t24 = cpu->r[1] + 0x00000018u;
|
|
/* 029877AC */ rbrew_write32(cpu->mem, _t24, cpu->r[5]);
|
|
/* 029877B0 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 029877B0 */ rbrew_write32(cpu->mem, _t25, cpu->r[5]);
|
|
/* 029877B4 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029877B4 */ rbrew_write32(cpu->mem, _t26, cpu->r[5]);
|
|
/* 029877B8 */ cpu->r[5] = 0x00000000u;
|
|
/* 029877BC */ _t27 = cpu->r[1] + 0x00000028u;
|
|
/* 029877BC */ rbrew_write32(cpu->mem, _t27, cpu->r[29]);
|
|
/* 029877C0 */ cpu->r[0] = 0x00000001u;
|
|
/* 029877C4 */ _t28 = cpu->r[1] + 0x00000021u;
|
|
/* 029877C4 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[5]);
|
|
/* 029877C8 */ _t29 = cpu->r[1] + 0x00000020u;
|
|
/* 029877C8 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[0]);
|
|
/* 029877CC */ _t30 = cpu->r[1] + 0x00000024u;
|
|
/* 029877CC */ rbrew_write32(cpu->mem, _t30, cpu->r[29]);
|
|
/* 029877D0 */ _t31 = cpu->r[25] + 0x00000014u;
|
|
/* 029877D0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t31);
|
|
/* 029877D4 */ cpu->r[8] = cpu->r[1] + 0x00000018u;
|
|
/* 029877D8 */ cpu->r[6] = cpu->r[1] + 0x00000014u;
|
|
/* 029877DC */ cpu->r[10] = cpu->r[1] + 0x0000001Cu;
|
|
/* 029877E0 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 029877E0 */ rbrew_write32(cpu->mem, _t32, cpu->r[0]);
|
|
/* 029877E4 */ goto L_02987834;
|
|
L_029877E8: ; // 0x29877e8
|
|
/* 029877E8 */ cpu->r[30] = 0x00000000u;
|
|
/* 029877EC */ _t33 = cpu->r[31] + 0x00000008u;
|
|
/* 029877EC */ rbrew_write32(cpu->mem, _t33, cpu->r[30]);
|
|
/* 029877F0 */ _t34 = cpu->r[27] + 0x00000000u;
|
|
/* 029877F0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t34);
|
|
/* 029877F4 */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 029877F8 */ _t35 = cpu->r[7] + 0x00000000u;
|
|
/* 029877F8 */ cpu->r[25] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029877FC */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 029877FC */ rbrew_write32(cpu->mem, _t36, cpu->r[5]);
|
|
/* 02987800 */ _t37 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987800 */ rbrew_write32(cpu->mem, _t37, cpu->r[5]);
|
|
/* 02987804 */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 02987804 */ rbrew_write32(cpu->mem, _t38, cpu->r[5]);
|
|
/* 02987808 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298780C */ _t39 = cpu->r[1] + 0x00000018u;
|
|
/* 0298780C */ rbrew_write32(cpu->mem, _t39, cpu->r[5]);
|
|
/* 02987810 */ _t40 = cpu->r[1] + 0x00000020u;
|
|
/* 02987810 */ rbrew_write8(cpu->mem, _t40, (uint8_t)cpu->r[0]);
|
|
/* 02987814 */ _t41 = cpu->r[1] + 0x00000021u;
|
|
/* 02987814 */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[30]);
|
|
/* 02987818 */ _t42 = cpu->r[1] + 0x00000028u;
|
|
/* 02987818 */ rbrew_write32(cpu->mem, _t42, cpu->r[29]);
|
|
/* 0298781C */ _t43 = cpu->r[1] + 0x00000024u;
|
|
/* 0298781C */ rbrew_write32(cpu->mem, _t43, cpu->r[29]);
|
|
/* 02987820 */ _t44 = cpu->r[25] + 0x00000014u;
|
|
/* 02987820 */ cpu->r[0] = rbrew_read16(cpu->mem, _t44);
|
|
/* 02987824 */ cpu->r[10] = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987828 */ cpu->r[6] = cpu->r[1] + 0x00000014u;
|
|
/* 0298782C */ cpu->r[8] = cpu->r[1] + 0x00000018u;
|
|
/* 02987830 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 02987830 */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
L_02987834: ; // 0x2987834
|
|
/* 02987834 */ _t46 = cpu->r[1] + 0x00000008u;
|
|
/* 02987834 */ cpu->r[9] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02987838 */ _t47 = cpu->r[6] + 0x00000000u;
|
|
/* 02987838 */ rbrew_write32(cpu->mem, _t47, cpu->r[9]);
|
|
/* 0298783C */ _t48 = cpu->r[25] + 0x00000018u;
|
|
/* 0298783C */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02987840 */ cpu->r[9] = cpu->r[8];
|
|
/* 02987844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987848 */ _t49 = cpu->r[1] + 0x00000008u;
|
|
/* 02987848 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 0298784C */ _t50 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298784C */ _t51 = _t50 & 0x00000001u;
|
|
/* 0298784C */ if (_t51) goto L_02987854; else goto L_02987850;
|
|
L_02987850: ; // 0x2987850
|
|
/* 02987850 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
L_02987854: ; // 0x2987854
|
|
/* 02987854 */ _t52 = cpu->r[9] + 0x00000000u;
|
|
/* 02987854 */ cpu->r[12] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02987858 */ _t53 = cpu->r[8] + 0x00000000u;
|
|
/* 02987858 */ rbrew_write32(cpu->mem, _t53, cpu->r[12]);
|
|
/* 0298785C */ _t54 = cpu->r[25] + 0x0000001Cu;
|
|
/* 0298785C */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02987860 */ cpu->r[11] = cpu->r[10];
|
|
/* 02987864 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987868 */ _t55 = cpu->r[1] + 0x00000008u;
|
|
/* 02987868 */ rbrew_write32(cpu->mem, _t55, cpu->r[0]);
|
|
/* 0298786C */ _t56 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298786C */ _t57 = _t56 & 0x00000001u;
|
|
/* 0298786C */ if (_t57) goto L_02987874; else goto L_02987870;
|
|
L_02987870: ; // 0x2987870
|
|
/* 02987870 */ cpu->r[11] = cpu->r[1] + 0x00000008u;
|
|
L_02987874: ; // 0x2987874
|
|
/* 02987874 */ _t58 = cpu->r[11] + 0x00000000u;
|
|
/* 02987874 */ cpu->r[5] = rbrew_read32(cpu->mem, _t58);
|
|
/* 02987878 */ _t59 = cpu->r[10] + 0x00000000u;
|
|
/* 02987878 */ rbrew_write32(cpu->mem, _t59, cpu->r[5]);
|
|
/* 0298787C */ _t60 = cpu->r[25] + 0x0000000Cu;
|
|
/* 0298787C */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02987880 */ _t61 = cpu->r[1] + 0x00000028u;
|
|
/* 02987880 */ rbrew_write32(cpu->mem, _t61, cpu->r[29]);
|
|
/* 02987884 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02987888 */ _t62 = cpu->r[1] + 0x00000024u;
|
|
/* 02987888 */ rbrew_write32(cpu->mem, _t62, cpu->r[29]);
|
|
/* 0298788C */ cpu->r[0] = cpu->r[0] ^ 0x00000001u;
|
|
/* 02987890 */ cpu->r[3] = cpu->r[26];
|
|
/* 02987894 */ _t63 = cpu->r[1] + 0x00000021u;
|
|
/* 02987894 */ rbrew_write8(cpu->mem, _t63, (uint8_t)cpu->r[0]);
|
|
/* 02987898 */ _t64 = cpu->r[31] + 0x00000000u;
|
|
/* 02987898 */ cpu->r[0] = rbrew_read32(cpu->mem, _t64);
|
|
/* 0298789C */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 029878A0 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 029878A4 */ _t65 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029878A4 */ rbrew_write32(cpu->mem, _t65, cpu->r[0]);
|
|
/* 029878A8 */ Gambit_fn_029872E8(cpu);
|
|
/* 029878AC */ _t66 = cpu->r[31] + 0x00000004u;
|
|
/* 029878AC */ cpu->r[5] = rbrew_read32(cpu->mem, _t66);
|
|
/* 029878B0 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 029878B4 */ _t67 = cpu->r[26] + 0x00000084u;
|
|
/* 029878B4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t67);
|
|
/* 029878B8 */ cpu->r[3] = cpu->r[30];
|
|
/* 029878BC */ Gambit_fn_02C51750(cpu);
|
|
/* 029878C0 */ cpu->r[3] = cpu->r[30];
|
|
/* 029878C4 */ cpu->r[4] = cpu->r[25];
|
|
/* 029878C8 */ Gambit_fn_02C520EC(cpu);
|
|
/* 029878CC */ _t68 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029878CC */ cpu->r[12] = rbrew_read16(cpu->mem, _t68);
|
|
/* 029878D0 */ cpu->r[12] = cpu->r[12] | 0x00000001u;
|
|
/* 029878D4 */ _t69 = cpu->r[31] + 0x0000000Eu;
|
|
/* 029878D4 */ rbrew_write16(cpu->mem, _t69, (uint16_t)cpu->r[12]);
|
|
/* 029878D8 */ _t70 = cpu->r[27] + 0x00000004u;
|
|
/* 029878D8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t70);
|
|
/* 029878DC */ cpu->r[0] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 029878E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], cpu->r[0]);
|
|
/* 029878E4 */ _t71 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029878E4 */ _t72 = _t71 & 0x00000001u;
|
|
/* 029878E4 */ if (_t72) goto L_029878E8; else goto L_02987900;
|
|
L_029878E8: ; // 0x29878e8
|
|
/* 029878E8 */ cpu->r[3] = cpu->r[28] + 0x00000001u;
|
|
/* 029878EC */ /* nop */
|
|
/* 029878F0 */ _t73 = cpu->r[1] + 0x0000006Cu;
|
|
/* 029878F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 029878F4 */ cpu->lr = cpu->r[0];
|
|
/* 029878F8 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 029878FC */ return;
|
|
L_02987900: ; // 0x2987900
|
|
/* 02987900 */ /* nop */
|
|
/* 02987904 */ _t74 = cpu->r[1] + 0x0000006Cu;
|
|
/* 02987904 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02987908 */ cpu->lr = cpu->r[0];
|
|
/* 0298790C */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 02987910 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 02987914 */ return;
|
|
}
|
|
|
|
// fn_02987918 @ 0x2987918
|
|
void Gambit_fn_02987918(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_02987918: ; // 0x2987918
|
|
/* 02987918 */ cpu->r[11] = 0x00000000u;
|
|
/* 0298791C */ _t0 = cpu->r[3] + 0x00000088u;
|
|
/* 0298791C */ cpu->r[0] = rbrew_read16(cpu->mem, _t0);
|
|
/* 02987920 */ _t1 = cpu->r[4] + 0x0000001Cu;
|
|
/* 02987920 */ rbrew_write32(cpu->mem, _t1, cpu->r[11]);
|
|
/* 02987924 */ _t2 = cpu->r[4] + 0x00000000u;
|
|
/* 02987924 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02987928 */ _t3 = cpu->r[4] + 0x00000018u;
|
|
/* 02987928 */ rbrew_write32(cpu->mem, _t3, cpu->r[11]);
|
|
/* 0298792C */ return;
|
|
}
|
|
|
|
// fn_02987930 @ 0x2987930
|
|
void Gambit_fn_02987930(CPUState* cpu) {
|
|
uint32_t _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_02987930: ; // 0x2987930
|
|
/* 02987930 */ _t0 = cpu->r[1] + 0xFFFFFF88u;
|
|
/* 02987930 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02987930 */ cpu->r[1] = _t0;
|
|
/* 02987934 */ /* nop */
|
|
/* 02987938 */ cpu->r[0] = cpu->lr;
|
|
/* 0298793C */ _t1 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298793C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02987940 */ cpu->r[29] = cpu->r[7];
|
|
/* 02987944 */ cpu->r[28] = cpu->r[5];
|
|
/* 02987948 */ _t2 = cpu->r[28] + 0x00000004u;
|
|
/* 02987948 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298794C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987950 */ cpu->r[27] = cpu->r[3];
|
|
/* 02987954 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987954 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02987954 */ if (_t4) goto L_02987B3C; else goto L_02987958;
|
|
L_02987958: ; // 0x2987958
|
|
/* 02987958 */ _t5 = cpu->r[27] + 0x00000030u;
|
|
/* 02987958 */ cpu->r[5] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298795C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[5]);
|
|
/* 02987960 */ _t6 = cpu->r[27] + 0x00000034u;
|
|
/* 02987960 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02987964 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987964 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02987964 */ if (_t8) goto L_02987968; else goto L_02987970;
|
|
L_02987968: ; // 0x2987968
|
|
/* 02987968 */ cpu->r[6] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 0298796C */ cpu->r[31] = cpu->r[31] + cpu->r[6];
|
|
L_02987970: ; // 0x2987970
|
|
/* 02987970 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 02987974 */ _t9 = cpu->r[28] + 0x00000008u;
|
|
/* 02987974 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02987978 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987978 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02987978 */ if (_t11) goto L_0298797C; else goto L_02987984;
|
|
L_0298797C: ; // 0x298797c
|
|
/* 0298797C */ cpu->r[7] = rbrew_rlwinm(cpu->r[29], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02987980 */ cpu->r[12] = cpu->r[12] + cpu->r[7];
|
|
L_02987984: ; // 0x2987984
|
|
/* 02987984 */ _t12 = cpu->r[12] + 0x00000000u;
|
|
/* 02987984 */ cpu->r[8] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t12);
|
|
/* 02987988 */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 02987988 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298798C */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0298798C */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[8]);
|
|
/* 02987990 */ _t15 = cpu->r[27] + 0x00000084u;
|
|
/* 02987990 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02987994 */ cpu->r[30] = cpu->r[9] + cpu->r[10];
|
|
/* 02987994 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02987998 */ cpu->r[26] = 0x00000000u;
|
|
/* 0298799C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298799C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298799C */ if (_t17) goto L_02987A10; else goto L_029879A0;
|
|
L_029879A0: ; // 0x29879a0
|
|
/* 029879A0 */ cpu->r[3] = cpu->r[30];
|
|
/* 029879A4 */ Gambit_fn_02C4F040(cpu);
|
|
/* 029879A8 */ cpu->r[0] = 0x101B0000u;
|
|
/* 029879AC */ _t18 = cpu->r[30] + 0x00000044u;
|
|
/* 029879AC */ rbrew_write32(cpu->mem, _t18, cpu->r[26]);
|
|
/* 029879B0 */ cpu->r[0] = cpu->r[0] + 0xFFFFEFC4u;
|
|
/* 029879B4 */ _t19 = cpu->r[30] + 0x00000034u;
|
|
/* 029879B4 */ rbrew_write32(cpu->mem, _t19, cpu->r[0]);
|
|
/* 029879B8 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 029879B8 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 029879BC */ _t21 = cpu->r[28] + 0x00000000u;
|
|
/* 029879BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029879C0 */ cpu->r[0] = 0x00000001u;
|
|
/* 029879C4 */ _t22 = cpu->r[11] + 0x00000000u;
|
|
/* 029879C4 */ cpu->r[25] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029879C8 */ _t23 = cpu->r[1] + 0x00000024u;
|
|
/* 029879C8 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[0]);
|
|
/* 029879CC */ cpu->r[0] = 0x00000000u;
|
|
/* 029879D0 */ _t24 = cpu->r[1] + 0x00000028u;
|
|
/* 029879D0 */ rbrew_write32(cpu->mem, _t24, cpu->r[26]);
|
|
/* 029879D4 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
/* 029879D8 */ _t25 = cpu->r[1] + 0x00000025u;
|
|
/* 029879D8 */ rbrew_write8(cpu->mem, _t25, (uint8_t)cpu->r[0]);
|
|
/* 029879DC */ _t26 = cpu->r[1] + 0x00000010u;
|
|
/* 029879DC */ rbrew_write32(cpu->mem, _t26, cpu->r[12]);
|
|
/* 029879E0 */ _t27 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029879E0 */ rbrew_write32(cpu->mem, _t27, cpu->r[12]);
|
|
/* 029879E4 */ _t28 = cpu->r[1] + 0x00000020u;
|
|
/* 029879E4 */ rbrew_write32(cpu->mem, _t28, cpu->r[12]);
|
|
/* 029879E8 */ _t29 = cpu->r[1] + 0x00000018u;
|
|
/* 029879E8 */ rbrew_write32(cpu->mem, _t29, cpu->r[12]);
|
|
/* 029879EC */ _t30 = cpu->r[1] + 0x00000014u;
|
|
/* 029879EC */ rbrew_write32(cpu->mem, _t30, cpu->r[12]);
|
|
/* 029879F0 */ cpu->r[7] = cpu->r[1] + 0x00000018u;
|
|
/* 029879F4 */ _t31 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029879F4 */ rbrew_write32(cpu->mem, _t31, cpu->r[26]);
|
|
/* 029879F8 */ _t32 = cpu->r[25] + 0x00000016u;
|
|
/* 029879F8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t32);
|
|
/* 029879FC */ cpu->r[11] = cpu->r[1] + 0x00000020u;
|
|
/* 02987A00 */ cpu->r[10] = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987A04 */ cpu->r[6] = cpu->r[1] + 0x00000014u;
|
|
/* 02987A08 */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 02987A08 */ rbrew_write32(cpu->mem, _t33, cpu->r[0]);
|
|
/* 02987A0C */ goto L_02987A64;
|
|
L_02987A10: ; // 0x2987a10
|
|
/* 02987A10 */ cpu->r[30] = 0x00000000u;
|
|
/* 02987A14 */ _t34 = cpu->r[31] + 0x00000008u;
|
|
/* 02987A14 */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
/* 02987A18 */ _t35 = cpu->r[28] + 0x00000000u;
|
|
/* 02987A18 */ cpu->r[11] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02987A1C */ cpu->r[12] = 0xFFFFFFFFu;
|
|
/* 02987A20 */ _t36 = cpu->r[11] + 0x00000000u;
|
|
/* 02987A20 */ cpu->r[25] = rbrew_read32(cpu->mem, _t36);
|
|
/* 02987A24 */ _t37 = cpu->r[1] + 0x00000010u;
|
|
/* 02987A24 */ rbrew_write32(cpu->mem, _t37, cpu->r[12]);
|
|
/* 02987A28 */ _t38 = cpu->r[1] + 0x00000020u;
|
|
/* 02987A28 */ rbrew_write32(cpu->mem, _t38, cpu->r[12]);
|
|
/* 02987A2C */ _t39 = cpu->r[1] + 0x00000018u;
|
|
/* 02987A2C */ rbrew_write32(cpu->mem, _t39, cpu->r[12]);
|
|
/* 02987A30 */ _t40 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987A30 */ rbrew_write32(cpu->mem, _t40, cpu->r[26]);
|
|
/* 02987A34 */ _t41 = cpu->r[1] + 0x00000014u;
|
|
/* 02987A34 */ rbrew_write32(cpu->mem, _t41, cpu->r[12]);
|
|
/* 02987A38 */ cpu->r[0] = 0x00000001u;
|
|
/* 02987A3C */ _t42 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987A3C */ rbrew_write32(cpu->mem, _t42, cpu->r[12]);
|
|
/* 02987A40 */ _t43 = cpu->r[1] + 0x00000024u;
|
|
/* 02987A40 */ rbrew_write8(cpu->mem, _t43, (uint8_t)cpu->r[0]);
|
|
/* 02987A44 */ _t44 = cpu->r[1] + 0x00000025u;
|
|
/* 02987A44 */ rbrew_write8(cpu->mem, _t44, (uint8_t)cpu->r[30]);
|
|
/* 02987A48 */ cpu->r[7] = cpu->r[1] + 0x00000018u;
|
|
/* 02987A4C */ _t45 = cpu->r[1] + 0x00000028u;
|
|
/* 02987A4C */ rbrew_write32(cpu->mem, _t45, cpu->r[26]);
|
|
/* 02987A50 */ _t46 = cpu->r[25] + 0x00000016u;
|
|
/* 02987A50 */ cpu->r[0] = rbrew_read16(cpu->mem, _t46);
|
|
/* 02987A54 */ cpu->r[6] = cpu->r[1] + 0x00000014u;
|
|
/* 02987A58 */ cpu->r[11] = cpu->r[1] + 0x00000020u;
|
|
/* 02987A5C */ cpu->r[10] = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987A60 */ _t47 = cpu->r[1] + 0x00000008u;
|
|
/* 02987A60 */ rbrew_write32(cpu->mem, _t47, cpu->r[0]);
|
|
L_02987A64: ; // 0x2987a64
|
|
/* 02987A64 */ _t48 = cpu->r[1] + 0x00000008u;
|
|
/* 02987A64 */ cpu->r[8] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02987A68 */ _t49 = cpu->r[6] + 0x00000000u;
|
|
/* 02987A68 */ rbrew_write32(cpu->mem, _t49, cpu->r[8]);
|
|
/* 02987A6C */ _t50 = cpu->r[25] + 0x00000018u;
|
|
/* 02987A6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 02987A70 */ cpu->r[6] = cpu->r[7];
|
|
/* 02987A74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987A78 */ _t51 = cpu->r[1] + 0x00000008u;
|
|
/* 02987A78 */ rbrew_write32(cpu->mem, _t51, cpu->r[0]);
|
|
/* 02987A7C */ _t52 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987A7C */ _t53 = _t52 & 0x00000001u;
|
|
/* 02987A7C */ if (_t53) goto L_02987A84; else goto L_02987A80;
|
|
L_02987A80: ; // 0x2987a80
|
|
/* 02987A80 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
L_02987A84: ; // 0x2987a84
|
|
/* 02987A84 */ _t54 = cpu->r[6] + 0x00000000u;
|
|
/* 02987A84 */ cpu->r[9] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02987A88 */ _t55 = cpu->r[7] + 0x00000000u;
|
|
/* 02987A88 */ rbrew_write32(cpu->mem, _t55, cpu->r[9]);
|
|
/* 02987A8C */ _t56 = cpu->r[25] + 0x0000001Cu;
|
|
/* 02987A8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02987A90 */ cpu->r[8] = cpu->r[10];
|
|
/* 02987A94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987A98 */ _t57 = cpu->r[1] + 0x00000008u;
|
|
/* 02987A98 */ rbrew_write32(cpu->mem, _t57, cpu->r[0]);
|
|
/* 02987A9C */ _t58 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987A9C */ _t59 = _t58 & 0x00000001u;
|
|
/* 02987A9C */ if (_t59) goto L_02987AA4; else goto L_02987AA0;
|
|
L_02987AA0: ; // 0x2987aa0
|
|
/* 02987AA0 */ cpu->r[8] = cpu->r[1] + 0x00000008u;
|
|
L_02987AA4: ; // 0x2987aa4
|
|
/* 02987AA4 */ _t60 = cpu->r[8] + 0x00000000u;
|
|
/* 02987AA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02987AA8 */ _t61 = cpu->r[10] + 0x00000000u;
|
|
/* 02987AA8 */ rbrew_write32(cpu->mem, _t61, cpu->r[0]);
|
|
/* 02987AAC */ _t62 = cpu->r[25] + 0x00000014u;
|
|
/* 02987AAC */ cpu->r[0] = rbrew_read16(cpu->mem, _t62);
|
|
/* 02987AB0 */ _t63 = cpu->r[1] + 0x00000008u;
|
|
/* 02987AB0 */ rbrew_write32(cpu->mem, _t63, cpu->r[0]);
|
|
/* 02987AB4 */ _t64 = cpu->r[11] + 0x00000000u;
|
|
/* 02987AB4 */ rbrew_write32(cpu->mem, _t64, cpu->r[0]);
|
|
/* 02987AB8 */ _t65 = cpu->r[25] + 0x0000000Cu;
|
|
/* 02987AB8 */ cpu->r[10] = rbrew_read16(cpu->mem, _t65);
|
|
/* 02987ABC */ _t66 = cpu->r[1] + 0x00000028u;
|
|
/* 02987ABC */ rbrew_write32(cpu->mem, _t66, cpu->r[26]);
|
|
/* 02987AC0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02987AC4 */ _t67 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987AC4 */ rbrew_write32(cpu->mem, _t67, cpu->r[26]);
|
|
/* 02987AC8 */ cpu->r[11] = cpu->r[9] ^ 0x00000001u;
|
|
/* 02987ACC */ cpu->r[3] = cpu->r[27];
|
|
/* 02987AD0 */ _t68 = cpu->r[1] + 0x00000025u;
|
|
/* 02987AD0 */ rbrew_write8(cpu->mem, _t68, (uint8_t)cpu->r[11]);
|
|
/* 02987AD4 */ _t69 = cpu->r[31] + 0x00000000u;
|
|
/* 02987AD4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t69);
|
|
/* 02987AD8 */ cpu->r[5] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02987ADC */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 02987AE0 */ _t70 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02987AE0 */ rbrew_write32(cpu->mem, _t70, cpu->r[12]);
|
|
/* 02987AE4 */ Gambit_fn_02987918(cpu);
|
|
/* 02987AE8 */ _t71 = cpu->r[31] + 0x00000004u;
|
|
/* 02987AE8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t71);
|
|
/* 02987AEC */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 02987AF0 */ _t72 = cpu->r[27] + 0x00000084u;
|
|
/* 02987AF0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t72);
|
|
/* 02987AF4 */ cpu->r[3] = cpu->r[30];
|
|
/* 02987AF8 */ Gambit_fn_02C5DD4C(cpu);
|
|
/* 02987AFC */ cpu->r[3] = cpu->r[30];
|
|
/* 02987B00 */ cpu->r[4] = cpu->r[25];
|
|
/* 02987B04 */ Gambit_fn_02C5E5F0(cpu);
|
|
/* 02987B08 */ _t73 = cpu->r[31] + 0x0000000Eu;
|
|
/* 02987B08 */ cpu->r[9] = rbrew_read16(cpu->mem, _t73);
|
|
/* 02987B0C */ cpu->r[9] = cpu->r[9] | 0x00000001u;
|
|
/* 02987B10 */ _t74 = cpu->r[31] + 0x0000000Eu;
|
|
/* 02987B10 */ rbrew_write16(cpu->mem, _t74, (uint16_t)cpu->r[9]);
|
|
/* 02987B14 */ _t75 = cpu->r[28] + 0x00000004u;
|
|
/* 02987B14 */ cpu->r[12] = rbrew_read32(cpu->mem, _t75);
|
|
/* 02987B18 */ cpu->r[11] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 02987B1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[11]);
|
|
/* 02987B20 */ _t76 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987B20 */ _t77 = _t76 & 0x00000001u;
|
|
/* 02987B20 */ if (_t77) goto L_02987B24; else goto L_02987B3C;
|
|
L_02987B24: ; // 0x2987b24
|
|
/* 02987B24 */ cpu->r[3] = cpu->r[29] + 0x00000001u;
|
|
/* 02987B28 */ /* nop */
|
|
/* 02987B2C */ _t78 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02987B2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02987B30 */ cpu->lr = cpu->r[0];
|
|
/* 02987B34 */ cpu->r[1] = cpu->r[1] + 0x00000078u;
|
|
/* 02987B38 */ return;
|
|
L_02987B3C: ; // 0x2987b3c
|
|
/* 02987B3C */ /* nop */
|
|
/* 02987B40 */ _t79 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02987B40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t79);
|
|
/* 02987B44 */ cpu->lr = cpu->r[0];
|
|
/* 02987B48 */ cpu->r[1] = cpu->r[1] + 0x00000078u;
|
|
/* 02987B4C */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 02987B50 */ return;
|
|
}
|
|
|
|
// fn_02987B54 @ 0x2987b54
|
|
void Gambit_fn_02987B54(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_02987B54: ; // 0x2987b54
|
|
/* 02987B54 */ _t0 = cpu->r[5] + 0x00000000u;
|
|
/* 02987B54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02987B58 */ /* nop */
|
|
/* 02987B5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000005u);
|
|
/* 02987B60 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987B60 */ _t2 = _t1 & 0x00000001u;
|
|
/* 02987B60 */ if (_t2) goto L_02987B64; else goto L_02987B7C;
|
|
L_02987B64: ; // 0x2987b64
|
|
/* 02987B64 */ _t3 = cpu->r[3] + 0x00000088u;
|
|
/* 02987B64 */ cpu->r[0] = rbrew_read16(cpu->mem, _t3);
|
|
/* 02987B68 */ cpu->r[11] = 0x00000000u;
|
|
/* 02987B6C */ _t4 = cpu->r[4] + 0x0000001Cu;
|
|
/* 02987B6C */ rbrew_write32(cpu->mem, _t4, cpu->r[11]);
|
|
/* 02987B70 */ _t5 = cpu->r[4] + 0x00000004u;
|
|
/* 02987B70 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02987B74 */ _t6 = cpu->r[4] + 0x00000018u;
|
|
/* 02987B74 */ rbrew_write32(cpu->mem, _t6, cpu->r[11]);
|
|
/* 02987B78 */ return;
|
|
L_02987B7C: ; // 0x2987b7c
|
|
/* 02987B7C */ _t7 = cpu->r[3] + 0x0000008Au;
|
|
/* 02987B7C */ cpu->r[11] = rbrew_read16(cpu->mem, _t7);
|
|
/* 02987B80 */ _t8 = cpu->r[4] + 0x00000000u;
|
|
/* 02987B80 */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 02987B84 */ cpu->r[11] = 0x00000000u;
|
|
/* 02987B88 */ _t9 = cpu->r[4] + 0x0000001Cu;
|
|
/* 02987B88 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 02987B8C */ _t10 = cpu->r[4] + 0x00000018u;
|
|
/* 02987B8C */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 02987B90 */ return;
|
|
}
|
|
|
|
// fn_02987B94 @ 0x2987b94
|
|
void Gambit_fn_02987B94(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02987B94: ; // 0x2987b94
|
|
/* 02987B94 */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 02987B94 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02987B94 */ cpu->r[1] = _t0;
|
|
/* 02987B98 */ /* nop */
|
|
/* 02987B9C */ cpu->r[0] = cpu->lr;
|
|
/* 02987BA0 */ _t1 = cpu->r[1] + 0x00000074u;
|
|
/* 02987BA0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02987BA4 */ cpu->r[29] = cpu->r[7];
|
|
/* 02987BA8 */ cpu->r[28] = cpu->r[5];
|
|
/* 02987BAC */ _t2 = cpu->r[28] + 0x00000004u;
|
|
/* 02987BAC */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02987BB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02987BB4 */ cpu->r[27] = cpu->r[3];
|
|
/* 02987BB8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987BB8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02987BB8 */ if (_t4) goto L_02987DA8; else goto L_02987BBC;
|
|
L_02987BBC: ; // 0x2987bbc
|
|
/* 02987BBC */ _t5 = cpu->r[27] + 0x00000030u;
|
|
/* 02987BBC */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02987BC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[7]);
|
|
/* 02987BC4 */ _t6 = cpu->r[27] + 0x00000034u;
|
|
/* 02987BC4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02987BC8 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987BC8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02987BC8 */ if (_t8) goto L_02987BCC; else goto L_02987BD4;
|
|
L_02987BCC: ; // 0x2987bcc
|
|
/* 02987BCC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 02987BD0 */ cpu->r[31] = cpu->r[31] + cpu->r[0];
|
|
L_02987BD4: ; // 0x2987bd4
|
|
/* 02987BD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[12]);
|
|
/* 02987BD8 */ _t9 = cpu->r[28] + 0x00000008u;
|
|
/* 02987BD8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02987BDC */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987BDC */ _t11 = _t10 & 0x00000001u;
|
|
/* 02987BDC */ if (_t11) goto L_02987BE0; else goto L_02987BE8;
|
|
L_02987BE0: ; // 0x2987be0
|
|
/* 02987BE0 */ cpu->r[11] = rbrew_rlwinm(cpu->r[29], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02987BE4 */ cpu->r[10] = cpu->r[10] + cpu->r[11];
|
|
L_02987BE8: ; // 0x2987be8
|
|
/* 02987BE8 */ _t12 = cpu->r[10] + 0x00000000u;
|
|
/* 02987BE8 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t12);
|
|
/* 02987BEC */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 02987BEC */ cpu->r[5] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02987BF0 */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02987BF0 */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[0]);
|
|
/* 02987BF4 */ _t15 = cpu->r[27] + 0x00000084u;
|
|
/* 02987BF4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02987BF8 */ cpu->r[30] = cpu->r[5] + cpu->r[7];
|
|
/* 02987BF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02987BFC */ cpu->r[26] = 0x00000000u;
|
|
/* 02987C00 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987C00 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02987C00 */ if (_t17) goto L_02987C78; else goto L_02987C04;
|
|
L_02987C04: ; // 0x2987c04
|
|
/* 02987C04 */ cpu->r[3] = cpu->r[30];
|
|
/* 02987C08 */ Gambit_fn_02C4F040(cpu);
|
|
/* 02987C0C */ cpu->r[9] = 0x101B0000u;
|
|
/* 02987C10 */ _t18 = cpu->r[30] + 0x00000044u;
|
|
/* 02987C10 */ rbrew_write32(cpu->mem, _t18, cpu->r[26]);
|
|
/* 02987C14 */ cpu->r[9] = cpu->r[9] + 0xFFFFF008u;
|
|
/* 02987C18 */ _t19 = cpu->r[30] + 0x00000034u;
|
|
/* 02987C18 */ rbrew_write32(cpu->mem, _t19, cpu->r[9]);
|
|
/* 02987C1C */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 02987C1C */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 02987C20 */ _t21 = cpu->r[28] + 0x00000000u;
|
|
/* 02987C20 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02987C24 */ cpu->r[12] = 0x00000001u;
|
|
/* 02987C28 */ _t22 = cpu->r[8] + 0x00000000u;
|
|
/* 02987C28 */ cpu->r[25] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02987C2C */ cpu->r[6] = 0x00000000u;
|
|
/* 02987C30 */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987C30 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
/* 02987C34 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 02987C38 */ _t24 = cpu->r[1] + 0x0000002Du;
|
|
/* 02987C38 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[6]);
|
|
/* 02987C3C */ _t25 = cpu->r[1] + 0x00000020u;
|
|
/* 02987C3C */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
/* 02987C40 */ _t26 = cpu->r[1] + 0x00000024u;
|
|
/* 02987C40 */ rbrew_write32(cpu->mem, _t26, cpu->r[11]);
|
|
/* 02987C44 */ _t27 = cpu->r[1] + 0x00000018u;
|
|
/* 02987C44 */ rbrew_write32(cpu->mem, _t27, cpu->r[11]);
|
|
/* 02987C48 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987C48 */ rbrew_write32(cpu->mem, _t28, cpu->r[11]);
|
|
/* 02987C4C */ _t29 = cpu->r[1] + 0x00000028u;
|
|
/* 02987C4C */ rbrew_write32(cpu->mem, _t29, cpu->r[11]);
|
|
/* 02987C50 */ _t30 = cpu->r[1] + 0x00000030u;
|
|
/* 02987C50 */ rbrew_write32(cpu->mem, _t30, cpu->r[26]);
|
|
/* 02987C54 */ _t31 = cpu->r[1] + 0x00000034u;
|
|
/* 02987C54 */ rbrew_write32(cpu->mem, _t31, cpu->r[26]);
|
|
/* 02987C58 */ _t32 = cpu->r[25] + 0x0000000Cu;
|
|
/* 02987C58 */ cpu->r[0] = rbrew_read16(cpu->mem, _t32);
|
|
/* 02987C5C */ cpu->r[9] = cpu->r[1] + 0x00000028u;
|
|
/* 02987C60 */ cpu->r[7] = cpu->r[1] + 0x00000024u;
|
|
/* 02987C64 */ cpu->r[5] = cpu->r[1] + 0x00000020u;
|
|
/* 02987C68 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 02987C68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987C6C */ _t33 = cpu->r[25] + 0x00000014u;
|
|
/* 02987C6C */ cpu->r[0] = rbrew_read16(cpu->mem, _t33);
|
|
/* 02987C70 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987C70 */ _t35 = _t34 & 0x00000001u;
|
|
/* 02987C70 */ if (_t35) goto L_02987CD0; else goto L_02987C74;
|
|
L_02987C74: ; // 0x2987c74
|
|
/* 02987C74 */ goto L_02987CF8;
|
|
L_02987C78: ; // 0x2987c78
|
|
/* 02987C78 */ cpu->r[30] = 0x00000000u;
|
|
/* 02987C7C */ _t36 = cpu->r[31] + 0x00000008u;
|
|
/* 02987C7C */ rbrew_write32(cpu->mem, _t36, cpu->r[30]);
|
|
/* 02987C80 */ _t37 = cpu->r[28] + 0x00000000u;
|
|
/* 02987C80 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02987C84 */ _t38 = cpu->r[8] + 0x00000000u;
|
|
/* 02987C84 */ cpu->r[25] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02987C88 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 02987C8C */ _t39 = cpu->r[1] + 0x00000034u;
|
|
/* 02987C8C */ rbrew_write32(cpu->mem, _t39, cpu->r[26]);
|
|
/* 02987C90 */ cpu->r[12] = 0x00000001u;
|
|
/* 02987C94 */ _t40 = cpu->r[1] + 0x00000018u;
|
|
/* 02987C94 */ rbrew_write32(cpu->mem, _t40, cpu->r[11]);
|
|
/* 02987C98 */ _t41 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987C98 */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[12]);
|
|
/* 02987C9C */ _t42 = cpu->r[1] + 0x00000024u;
|
|
/* 02987C9C */ rbrew_write32(cpu->mem, _t42, cpu->r[11]);
|
|
/* 02987CA0 */ _t43 = cpu->r[1] + 0x00000030u;
|
|
/* 02987CA0 */ rbrew_write32(cpu->mem, _t43, cpu->r[26]);
|
|
/* 02987CA4 */ _t44 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987CA4 */ rbrew_write32(cpu->mem, _t44, cpu->r[11]);
|
|
/* 02987CA8 */ _t45 = cpu->r[1] + 0x0000002Du;
|
|
/* 02987CA8 */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[30]);
|
|
/* 02987CAC */ _t46 = cpu->r[1] + 0x00000020u;
|
|
/* 02987CAC */ rbrew_write32(cpu->mem, _t46, cpu->r[11]);
|
|
/* 02987CB0 */ _t47 = cpu->r[1] + 0x00000028u;
|
|
/* 02987CB0 */ rbrew_write32(cpu->mem, _t47, cpu->r[11]);
|
|
/* 02987CB4 */ _t48 = cpu->r[25] + 0x0000000Cu;
|
|
/* 02987CB4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t48);
|
|
/* 02987CB8 */ cpu->r[5] = cpu->r[1] + 0x00000020u;
|
|
/* 02987CBC */ cpu->r[7] = cpu->r[1] + 0x00000024u;
|
|
/* 02987CC0 */ cpu->r[9] = cpu->r[1] + 0x00000028u;
|
|
/* 02987CC4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 02987CC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987CC8 */ _t49 = cpu->r[25] + 0x00000014u;
|
|
/* 02987CC8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t49);
|
|
/* 02987CCC */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987CCC */ _t51 = _t50 & 0x00000001u;
|
|
/* 02987CCC */ if (_t51) goto L_02987CD0; else goto L_02987CF8;
|
|
L_02987CD0: ; // 0x2987cd0
|
|
/* 02987CD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987CD4 */ _t52 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02987CD4 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
/* 02987CD8 */ cpu->r[8] = cpu->r[5];
|
|
/* 02987CDC */ _t53 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987CDC */ _t54 = _t53 & 0x00000001u;
|
|
/* 02987CDC */ if (_t54) goto L_02987CE4; else goto L_02987CE0;
|
|
L_02987CE0: ; // 0x2987ce0
|
|
/* 02987CE0 */ cpu->r[8] = cpu->r[1] + 0x0000000Cu;
|
|
L_02987CE4: ; // 0x2987ce4
|
|
/* 02987CE4 */ _t55 = cpu->r[8] + 0x00000000u;
|
|
/* 02987CE4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02987CE8 */ _t56 = cpu->r[5] + 0x00000000u;
|
|
/* 02987CE8 */ rbrew_write32(cpu->mem, _t56, cpu->r[6]);
|
|
/* 02987CEC */ _t57 = cpu->r[25] + 0x00000016u;
|
|
/* 02987CEC */ cpu->r[0] = rbrew_read16(cpu->mem, _t57);
|
|
/* 02987CF0 */ _t58 = cpu->r[1] + 0x00000008u;
|
|
/* 02987CF0 */ rbrew_write32(cpu->mem, _t58, cpu->r[0]);
|
|
/* 02987CF4 */ goto L_02987D1C;
|
|
L_02987CF8: ; // 0x2987cf8
|
|
/* 02987CF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987CFC */ _t59 = cpu->r[1] + 0x00000010u;
|
|
/* 02987CFC */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
/* 02987D00 */ cpu->r[10] = cpu->r[7];
|
|
/* 02987D04 */ _t60 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987D04 */ _t61 = _t60 & 0x00000001u;
|
|
/* 02987D04 */ if (_t61) goto L_02987D0C; else goto L_02987D08;
|
|
L_02987D08: ; // 0x2987d08
|
|
/* 02987D08 */ cpu->r[10] = cpu->r[1] + 0x00000010u;
|
|
L_02987D0C: ; // 0x2987d0c
|
|
/* 02987D0C */ _t62 = cpu->r[10] + 0x00000000u;
|
|
/* 02987D0C */ cpu->r[6] = rbrew_read32(cpu->mem, _t62);
|
|
/* 02987D10 */ _t63 = cpu->r[7] + 0x00000000u;
|
|
/* 02987D10 */ rbrew_write32(cpu->mem, _t63, cpu->r[6]);
|
|
/* 02987D14 */ _t64 = cpu->r[25] + 0x00000016u;
|
|
/* 02987D14 */ cpu->r[0] = rbrew_read16(cpu->mem, _t64);
|
|
/* 02987D18 */ _t65 = cpu->r[1] + 0x00000008u;
|
|
/* 02987D18 */ rbrew_write32(cpu->mem, _t65, cpu->r[0]);
|
|
L_02987D1C: ; // 0x2987d1c
|
|
/* 02987D1C */ _t66 = cpu->r[1] + 0x00000008u;
|
|
/* 02987D1C */ cpu->r[10] = rbrew_read32(cpu->mem, _t66);
|
|
/* 02987D20 */ _t67 = cpu->r[9] + 0x00000000u;
|
|
/* 02987D20 */ rbrew_write32(cpu->mem, _t67, cpu->r[10]);
|
|
/* 02987D24 */ _t68 = cpu->r[25] + 0x0000000Cu;
|
|
/* 02987D24 */ cpu->r[12] = rbrew_read16(cpu->mem, _t68);
|
|
/* 02987D28 */ _t69 = cpu->r[1] + 0x00000030u;
|
|
/* 02987D28 */ rbrew_write32(cpu->mem, _t69, cpu->r[26]);
|
|
/* 02987D2C */ cpu->r[11] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02987D30 */ _t70 = cpu->r[1] + 0x00000034u;
|
|
/* 02987D30 */ rbrew_write32(cpu->mem, _t70, cpu->r[26]);
|
|
/* 02987D34 */ cpu->r[11] = cpu->r[11] ^ 0x00000001u;
|
|
/* 02987D38 */ cpu->r[3] = cpu->r[27];
|
|
/* 02987D3C */ _t71 = cpu->r[1] + 0x0000002Du;
|
|
/* 02987D3C */ rbrew_write8(cpu->mem, _t71, (uint8_t)cpu->r[11]);
|
|
/* 02987D40 */ _t72 = cpu->r[31] + 0x00000000u;
|
|
/* 02987D40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 02987D44 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 02987D48 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 02987D4C */ _t73 = cpu->r[1] + 0x00000014u;
|
|
/* 02987D4C */ rbrew_write32(cpu->mem, _t73, cpu->r[0]);
|
|
/* 02987D50 */ Gambit_fn_02987B54(cpu);
|
|
/* 02987D54 */ _t74 = cpu->r[31] + 0x00000004u;
|
|
/* 02987D54 */ cpu->r[5] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02987D58 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 02987D5C */ _t75 = cpu->r[27] + 0x00000084u;
|
|
/* 02987D5C */ cpu->r[6] = rbrew_read32(cpu->mem, _t75);
|
|
/* 02987D60 */ cpu->r[3] = cpu->r[30];
|
|
/* 02987D64 */ Gambit_fn_02C5E89C(cpu);
|
|
/* 02987D68 */ cpu->r[3] = cpu->r[30];
|
|
/* 02987D6C */ cpu->r[4] = cpu->r[25];
|
|
/* 02987D70 */ Gambit_fn_02C5EF58(cpu);
|
|
/* 02987D74 */ _t76 = cpu->r[31] + 0x0000000Eu;
|
|
/* 02987D74 */ cpu->r[6] = rbrew_read16(cpu->mem, _t76);
|
|
/* 02987D78 */ cpu->r[6] = cpu->r[6] | 0x00000001u;
|
|
/* 02987D7C */ _t77 = cpu->r[31] + 0x0000000Eu;
|
|
/* 02987D7C */ rbrew_write16(cpu->mem, _t77, (uint16_t)cpu->r[6]);
|
|
/* 02987D80 */ _t78 = cpu->r[28] + 0x00000004u;
|
|
/* 02987D80 */ cpu->r[10] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02987D84 */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 02987D88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[8]);
|
|
/* 02987D8C */ _t79 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987D8C */ _t80 = _t79 & 0x00000001u;
|
|
/* 02987D8C */ if (_t80) goto L_02987D90; else goto L_02987DA8;
|
|
L_02987D90: ; // 0x2987d90
|
|
/* 02987D90 */ cpu->r[3] = cpu->r[29] + 0x00000001u;
|
|
/* 02987D94 */ /* nop */
|
|
/* 02987D98 */ _t81 = cpu->r[1] + 0x00000074u;
|
|
/* 02987D98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 02987D9C */ cpu->lr = cpu->r[0];
|
|
/* 02987DA0 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 02987DA4 */ return;
|
|
L_02987DA8: ; // 0x2987da8
|
|
/* 02987DA8 */ /* nop */
|
|
/* 02987DAC */ _t82 = cpu->r[1] + 0x00000074u;
|
|
/* 02987DAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02987DB0 */ cpu->lr = cpu->r[0];
|
|
/* 02987DB4 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 02987DB8 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 02987DBC */ return;
|
|
}
|
|
|
|
// fn_02987DC0 @ 0x2987dc0
|
|
void Gambit_fn_02987DC0(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02987DC0: ; // 0x2987dc0
|
|
/* 02987DC0 */ _t0 = cpu->r[1] + 0xFFFFFF90u;
|
|
/* 02987DC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02987DC0 */ cpu->r[1] = _t0;
|
|
/* 02987DC4 */ /* nop */
|
|
/* 02987DC8 */ cpu->r[0] = cpu->lr;
|
|
/* 02987DCC */ _t1 = cpu->r[1] + 0x00000074u;
|
|
/* 02987DCC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02987DD0 */ cpu->r[29] = cpu->r[7];
|
|
/* 02987DD4 */ cpu->r[28] = cpu->r[5];
|
|
/* 02987DD8 */ _t2 = cpu->r[28] + 0x00000004u;
|
|
/* 02987DD8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02987DDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02987DE0 */ cpu->r[27] = cpu->r[3];
|
|
/* 02987DE4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987DE4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02987DE4 */ if (_t4) goto L_02987FD4; else goto L_02987DE8;
|
|
L_02987DE8: ; // 0x2987de8
|
|
/* 02987DE8 */ _t5 = cpu->r[27] + 0x00000030u;
|
|
/* 02987DE8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02987DEC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[7]);
|
|
/* 02987DF0 */ _t6 = cpu->r[27] + 0x00000034u;
|
|
/* 02987DF0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02987DF4 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987DF4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02987DF4 */ if (_t8) goto L_02987DF8; else goto L_02987E00;
|
|
L_02987DF8: ; // 0x2987df8
|
|
/* 02987DF8 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[6] * (int32_t)0x0000001Cu);
|
|
/* 02987DFC */ cpu->r[31] = cpu->r[31] + cpu->r[0];
|
|
L_02987E00: ; // 0x2987e00
|
|
/* 02987E00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[12]);
|
|
/* 02987E04 */ _t9 = cpu->r[28] + 0x00000008u;
|
|
/* 02987E04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02987E08 */ _t10 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987E08 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02987E08 */ if (_t11) goto L_02987E0C; else goto L_02987E14;
|
|
L_02987E0C: ; // 0x2987e0c
|
|
/* 02987E0C */ cpu->r[11] = rbrew_rlwinm(cpu->r[29], 0x00000001u, 0x00000000u, 0x0000001Eu);
|
|
/* 02987E10 */ cpu->r[10] = cpu->r[10] + cpu->r[11];
|
|
L_02987E14: ; // 0x2987e14
|
|
/* 02987E14 */ _t12 = cpu->r[10] + 0x00000000u;
|
|
/* 02987E14 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t12);
|
|
/* 02987E18 */ _t13 = cpu->r[31] + 0x00000004u;
|
|
/* 02987E18 */ cpu->r[5] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02987E1C */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02987E1C */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[0]);
|
|
/* 02987E20 */ _t15 = cpu->r[27] + 0x00000084u;
|
|
/* 02987E20 */ cpu->r[7] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02987E24 */ cpu->r[30] = cpu->r[5] + cpu->r[7];
|
|
/* 02987E24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02987E28 */ cpu->r[26] = 0x00000000u;
|
|
/* 02987E2C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987E2C */ _t17 = _t16 & 0x00000001u;
|
|
/* 02987E2C */ if (_t17) goto L_02987EA4; else goto L_02987E30;
|
|
L_02987E30: ; // 0x2987e30
|
|
/* 02987E30 */ cpu->r[3] = cpu->r[30];
|
|
/* 02987E34 */ Gambit_fn_02C4F040(cpu);
|
|
/* 02987E38 */ cpu->r[9] = 0x101B0000u;
|
|
/* 02987E3C */ _t18 = cpu->r[30] + 0x00000044u;
|
|
/* 02987E3C */ rbrew_write32(cpu->mem, _t18, cpu->r[26]);
|
|
/* 02987E40 */ cpu->r[9] = cpu->r[9] + 0xFFFFF008u;
|
|
/* 02987E44 */ _t19 = cpu->r[30] + 0x00000034u;
|
|
/* 02987E44 */ rbrew_write32(cpu->mem, _t19, cpu->r[9]);
|
|
/* 02987E48 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 02987E48 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 02987E4C */ _t21 = cpu->r[28] + 0x00000000u;
|
|
/* 02987E4C */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02987E50 */ cpu->r[12] = 0x00000001u;
|
|
/* 02987E54 */ _t22 = cpu->r[8] + 0x00000000u;
|
|
/* 02987E54 */ cpu->r[25] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02987E58 */ cpu->r[6] = 0x00000000u;
|
|
/* 02987E5C */ _t23 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987E5C */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
/* 02987E60 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 02987E64 */ _t24 = cpu->r[1] + 0x0000002Du;
|
|
/* 02987E64 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[6]);
|
|
/* 02987E68 */ _t25 = cpu->r[1] + 0x00000020u;
|
|
/* 02987E68 */ rbrew_write32(cpu->mem, _t25, cpu->r[11]);
|
|
/* 02987E6C */ _t26 = cpu->r[1] + 0x00000024u;
|
|
/* 02987E6C */ rbrew_write32(cpu->mem, _t26, cpu->r[11]);
|
|
/* 02987E70 */ _t27 = cpu->r[1] + 0x00000018u;
|
|
/* 02987E70 */ rbrew_write32(cpu->mem, _t27, cpu->r[11]);
|
|
/* 02987E74 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987E74 */ rbrew_write32(cpu->mem, _t28, cpu->r[11]);
|
|
/* 02987E78 */ _t29 = cpu->r[1] + 0x00000028u;
|
|
/* 02987E78 */ rbrew_write32(cpu->mem, _t29, cpu->r[11]);
|
|
/* 02987E7C */ _t30 = cpu->r[1] + 0x00000030u;
|
|
/* 02987E7C */ rbrew_write32(cpu->mem, _t30, cpu->r[26]);
|
|
/* 02987E80 */ _t31 = cpu->r[1] + 0x00000034u;
|
|
/* 02987E80 */ rbrew_write32(cpu->mem, _t31, cpu->r[26]);
|
|
/* 02987E84 */ _t32 = cpu->r[25] + 0x0000000Cu;
|
|
/* 02987E84 */ cpu->r[0] = rbrew_read16(cpu->mem, _t32);
|
|
/* 02987E88 */ cpu->r[9] = cpu->r[1] + 0x00000028u;
|
|
/* 02987E8C */ cpu->r[7] = cpu->r[1] + 0x00000024u;
|
|
/* 02987E90 */ cpu->r[5] = cpu->r[1] + 0x00000020u;
|
|
/* 02987E94 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 02987E94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987E98 */ _t33 = cpu->r[25] + 0x00000014u;
|
|
/* 02987E98 */ cpu->r[0] = rbrew_read16(cpu->mem, _t33);
|
|
/* 02987E9C */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987E9C */ _t35 = _t34 & 0x00000001u;
|
|
/* 02987E9C */ if (_t35) goto L_02987EFC; else goto L_02987EA0;
|
|
L_02987EA0: ; // 0x2987ea0
|
|
/* 02987EA0 */ goto L_02987F24;
|
|
L_02987EA4: ; // 0x2987ea4
|
|
/* 02987EA4 */ cpu->r[30] = 0x00000000u;
|
|
/* 02987EA8 */ _t36 = cpu->r[31] + 0x00000008u;
|
|
/* 02987EA8 */ rbrew_write32(cpu->mem, _t36, cpu->r[30]);
|
|
/* 02987EAC */ _t37 = cpu->r[28] + 0x00000000u;
|
|
/* 02987EAC */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02987EB0 */ _t38 = cpu->r[8] + 0x00000000u;
|
|
/* 02987EB0 */ cpu->r[25] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02987EB4 */ cpu->r[11] = 0xFFFFFFFFu;
|
|
/* 02987EB8 */ _t39 = cpu->r[1] + 0x00000034u;
|
|
/* 02987EB8 */ rbrew_write32(cpu->mem, _t39, cpu->r[26]);
|
|
/* 02987EBC */ cpu->r[12] = 0x00000001u;
|
|
/* 02987EC0 */ _t40 = cpu->r[1] + 0x00000018u;
|
|
/* 02987EC0 */ rbrew_write32(cpu->mem, _t40, cpu->r[11]);
|
|
/* 02987EC4 */ _t41 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987EC4 */ rbrew_write8(cpu->mem, _t41, (uint8_t)cpu->r[12]);
|
|
/* 02987EC8 */ _t42 = cpu->r[1] + 0x00000024u;
|
|
/* 02987EC8 */ rbrew_write32(cpu->mem, _t42, cpu->r[11]);
|
|
/* 02987ECC */ _t43 = cpu->r[1] + 0x00000030u;
|
|
/* 02987ECC */ rbrew_write32(cpu->mem, _t43, cpu->r[26]);
|
|
/* 02987ED0 */ _t44 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02987ED0 */ rbrew_write32(cpu->mem, _t44, cpu->r[11]);
|
|
/* 02987ED4 */ _t45 = cpu->r[1] + 0x0000002Du;
|
|
/* 02987ED4 */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[30]);
|
|
/* 02987ED8 */ _t46 = cpu->r[1] + 0x00000020u;
|
|
/* 02987ED8 */ rbrew_write32(cpu->mem, _t46, cpu->r[11]);
|
|
/* 02987EDC */ _t47 = cpu->r[1] + 0x00000028u;
|
|
/* 02987EDC */ rbrew_write32(cpu->mem, _t47, cpu->r[11]);
|
|
/* 02987EE0 */ _t48 = cpu->r[25] + 0x0000000Cu;
|
|
/* 02987EE0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t48);
|
|
/* 02987EE4 */ cpu->r[5] = cpu->r[1] + 0x00000020u;
|
|
/* 02987EE8 */ cpu->r[7] = cpu->r[1] + 0x00000024u;
|
|
/* 02987EEC */ cpu->r[9] = cpu->r[1] + 0x00000028u;
|
|
/* 02987EF0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 02987EF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987EF4 */ _t49 = cpu->r[25] + 0x00000014u;
|
|
/* 02987EF4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t49);
|
|
/* 02987EF8 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02987EF8 */ _t51 = _t50 & 0x00000001u;
|
|
/* 02987EF8 */ if (_t51) goto L_02987EFC; else goto L_02987F24;
|
|
L_02987EFC: ; // 0x2987efc
|
|
/* 02987EFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987F00 */ _t52 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02987F00 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
/* 02987F04 */ cpu->r[8] = cpu->r[5];
|
|
/* 02987F08 */ _t53 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987F08 */ _t54 = _t53 & 0x00000001u;
|
|
/* 02987F08 */ if (_t54) goto L_02987F10; else goto L_02987F0C;
|
|
L_02987F0C: ; // 0x2987f0c
|
|
/* 02987F0C */ cpu->r[8] = cpu->r[1] + 0x0000000Cu;
|
|
L_02987F10: ; // 0x2987f10
|
|
/* 02987F10 */ _t55 = cpu->r[8] + 0x00000000u;
|
|
/* 02987F10 */ cpu->r[6] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02987F14 */ _t56 = cpu->r[5] + 0x00000000u;
|
|
/* 02987F14 */ rbrew_write32(cpu->mem, _t56, cpu->r[6]);
|
|
/* 02987F18 */ _t57 = cpu->r[25] + 0x00000016u;
|
|
/* 02987F18 */ cpu->r[0] = rbrew_read16(cpu->mem, _t57);
|
|
/* 02987F1C */ _t58 = cpu->r[1] + 0x00000008u;
|
|
/* 02987F1C */ rbrew_write32(cpu->mem, _t58, cpu->r[0]);
|
|
/* 02987F20 */ goto L_02987F48;
|
|
L_02987F24: ; // 0x2987f24
|
|
/* 02987F24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02987F28 */ _t59 = cpu->r[1] + 0x00000010u;
|
|
/* 02987F28 */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
/* 02987F2C */ cpu->r[10] = cpu->r[7];
|
|
/* 02987F30 */ _t60 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987F30 */ _t61 = _t60 & 0x00000001u;
|
|
/* 02987F30 */ if (_t61) goto L_02987F38; else goto L_02987F34;
|
|
L_02987F34: ; // 0x2987f34
|
|
/* 02987F34 */ cpu->r[10] = cpu->r[1] + 0x00000010u;
|
|
L_02987F38: ; // 0x2987f38
|
|
/* 02987F38 */ _t62 = cpu->r[10] + 0x00000000u;
|
|
/* 02987F38 */ cpu->r[6] = rbrew_read32(cpu->mem, _t62);
|
|
/* 02987F3C */ _t63 = cpu->r[7] + 0x00000000u;
|
|
/* 02987F3C */ rbrew_write32(cpu->mem, _t63, cpu->r[6]);
|
|
/* 02987F40 */ _t64 = cpu->r[25] + 0x00000016u;
|
|
/* 02987F40 */ cpu->r[0] = rbrew_read16(cpu->mem, _t64);
|
|
/* 02987F44 */ _t65 = cpu->r[1] + 0x00000008u;
|
|
/* 02987F44 */ rbrew_write32(cpu->mem, _t65, cpu->r[0]);
|
|
L_02987F48: ; // 0x2987f48
|
|
/* 02987F48 */ _t66 = cpu->r[1] + 0x00000008u;
|
|
/* 02987F48 */ cpu->r[10] = rbrew_read32(cpu->mem, _t66);
|
|
/* 02987F4C */ _t67 = cpu->r[9] + 0x00000000u;
|
|
/* 02987F4C */ rbrew_write32(cpu->mem, _t67, cpu->r[10]);
|
|
/* 02987F50 */ _t68 = cpu->r[25] + 0x0000000Cu;
|
|
/* 02987F50 */ cpu->r[12] = rbrew_read16(cpu->mem, _t68);
|
|
/* 02987F54 */ _t69 = cpu->r[1] + 0x00000030u;
|
|
/* 02987F54 */ rbrew_write32(cpu->mem, _t69, cpu->r[26]);
|
|
/* 02987F58 */ cpu->r[11] = rbrew_rlwinm(cpu->r[12], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02987F5C */ _t70 = cpu->r[1] + 0x00000034u;
|
|
/* 02987F5C */ rbrew_write32(cpu->mem, _t70, cpu->r[26]);
|
|
/* 02987F60 */ cpu->r[11] = cpu->r[11] ^ 0x00000001u;
|
|
/* 02987F64 */ cpu->r[3] = cpu->r[27];
|
|
/* 02987F68 */ _t71 = cpu->r[1] + 0x0000002Du;
|
|
/* 02987F68 */ rbrew_write8(cpu->mem, _t71, (uint8_t)cpu->r[11]);
|
|
/* 02987F6C */ _t72 = cpu->r[31] + 0x00000000u;
|
|
/* 02987F6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 02987F70 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 02987F74 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 02987F78 */ _t73 = cpu->r[1] + 0x00000014u;
|
|
/* 02987F78 */ rbrew_write32(cpu->mem, _t73, cpu->r[0]);
|
|
/* 02987F7C */ Gambit_fn_02987B54(cpu);
|
|
/* 02987F80 */ _t74 = cpu->r[31] + 0x00000004u;
|
|
/* 02987F80 */ cpu->r[5] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02987F84 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 02987F88 */ _t75 = cpu->r[27] + 0x00000084u;
|
|
/* 02987F88 */ cpu->r[6] = rbrew_read32(cpu->mem, _t75);
|
|
/* 02987F8C */ cpu->r[3] = cpu->r[30];
|
|
/* 02987F90 */ Gambit_fn_02C5E89C(cpu);
|
|
/* 02987F94 */ cpu->r[3] = cpu->r[30];
|
|
/* 02987F98 */ cpu->r[4] = cpu->r[25];
|
|
/* 02987F9C */ Gambit_fn_02C5EF58(cpu);
|
|
/* 02987FA0 */ _t76 = cpu->r[31] + 0x0000000Eu;
|
|
/* 02987FA0 */ cpu->r[6] = rbrew_read16(cpu->mem, _t76);
|
|
/* 02987FA4 */ cpu->r[6] = cpu->r[6] | 0x00000001u;
|
|
/* 02987FA8 */ _t77 = cpu->r[31] + 0x0000000Eu;
|
|
/* 02987FA8 */ rbrew_write16(cpu->mem, _t77, (uint16_t)cpu->r[6]);
|
|
/* 02987FAC */ _t78 = cpu->r[28] + 0x00000004u;
|
|
/* 02987FAC */ cpu->r[10] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02987FB0 */ cpu->r[8] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 02987FB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[8]);
|
|
/* 02987FB8 */ _t79 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02987FB8 */ _t80 = _t79 & 0x00000001u;
|
|
/* 02987FB8 */ if (_t80) goto L_02987FBC; else goto L_02987FD4;
|
|
L_02987FBC: ; // 0x2987fbc
|
|
/* 02987FBC */ cpu->r[3] = cpu->r[29] + 0x00000001u;
|
|
/* 02987FC0 */ /* nop */
|
|
/* 02987FC4 */ _t81 = cpu->r[1] + 0x00000074u;
|
|
/* 02987FC4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 02987FC8 */ cpu->lr = cpu->r[0];
|
|
/* 02987FCC */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 02987FD0 */ return;
|
|
L_02987FD4: ; // 0x2987fd4
|
|
/* 02987FD4 */ /* nop */
|
|
/* 02987FD8 */ _t82 = cpu->r[1] + 0x00000074u;
|
|
/* 02987FD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02987FDC */ cpu->lr = cpu->r[0];
|
|
/* 02987FE0 */ cpu->r[1] = cpu->r[1] + 0x00000070u;
|
|
/* 02987FE4 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 02987FE8 */ return;
|
|
}
|
|
|
|
// fn_02987FEC @ 0x2987fec
|
|
void Gambit_fn_02987FEC(CPUState* cpu) {
|
|
uint32_t _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_02987FEC: ; // 0x2987fec
|
|
/* 02987FEC */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02987FEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02987FEC */ cpu->r[1] = _t0;
|
|
/* 02987FF0 */ /* nop */
|
|
/* 02987FF4 */ cpu->r[0] = cpu->lr;
|
|
/* 02987FF8 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02987FF8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02987FFC */ _t2 = cpu->r[3] + 0x00000074u;
|
|
/* 02987FFC */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988000 */ cpu->r[27] = cpu->r[4];
|
|
/* 02988004 */ _t3 = cpu->r[3] + 0x0000007Cu;
|
|
/* 02988004 */ cpu->r[29] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988008 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298800C */ cpu->r[28] = cpu->r[5];
|
|
/* 02988010 */ cpu->r[30] = cpu->r[29] + cpu->r[8];
|
|
/* 02988014 */ cpu->r[31] = 0xFFFFFFFFu;
|
|
/* 02988018 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 0298801C */ cpu->r[26] = 0x00000000u;
|
|
/* 02988020 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988020 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02988020 */ if (_t5) goto L_02988094; else goto L_02988024;
|
|
L_02988024: ; // 0x2988024
|
|
/* 02988024 */ _t6 = cpu->r[27] + 0x00000004u;
|
|
/* 02988024 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988028 */ _t7 = cpu->r[11] + 0x00000014u;
|
|
/* 02988028 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298802C */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 0298802C */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02988030 */ cpu->ctr = cpu->r[12];
|
|
/* 02988034 */ _t9 = cpu->r[10] + 0x0000001Cu;
|
|
/* 02988034 */ cpu->r[25] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988038 */ cpu->r[3] = cpu->r[27];
|
|
/* 0298803C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988040 */ _t10 = cpu->r[25] + 0x0000002Cu;
|
|
/* 02988040 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02988044 */ cpu->r[12] = cpu->r[25] + 0x0000002Cu;
|
|
/* 02988048 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298804C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02988050 */ _t11 = cpu->r[27] + 0x00000000u;
|
|
/* 02988050 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02988054 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988054 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02988054 */ if (_t13) goto L_0298805C; else goto L_02988058;
|
|
L_02988058: ; // 0x2988058
|
|
/* 02988058 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
L_0298805C: ; // 0x298805c
|
|
/* 0298805C */ Gambit_fn_02C60644(cpu);
|
|
/* 02988060 */ cpu->r[6] = cpu->r[3];
|
|
/* 02988060 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02988064 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988064 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02988064 */ if (_t15) goto L_02988078; else goto L_02988068;
|
|
L_02988068: ; // 0x2988068
|
|
/* 02988068 */ cpu->r[5] = cpu->r[26] + cpu->r[6];
|
|
/* 0298806C */ _t16 = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 0298806C */ _t17 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 0298806C */ cpu->r[0] = _t17 | _t16;
|
|
/* 02988070 */ _t18 = rbrew_rlwinm(cpu->r[28], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02988070 */ _t19 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02988070 */ cpu->r[0] = _t19 | _t18;
|
|
/* 02988074 */ goto L_0298809C;
|
|
L_02988078: ; // 0x2988078
|
|
/* 02988078 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 02988078 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298807C */ _t21 = cpu->r[10] + 0x0000001Cu;
|
|
/* 0298807C */ cpu->r[25] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02988080 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 02988084 */ _t22 = cpu->r[25] + 0x00000056u;
|
|
/* 02988084 */ cpu->r[0] = rbrew_read16(cpu->mem, _t22);
|
|
/* 02988088 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 0298808C */ cpu->r[26] = cpu->r[26] + cpu->r[0];
|
|
/* 02988090 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988090 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02988090 */ if (_t24) goto L_02988094; else goto L_02988024;
|
|
L_02988094: ; // 0x2988094
|
|
/* 02988094 */ _t25 = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02988094 */ _t26 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02988094 */ cpu->r[0] = _t26 | _t25;
|
|
/* 02988098 */ _t27 = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02988098 */ _t28 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02988098 */ cpu->r[0] = _t28 | _t27;
|
|
L_0298809C: ; // 0x298809c
|
|
/* 0298809C */ /* nop */
|
|
/* 029880A0 */ cpu->r[3] = cpu->r[0];
|
|
/* 029880A4 */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029880A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 029880A8 */ cpu->lr = cpu->r[0];
|
|
/* 029880AC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 029880B0 */ return;
|
|
}
|
|
|
|
// fn_029880B4 @ 0x29880b4
|
|
void Gambit_fn_029880B4(CPUState* cpu) {
|
|
uint32_t _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_029880B4: ; // 0x29880b4
|
|
/* 029880B4 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 029880B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029880B4 */ cpu->r[1] = _t0;
|
|
/* 029880B8 */ /* nop */
|
|
/* 029880BC */ cpu->r[0] = cpu->lr;
|
|
/* 029880C0 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029880C0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029880C4 */ _t2 = cpu->r[3] + 0x00000074u;
|
|
/* 029880C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 029880C8 */ cpu->r[27] = cpu->r[4];
|
|
/* 029880CC */ _t3 = cpu->r[3] + 0x0000007Cu;
|
|
/* 029880CC */ cpu->r[29] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029880D0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029880D4 */ cpu->r[28] = cpu->r[5];
|
|
/* 029880D8 */ cpu->r[30] = cpu->r[29] + cpu->r[8];
|
|
/* 029880DC */ cpu->r[31] = 0xFFFFFFFFu;
|
|
/* 029880E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 029880E4 */ cpu->r[26] = 0x00000000u;
|
|
/* 029880E8 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029880E8 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029880E8 */ if (_t5) goto L_0298815C; else goto L_029880EC;
|
|
L_029880EC: ; // 0x29880ec
|
|
/* 029880EC */ _t6 = cpu->r[27] + 0x00000004u;
|
|
/* 029880EC */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029880F0 */ _t7 = cpu->r[11] + 0x00000014u;
|
|
/* 029880F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029880F4 */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 029880F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029880F8 */ cpu->ctr = cpu->r[12];
|
|
/* 029880FC */ _t9 = cpu->r[10] + 0x0000001Cu;
|
|
/* 029880FC */ cpu->r[25] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988100 */ cpu->r[3] = cpu->r[27];
|
|
/* 02988104 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988108 */ _t10 = cpu->r[25] + 0x00000030u;
|
|
/* 02988108 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298810C */ cpu->r[12] = cpu->r[25] + 0x00000030u;
|
|
/* 02988110 */ cpu->r[3] = 0x00000000u;
|
|
/* 02988114 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02988118 */ _t11 = cpu->r[27] + 0x00000000u;
|
|
/* 02988118 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298811C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298811C */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298811C */ if (_t13) goto L_02988124; else goto L_02988120;
|
|
L_02988120: ; // 0x2988120
|
|
/* 02988120 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
L_02988124: ; // 0x2988124
|
|
/* 02988124 */ Gambit_fn_02C60644(cpu);
|
|
/* 02988128 */ cpu->r[6] = cpu->r[3];
|
|
/* 02988128 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298812C */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298812C */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298812C */ if (_t15) goto L_02988140; else goto L_02988130;
|
|
L_02988130: ; // 0x2988130
|
|
/* 02988130 */ cpu->r[5] = cpu->r[26] + cpu->r[6];
|
|
/* 02988134 */ _t16 = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02988134 */ _t17 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02988134 */ cpu->r[0] = _t17 | _t16;
|
|
/* 02988138 */ _t18 = rbrew_rlwinm(cpu->r[28], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02988138 */ _t19 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02988138 */ cpu->r[0] = _t19 | _t18;
|
|
/* 0298813C */ goto L_02988164;
|
|
L_02988140: ; // 0x2988140
|
|
/* 02988140 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 02988140 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02988144 */ _t21 = cpu->r[10] + 0x0000001Cu;
|
|
/* 02988144 */ cpu->r[25] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02988148 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298814C */ _t22 = cpu->r[25] + 0x00000058u;
|
|
/* 0298814C */ cpu->r[0] = rbrew_read16(cpu->mem, _t22);
|
|
/* 02988150 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 02988154 */ cpu->r[26] = cpu->r[26] + cpu->r[0];
|
|
/* 02988158 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988158 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02988158 */ if (_t24) goto L_0298815C; else goto L_029880EC;
|
|
L_0298815C: ; // 0x298815c
|
|
/* 0298815C */ _t25 = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 0298815C */ _t26 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 0298815C */ cpu->r[0] = _t26 | _t25;
|
|
/* 02988160 */ _t27 = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02988160 */ _t28 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02988160 */ cpu->r[0] = _t28 | _t27;
|
|
L_02988164: ; // 0x2988164
|
|
/* 02988164 */ /* nop */
|
|
/* 02988168 */ cpu->r[3] = cpu->r[0];
|
|
/* 0298816C */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298816C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02988170 */ cpu->lr = cpu->r[0];
|
|
/* 02988174 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02988178 */ return;
|
|
}
|
|
|
|
// fn_0298817C @ 0x298817c
|
|
void Gambit_fn_0298817C(CPUState* cpu) {
|
|
uint32_t _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_0298817C: ; // 0x298817c
|
|
/* 0298817C */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 0298817C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298817C */ cpu->r[1] = _t0;
|
|
/* 02988180 */ /* nop */
|
|
/* 02988184 */ cpu->r[0] = cpu->lr;
|
|
/* 02988188 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02988188 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298818C */ _t2 = cpu->r[3] + 0x00000074u;
|
|
/* 0298818C */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988190 */ cpu->r[27] = cpu->r[4];
|
|
/* 02988194 */ _t3 = cpu->r[3] + 0x0000007Cu;
|
|
/* 02988194 */ cpu->r[29] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988198 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298819C */ cpu->r[28] = cpu->r[5];
|
|
/* 029881A0 */ cpu->r[30] = cpu->r[29] + cpu->r[8];
|
|
/* 029881A4 */ cpu->r[31] = 0xFFFFFFFFu;
|
|
/* 029881A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 029881AC */ cpu->r[26] = 0x00000000u;
|
|
/* 029881B0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029881B0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029881B0 */ if (_t5) goto L_02988224; else goto L_029881B4;
|
|
L_029881B4: ; // 0x29881b4
|
|
/* 029881B4 */ _t6 = cpu->r[27] + 0x00000004u;
|
|
/* 029881B4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029881B8 */ _t7 = cpu->r[11] + 0x00000014u;
|
|
/* 029881B8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029881BC */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 029881BC */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029881C0 */ cpu->ctr = cpu->r[12];
|
|
/* 029881C4 */ _t9 = cpu->r[10] + 0x0000001Cu;
|
|
/* 029881C4 */ cpu->r[25] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029881C8 */ cpu->r[3] = cpu->r[27];
|
|
/* 029881CC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029881D0 */ _t10 = cpu->r[25] + 0x00000034u;
|
|
/* 029881D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029881D4 */ cpu->r[12] = cpu->r[25] + 0x00000034u;
|
|
/* 029881D8 */ cpu->r[3] = 0x00000000u;
|
|
/* 029881DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029881E0 */ _t11 = cpu->r[27] + 0x00000000u;
|
|
/* 029881E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029881E4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029881E4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029881E4 */ if (_t13) goto L_029881EC; else goto L_029881E8;
|
|
L_029881E8: ; // 0x29881e8
|
|
/* 029881E8 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
L_029881EC: ; // 0x29881ec
|
|
/* 029881EC */ Gambit_fn_02C60644(cpu);
|
|
/* 029881F0 */ cpu->r[6] = cpu->r[3];
|
|
/* 029881F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 029881F4 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029881F4 */ _t15 = _t14 & 0x00000001u;
|
|
/* 029881F4 */ if (_t15) goto L_02988208; else goto L_029881F8;
|
|
L_029881F8: ; // 0x29881f8
|
|
/* 029881F8 */ cpu->r[5] = cpu->r[26] + cpu->r[6];
|
|
/* 029881FC */ _t16 = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 029881FC */ _t17 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 029881FC */ cpu->r[0] = _t17 | _t16;
|
|
/* 02988200 */ _t18 = rbrew_rlwinm(cpu->r[28], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02988200 */ _t19 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02988200 */ cpu->r[0] = _t19 | _t18;
|
|
/* 02988204 */ goto L_0298822C;
|
|
L_02988208: ; // 0x2988208
|
|
/* 02988208 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 02988208 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298820C */ _t21 = cpu->r[10] + 0x0000001Cu;
|
|
/* 0298820C */ cpu->r[25] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02988210 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 02988214 */ _t22 = cpu->r[25] + 0x0000005Au;
|
|
/* 02988214 */ cpu->r[0] = rbrew_read16(cpu->mem, _t22);
|
|
/* 02988218 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 0298821C */ cpu->r[26] = cpu->r[26] + cpu->r[0];
|
|
/* 02988220 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988220 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02988220 */ if (_t24) goto L_02988224; else goto L_029881B4;
|
|
L_02988224: ; // 0x2988224
|
|
/* 02988224 */ _t25 = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02988224 */ _t26 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02988224 */ cpu->r[0] = _t26 | _t25;
|
|
/* 02988228 */ _t27 = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02988228 */ _t28 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02988228 */ cpu->r[0] = _t28 | _t27;
|
|
L_0298822C: ; // 0x298822c
|
|
/* 0298822C */ /* nop */
|
|
/* 02988230 */ cpu->r[3] = cpu->r[0];
|
|
/* 02988234 */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02988234 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02988238 */ cpu->lr = cpu->r[0];
|
|
/* 0298823C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02988240 */ return;
|
|
}
|
|
|
|
// fn_02988244 @ 0x2988244
|
|
void Gambit_fn_02988244(CPUState* cpu) {
|
|
uint32_t _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_02988244: ; // 0x2988244
|
|
/* 02988244 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02988244 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02988244 */ cpu->r[1] = _t0;
|
|
/* 02988248 */ /* nop */
|
|
/* 0298824C */ cpu->r[0] = cpu->lr;
|
|
/* 02988250 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02988250 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02988254 */ _t2 = cpu->r[3] + 0x00000074u;
|
|
/* 02988254 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988258 */ cpu->r[27] = cpu->r[4];
|
|
/* 0298825C */ _t3 = cpu->r[3] + 0x0000007Cu;
|
|
/* 0298825C */ cpu->r[29] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988260 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02988264 */ cpu->r[28] = cpu->r[5];
|
|
/* 02988268 */ cpu->r[30] = cpu->r[29] + cpu->r[8];
|
|
/* 0298826C */ cpu->r[31] = 0xFFFFFFFFu;
|
|
/* 02988270 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 02988274 */ cpu->r[26] = 0x00000000u;
|
|
/* 02988278 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988278 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02988278 */ if (_t5) goto L_029882EC; else goto L_0298827C;
|
|
L_0298827C: ; // 0x298827c
|
|
/* 0298827C */ _t6 = cpu->r[27] + 0x00000004u;
|
|
/* 0298827C */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988280 */ _t7 = cpu->r[11] + 0x00000014u;
|
|
/* 02988280 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02988284 */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 02988284 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02988288 */ cpu->ctr = cpu->r[12];
|
|
/* 0298828C */ _t9 = cpu->r[10] + 0x0000001Cu;
|
|
/* 0298828C */ cpu->r[25] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988290 */ cpu->r[3] = cpu->r[27];
|
|
/* 02988294 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988298 */ _t10 = cpu->r[25] + 0x00000038u;
|
|
/* 02988298 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298829C */ cpu->r[12] = cpu->r[25] + 0x00000038u;
|
|
/* 029882A0 */ cpu->r[3] = 0x00000000u;
|
|
/* 029882A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029882A8 */ _t11 = cpu->r[27] + 0x00000000u;
|
|
/* 029882A8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029882AC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029882AC */ _t13 = _t12 & 0x00000001u;
|
|
/* 029882AC */ if (_t13) goto L_029882B4; else goto L_029882B0;
|
|
L_029882B0: ; // 0x29882b0
|
|
/* 029882B0 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
L_029882B4: ; // 0x29882b4
|
|
/* 029882B4 */ Gambit_fn_02C60644(cpu);
|
|
/* 029882B8 */ cpu->r[6] = cpu->r[3];
|
|
/* 029882B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 029882BC */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029882BC */ _t15 = _t14 & 0x00000001u;
|
|
/* 029882BC */ if (_t15) goto L_029882D0; else goto L_029882C0;
|
|
L_029882C0: ; // 0x29882c0
|
|
/* 029882C0 */ cpu->r[5] = cpu->r[26] + cpu->r[6];
|
|
/* 029882C4 */ _t16 = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 029882C4 */ _t17 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 029882C4 */ cpu->r[0] = _t17 | _t16;
|
|
/* 029882C8 */ _t18 = rbrew_rlwinm(cpu->r[28], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 029882C8 */ _t19 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 029882C8 */ cpu->r[0] = _t19 | _t18;
|
|
/* 029882CC */ goto L_029882F4;
|
|
L_029882D0: ; // 0x29882d0
|
|
/* 029882D0 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 029882D0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029882D4 */ _t21 = cpu->r[10] + 0x0000001Cu;
|
|
/* 029882D4 */ cpu->r[25] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029882D8 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 029882DC */ _t22 = cpu->r[25] + 0x0000005Cu;
|
|
/* 029882DC */ cpu->r[0] = rbrew_read16(cpu->mem, _t22);
|
|
/* 029882E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 029882E4 */ cpu->r[26] = cpu->r[26] + cpu->r[0];
|
|
/* 029882E8 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029882E8 */ _t24 = _t23 & 0x00000001u;
|
|
/* 029882E8 */ if (_t24) goto L_029882EC; else goto L_0298827C;
|
|
L_029882EC: ; // 0x29882ec
|
|
/* 029882EC */ _t25 = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 029882EC */ _t26 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 029882EC */ cpu->r[0] = _t26 | _t25;
|
|
/* 029882F0 */ _t27 = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 029882F0 */ _t28 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 029882F0 */ cpu->r[0] = _t28 | _t27;
|
|
L_029882F4: ; // 0x29882f4
|
|
/* 029882F4 */ /* nop */
|
|
/* 029882F8 */ cpu->r[3] = cpu->r[0];
|
|
/* 029882FC */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029882FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02988300 */ cpu->lr = cpu->r[0];
|
|
/* 02988304 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02988308 */ return;
|
|
}
|
|
|
|
// fn_0298830C @ 0x298830c
|
|
void Gambit_fn_0298830C(CPUState* cpu) {
|
|
uint32_t _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_0298830C: ; // 0x298830c
|
|
/* 0298830C */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 0298830C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298830C */ cpu->r[1] = _t0;
|
|
/* 02988310 */ /* nop */
|
|
/* 02988314 */ cpu->r[0] = cpu->lr;
|
|
/* 02988318 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02988318 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298831C */ _t2 = cpu->r[3] + 0x00000074u;
|
|
/* 0298831C */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988320 */ cpu->r[27] = cpu->r[4];
|
|
/* 02988324 */ _t3 = cpu->r[3] + 0x0000007Cu;
|
|
/* 02988324 */ cpu->r[29] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988328 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298832C */ cpu->r[28] = cpu->r[5];
|
|
/* 02988330 */ cpu->r[30] = cpu->r[29] + cpu->r[8];
|
|
/* 02988334 */ cpu->r[31] = 0xFFFFFFFFu;
|
|
/* 02988338 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 0298833C */ cpu->r[26] = 0x00000000u;
|
|
/* 02988340 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988340 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02988340 */ if (_t5) goto L_029883B4; else goto L_02988344;
|
|
L_02988344: ; // 0x2988344
|
|
/* 02988344 */ _t6 = cpu->r[27] + 0x00000004u;
|
|
/* 02988344 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988348 */ _t7 = cpu->r[11] + 0x00000014u;
|
|
/* 02988348 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298834C */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 0298834C */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02988350 */ cpu->ctr = cpu->r[12];
|
|
/* 02988354 */ _t9 = cpu->r[10] + 0x0000001Cu;
|
|
/* 02988354 */ cpu->r[25] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988358 */ cpu->r[3] = cpu->r[27];
|
|
/* 0298835C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988360 */ _t10 = cpu->r[25] + 0x0000003Cu;
|
|
/* 02988360 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02988364 */ cpu->r[12] = cpu->r[25] + 0x0000003Cu;
|
|
/* 02988368 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298836C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02988370 */ _t11 = cpu->r[27] + 0x00000000u;
|
|
/* 02988370 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02988374 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988374 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02988374 */ if (_t13) goto L_0298837C; else goto L_02988378;
|
|
L_02988378: ; // 0x2988378
|
|
/* 02988378 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
L_0298837C: ; // 0x298837c
|
|
/* 0298837C */ Gambit_fn_02C60644(cpu);
|
|
/* 02988380 */ cpu->r[6] = cpu->r[3];
|
|
/* 02988380 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02988384 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988384 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02988384 */ if (_t15) goto L_02988398; else goto L_02988388;
|
|
L_02988388: ; // 0x2988388
|
|
/* 02988388 */ cpu->r[5] = cpu->r[26] + cpu->r[6];
|
|
/* 0298838C */ _t16 = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 0298838C */ _t17 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 0298838C */ cpu->r[0] = _t17 | _t16;
|
|
/* 02988390 */ _t18 = rbrew_rlwinm(cpu->r[28], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02988390 */ _t19 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02988390 */ cpu->r[0] = _t19 | _t18;
|
|
/* 02988394 */ goto L_029883BC;
|
|
L_02988398: ; // 0x2988398
|
|
/* 02988398 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 02988398 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298839C */ _t21 = cpu->r[10] + 0x0000001Cu;
|
|
/* 0298839C */ cpu->r[25] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029883A0 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 029883A4 */ _t22 = cpu->r[25] + 0x0000005Eu;
|
|
/* 029883A4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t22);
|
|
/* 029883A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 029883AC */ cpu->r[26] = cpu->r[26] + cpu->r[0];
|
|
/* 029883B0 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029883B0 */ _t24 = _t23 & 0x00000001u;
|
|
/* 029883B0 */ if (_t24) goto L_029883B4; else goto L_02988344;
|
|
L_029883B4: ; // 0x29883b4
|
|
/* 029883B4 */ _t25 = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 029883B4 */ _t26 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 029883B4 */ cpu->r[0] = _t26 | _t25;
|
|
/* 029883B8 */ _t27 = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 029883B8 */ _t28 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 029883B8 */ cpu->r[0] = _t28 | _t27;
|
|
L_029883BC: ; // 0x29883bc
|
|
/* 029883BC */ /* nop */
|
|
/* 029883C0 */ cpu->r[3] = cpu->r[0];
|
|
/* 029883C4 */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029883C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 029883C8 */ cpu->lr = cpu->r[0];
|
|
/* 029883CC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 029883D0 */ return;
|
|
}
|
|
|
|
// fn_029883D4 @ 0x29883d4
|
|
void Gambit_fn_029883D4(CPUState* cpu) {
|
|
uint32_t _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_029883D4: ; // 0x29883d4
|
|
/* 029883D4 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 029883D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029883D4 */ cpu->r[1] = _t0;
|
|
/* 029883D8 */ /* nop */
|
|
/* 029883DC */ cpu->r[0] = cpu->lr;
|
|
/* 029883E0 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029883E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029883E4 */ _t2 = cpu->r[3] + 0x00000074u;
|
|
/* 029883E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 029883E8 */ cpu->r[27] = cpu->r[4];
|
|
/* 029883EC */ _t3 = cpu->r[3] + 0x0000007Cu;
|
|
/* 029883EC */ cpu->r[29] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029883F0 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029883F4 */ cpu->r[28] = cpu->r[5];
|
|
/* 029883F8 */ cpu->r[30] = cpu->r[29] + cpu->r[8];
|
|
/* 029883FC */ cpu->r[31] = 0xFFFFFFFFu;
|
|
/* 02988400 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 02988404 */ cpu->r[26] = 0x00000000u;
|
|
/* 02988408 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988408 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02988408 */ if (_t5) goto L_0298847C; else goto L_0298840C;
|
|
L_0298840C: ; // 0x298840c
|
|
/* 0298840C */ _t6 = cpu->r[27] + 0x00000004u;
|
|
/* 0298840C */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988410 */ _t7 = cpu->r[11] + 0x00000014u;
|
|
/* 02988410 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02988414 */ _t8 = cpu->r[29] + 0x00000000u;
|
|
/* 02988414 */ cpu->r[10] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02988418 */ cpu->ctr = cpu->r[12];
|
|
/* 0298841C */ _t9 = cpu->r[10] + 0x0000001Cu;
|
|
/* 0298841C */ cpu->r[25] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988420 */ cpu->r[3] = cpu->r[27];
|
|
/* 02988424 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988428 */ _t10 = cpu->r[25] + 0x00000040u;
|
|
/* 02988428 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298842C */ cpu->r[12] = cpu->r[25] + 0x00000040u;
|
|
/* 02988430 */ cpu->r[3] = 0x00000000u;
|
|
/* 02988434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02988438 */ _t11 = cpu->r[27] + 0x00000000u;
|
|
/* 02988438 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298843C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298843C */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298843C */ if (_t13) goto L_02988444; else goto L_02988440;
|
|
L_02988440: ; // 0x2988440
|
|
/* 02988440 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
L_02988444: ; // 0x2988444
|
|
/* 02988444 */ Gambit_fn_02C60644(cpu);
|
|
/* 02988448 */ cpu->r[6] = cpu->r[3];
|
|
/* 02988448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298844C */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298844C */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298844C */ if (_t15) goto L_02988460; else goto L_02988450;
|
|
L_02988450: ; // 0x2988450
|
|
/* 02988450 */ cpu->r[5] = cpu->r[26] + cpu->r[6];
|
|
/* 02988454 */ _t16 = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02988454 */ _t17 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02988454 */ cpu->r[0] = _t17 | _t16;
|
|
/* 02988458 */ _t18 = rbrew_rlwinm(cpu->r[28], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 02988458 */ _t19 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 02988458 */ cpu->r[0] = _t19 | _t18;
|
|
/* 0298845C */ goto L_02988484;
|
|
L_02988460: ; // 0x2988460
|
|
/* 02988460 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 02988460 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02988464 */ _t21 = cpu->r[10] + 0x0000001Cu;
|
|
/* 02988464 */ cpu->r[25] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02988468 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298846C */ _t22 = cpu->r[25] + 0x00000060u;
|
|
/* 0298846C */ cpu->r[0] = rbrew_read16(cpu->mem, _t22);
|
|
/* 02988470 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[30]);
|
|
/* 02988474 */ cpu->r[26] = cpu->r[26] + cpu->r[0];
|
|
/* 02988478 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988478 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02988478 */ if (_t24) goto L_0298847C; else goto L_0298840C;
|
|
L_0298847C: ; // 0x298847c
|
|
/* 0298847C */ _t25 = rbrew_rlwinm(cpu->r[31], 0x00000010u, 0x00000000u, 0x0000000Fu);
|
|
/* 0298847C */ _t26 = cpu->r[0] & 0x0000FFFFu;
|
|
/* 0298847C */ cpu->r[0] = _t26 | _t25;
|
|
/* 02988480 */ _t27 = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000010u, 0x0000001Fu);
|
|
/* 02988480 */ _t28 = cpu->r[0] & 0xFFFF0000u;
|
|
/* 02988480 */ cpu->r[0] = _t28 | _t27;
|
|
L_02988484: ; // 0x2988484
|
|
/* 02988484 */ /* nop */
|
|
/* 02988488 */ cpu->r[3] = cpu->r[0];
|
|
/* 0298848C */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298848C */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02988490 */ cpu->lr = cpu->r[0];
|
|
/* 02988494 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02988498 */ return;
|
|
}
|
|
|
|
// fn_0298849C @ 0x298849c
|
|
void Gambit_fn_0298849C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_0298849C: ; // 0x298849c
|
|
/* 0298849C */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 0298849C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298849C */ cpu->r[1] = _t0;
|
|
/* 029884A0 */ /* nop */
|
|
/* 029884A4 */ cpu->r[0] = cpu->lr;
|
|
/* 029884A8 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029884A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029884AC */ cpu->r[25] = cpu->r[5];
|
|
/* 029884B0 */ cpu->r[26] = cpu->r[6];
|
|
/* 029884B4 */ _t2 = cpu->r[9] + 0x00000000u;
|
|
/* 029884B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t2);
|
|
/* 029884B8 */ cpu->r[6] = 0x00000001u;
|
|
/* 029884BC */ _t3 = cpu->r[25] + 0x00000008u;
|
|
/* 029884BC */ cpu->r[11] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029884C0 */ cpu->r[31] = cpu->r[4];
|
|
/* 029884C4 */ cpu->r[28] = cpu->r[8];
|
|
/* 029884C8 */ cpu->r[30] = cpu->r[3];
|
|
/* 029884CC */ cpu->r[5] = rbrew_rlwinm(cpu->r[11], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 029884D0 */ _t4 = cpu->r[25] + 0x00000018u;
|
|
/* 029884D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029884D4 */ cpu->r[3] = cpu->r[28];
|
|
/* 029884D8 */ cpu->r[27] = cpu->r[7];
|
|
/* 029884DC */ Gambit_fn_02C54CCC(cpu);
|
|
/* 029884E0 */ cpu->r[3] = cpu->r[28];
|
|
/* 029884E4 */ Gambit_fn_02C54AE4(cpu);
|
|
/* 029884E8 */ _t5 = cpu->r[30] + 0x00000070u;
|
|
/* 029884E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029884EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029884F0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029884F0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029884F0 */ if (_t7) goto L_02988518; else goto L_029884F4;
|
|
L_029884F4: ; // 0x29884f4
|
|
/* 029884F4 */ _t8 = cpu->r[3] + 0x00000000u;
|
|
/* 029884F4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029884F8 */ _t9 = cpu->r[12] + 0x0000000Cu;
|
|
/* 029884F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029884FC */ cpu->ctr = cpu->r[0];
|
|
/* 02988500 */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 02988500 */ rbrew_write32(cpu->mem, _t10, cpu->r[29]);
|
|
/* 02988504 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 02988508 */ cpu->r[7] = cpu->r[28];
|
|
/* 0298850C */ cpu->r[5] = cpu->r[31];
|
|
/* 02988510 */ cpu->r[4] = cpu->r[30];
|
|
/* 02988514 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02988518: ; // 0x2988518
|
|
/* 02988518 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 0298851C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298851C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298851C */ if (_t12) goto L_0298856C; else goto L_02988520;
|
|
L_02988520: ; // 0x2988520
|
|
/* 02988520 */ _t13 = cpu->r[25] + 0x00000008u;
|
|
/* 02988520 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02988524 */ cpu->r[3] = cpu->r[27];
|
|
/* 02988528 */ cpu->r[6] = 0x00000001u;
|
|
/* 0298852C */ _t14 = cpu->r[25] + 0x0000001Cu;
|
|
/* 0298852C */ cpu->r[4] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02988530 */ cpu->r[5] = rbrew_rlwinm(cpu->r[9], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 02988534 */ Gambit_fn_02C5AD44(cpu);
|
|
/* 02988538 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298853C */ cpu->r[3] = cpu->r[28];
|
|
/* 02988540 */ _t15 = cpu->r[25] + 0x0000002Cu;
|
|
/* 02988540 */ rbrew_write32(cpu->mem, _t15, cpu->r[27]);
|
|
/* 02988544 */ Gambit_fn_02C54BA0(cpu);
|
|
/* 02988548 */ cpu->r[4] = 0x00000001u;
|
|
/* 0298854C */ cpu->r[3] = cpu->r[27];
|
|
/* 02988550 */ Gambit_fn_02C5AE1C(cpu);
|
|
/* 02988554 */ cpu->r[10] = 0x00000000u;
|
|
/* 02988558 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298855C */ cpu->r[4] = 0x00000001u;
|
|
/* 02988560 */ _t16 = cpu->r[25] + 0x0000002Cu;
|
|
/* 02988560 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 02988564 */ Gambit_fn_02C54DA0(cpu);
|
|
/* 02988568 */ goto L_02988584;
|
|
L_0298856C: ; // 0x298856c
|
|
/* 0298856C */ cpu->r[3] = cpu->r[28];
|
|
/* 02988570 */ cpu->r[4] = cpu->r[27];
|
|
/* 02988574 */ Gambit_fn_02C54BA0(cpu);
|
|
/* 02988578 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298857C */ cpu->r[4] = 0x00000001u;
|
|
/* 02988580 */ Gambit_fn_02C54DA0(cpu);
|
|
L_02988584: ; // 0x2988584
|
|
/* 02988584 */ /* nop */
|
|
/* 02988588 */ _t17 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02988588 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298858C */ cpu->lr = cpu->r[0];
|
|
/* 02988590 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02988594 */ return;
|
|
}
|
|
|
|
// fn_02988598 @ 0x2988598
|
|
void Gambit_fn_02988598(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_02988598: ; // 0x2988598
|
|
/* 02988598 */ cpu->r[0] = cpu->lr;
|
|
/* 0298859C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298859C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298859C */ cpu->r[1] = _t0;
|
|
/* 029885A0 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029885A0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029885A4 */ cpu->r[30] = cpu->r[8];
|
|
/* 029885A8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029885A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 029885AC */ cpu->r[3] = cpu->r[30];
|
|
/* 029885B0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029885B0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029885B4 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029885B4 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 029885B8 */ cpu->r[31] = cpu->r[5];
|
|
/* 029885BC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029885BC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029885C0 */ cpu->r[29] = cpu->r[7];
|
|
/* 029885C4 */ cpu->r[28] = cpu->r[6];
|
|
/* 029885C8 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 029885C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029885CC */ cpu->r[6] = 0x00000001u;
|
|
/* 029885D0 */ _t7 = cpu->r[31] + 0x00000018u;
|
|
/* 029885D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029885D4 */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 029885D8 */ Gambit_fn_02C54CCC(cpu);
|
|
/* 029885DC */ cpu->r[3] = cpu->r[30];
|
|
/* 029885E0 */ Gambit_fn_02C54AE4(cpu);
|
|
/* 029885E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029885E8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029885E8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029885E8 */ if (_t9) goto L_02988638; else goto L_029885EC;
|
|
L_029885EC: ; // 0x29885ec
|
|
/* 029885EC */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 029885EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029885F0 */ cpu->r[3] = cpu->r[29];
|
|
/* 029885F4 */ cpu->r[6] = 0x00000001u;
|
|
/* 029885F8 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 029885F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029885FC */ cpu->r[5] = rbrew_rlwinm(cpu->r[12], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 02988600 */ Gambit_fn_02C5AD44(cpu);
|
|
/* 02988604 */ cpu->r[4] = cpu->r[29];
|
|
/* 02988608 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298860C */ _t12 = cpu->r[31] + 0x0000002Cu;
|
|
/* 0298860C */ rbrew_write32(cpu->mem, _t12, cpu->r[29]);
|
|
/* 02988610 */ Gambit_fn_02C54BA0(cpu);
|
|
/* 02988614 */ cpu->r[4] = 0x00000001u;
|
|
/* 02988618 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298861C */ Gambit_fn_02C5AE1C(cpu);
|
|
/* 02988620 */ cpu->r[0] = 0x00000000u;
|
|
/* 02988624 */ cpu->r[3] = cpu->r[30];
|
|
/* 02988628 */ cpu->r[4] = 0x00000001u;
|
|
/* 0298862C */ _t13 = cpu->r[31] + 0x0000002Cu;
|
|
/* 0298862C */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 02988630 */ Gambit_fn_02C54DA0(cpu);
|
|
/* 02988634 */ goto L_02988650;
|
|
L_02988638: ; // 0x2988638
|
|
/* 02988638 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298863C */ cpu->r[4] = cpu->r[29];
|
|
/* 02988640 */ Gambit_fn_02C54BA0(cpu);
|
|
/* 02988644 */ cpu->r[3] = cpu->r[30];
|
|
/* 02988648 */ cpu->r[4] = 0x00000001u;
|
|
/* 0298864C */ Gambit_fn_02C54DA0(cpu);
|
|
L_02988650: ; // 0x2988650
|
|
/* 02988650 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 02988650 */ cpu->r[28] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02988654 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988654 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02988658 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02988658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298865C */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 0298865C */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02988660 */ cpu->lr = cpu->r[0];
|
|
/* 02988664 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02988664 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02988668 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298866C */ return;
|
|
}
|
|
|
|
// fn_0298859C @ 0x298859c
|
|
void Gambit_fn_0298859C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_0298859C: ; // 0x298859c
|
|
/* 0298859C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298859C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298859C */ cpu->r[1] = _t0;
|
|
/* 029885A0 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029885A0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029885A4 */ cpu->r[30] = cpu->r[8];
|
|
/* 029885A8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029885A8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 029885AC */ cpu->r[3] = cpu->r[30];
|
|
/* 029885B0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029885B0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029885B4 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029885B4 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 029885B8 */ cpu->r[31] = cpu->r[5];
|
|
/* 029885BC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029885BC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029885C0 */ cpu->r[29] = cpu->r[7];
|
|
/* 029885C4 */ cpu->r[28] = cpu->r[6];
|
|
/* 029885C8 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 029885C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029885CC */ cpu->r[6] = 0x00000001u;
|
|
/* 029885D0 */ _t7 = cpu->r[31] + 0x00000018u;
|
|
/* 029885D0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029885D4 */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 029885D8 */ Gambit_fn_02C54CCC(cpu);
|
|
/* 029885DC */ cpu->r[3] = cpu->r[30];
|
|
/* 029885E0 */ Gambit_fn_02C54AE4(cpu);
|
|
/* 029885E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029885E8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029885E8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029885E8 */ if (_t9) goto L_02988638; else goto L_029885EC;
|
|
L_029885EC: ; // 0x29885ec
|
|
/* 029885EC */ _t10 = cpu->r[31] + 0x00000008u;
|
|
/* 029885EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029885F0 */ cpu->r[3] = cpu->r[29];
|
|
/* 029885F4 */ cpu->r[6] = 0x00000001u;
|
|
/* 029885F8 */ _t11 = cpu->r[31] + 0x0000001Cu;
|
|
/* 029885F8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029885FC */ cpu->r[5] = rbrew_rlwinm(cpu->r[12], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 02988600 */ Gambit_fn_02C5AD44(cpu);
|
|
/* 02988604 */ cpu->r[4] = cpu->r[29];
|
|
/* 02988608 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298860C */ _t12 = cpu->r[31] + 0x0000002Cu;
|
|
/* 0298860C */ rbrew_write32(cpu->mem, _t12, cpu->r[29]);
|
|
/* 02988610 */ Gambit_fn_02C54BA0(cpu);
|
|
/* 02988614 */ cpu->r[4] = 0x00000001u;
|
|
/* 02988618 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298861C */ Gambit_fn_02C5AE1C(cpu);
|
|
/* 02988620 */ cpu->r[0] = 0x00000000u;
|
|
/* 02988624 */ cpu->r[3] = cpu->r[30];
|
|
/* 02988628 */ cpu->r[4] = 0x00000001u;
|
|
/* 0298862C */ _t13 = cpu->r[31] + 0x0000002Cu;
|
|
/* 0298862C */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 02988630 */ Gambit_fn_02C54DA0(cpu);
|
|
/* 02988634 */ goto L_02988650;
|
|
L_02988638: ; // 0x2988638
|
|
/* 02988638 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298863C */ cpu->r[4] = cpu->r[29];
|
|
/* 02988640 */ Gambit_fn_02C54BA0(cpu);
|
|
/* 02988644 */ cpu->r[3] = cpu->r[30];
|
|
/* 02988648 */ cpu->r[4] = 0x00000001u;
|
|
/* 0298864C */ Gambit_fn_02C54DA0(cpu);
|
|
L_02988650: ; // 0x2988650
|
|
/* 02988650 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 02988650 */ cpu->r[28] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02988654 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988654 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02988658 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02988658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298865C */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 0298865C */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02988660 */ cpu->lr = cpu->r[0];
|
|
/* 02988664 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02988664 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02988668 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298866C */ return;
|
|
}
|
|
|
|
// fn_02988670 @ 0x2988670
|
|
void Gambit_fn_02988670(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02988670: ; // 0x2988670
|
|
/* 02988670 */ _t0 = cpu->r[1] + 0xFFFFFBB8u;
|
|
/* 02988670 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02988670 */ cpu->r[1] = _t0;
|
|
/* 02988674 */ /* nop */
|
|
/* 02988678 */ cpu->r[0] = cpu->lr;
|
|
/* 0298867C */ _t1 = cpu->r[1] + 0x0000044Cu;
|
|
/* 0298867C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02988680 */ cpu->r[29] = cpu->r[4];
|
|
/* 02988684 */ cpu->r[24] = cpu->r[5];
|
|
/* 02988688 */ cpu->r[23] = cpu->r[3];
|
|
/* 0298868C */ _t2 = cpu->r[24] + 0x000000ACu;
|
|
/* 0298868C */ cpu->r[26] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988690 */ cpu->r[27] = cpu->r[7];
|
|
/* 02988694 */ _t3 = cpu->r[23] + 0x00000090u;
|
|
/* 02988694 */ rbrew_write32(cpu->mem, _t3, cpu->r[24]);
|
|
/* 02988698 */ _t4 = cpu->r[27] + 0x0000000Cu;
|
|
/* 02988698 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298869C */ _t5 = cpu->r[26] + 0x0000002Cu;
|
|
/* 0298869C */ cpu->r[8] = rbrew_read16(cpu->mem, _t5);
|
|
/* 029886A0 */ cpu->r[25] = cpu->r[6];
|
|
/* 029886A4 */ _t6 = cpu->r[29] + 0x00000008u;
|
|
/* 029886A4 */ cpu->r[9] = rbrew_read16(cpu->mem, _t6);
|
|
/* 029886A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 029886AC */ cpu->r[0] = 0x00000000u;
|
|
/* 029886B0 */ _t7 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029886B0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029886B0 */ if (_t8) goto L_029886C4; else goto L_029886B4;
|
|
L_029886B4: ; // 0x29886b4
|
|
/* 029886B4 */ _t9 = cpu->r[27] + 0x00000002u;
|
|
/* 029886B4 */ cpu->r[5] = rbrew_read16(cpu->mem, _t9);
|
|
/* 029886B8 */ cpu->r[7] = rbrew_rlwinm(cpu->r[5], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029886B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 029886BC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029886BC */ _t11 = _t10 & 0x00000001u;
|
|
/* 029886BC */ if (_t11) goto L_029886C4; else goto L_029886C0;
|
|
L_029886C0: ; // 0x29886c0
|
|
/* 029886C0 */ cpu->r[0] = 0x00000001u;
|
|
L_029886C4: ; // 0x29886c4
|
|
/* 029886C4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 029886C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000001u);
|
|
/* 029886CC */ cpu->r[25] = cpu->r[25] & cpu->r[0];
|
|
/* 029886D0 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029886D0 */ _t13 = _t12 & 0x00000001u;
|
|
/* 029886D0 */ if (_t13) goto L_029886D4; else goto L_02988744;
|
|
L_029886D4: ; // 0x29886d4
|
|
/* 029886D4 */ _t14 = cpu->r[29] + 0x00000004u;
|
|
/* 029886D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 029886D8 */ cpu->r[3] = cpu->r[23];
|
|
/* 029886DC */ _t15 = cpu->r[12] + 0x00000000u;
|
|
/* 029886DC */ cpu->r[4] = rbrew_read8(cpu->mem, _t15);
|
|
/* 029886E0 */ cpu->r[5] = cpu->r[24];
|
|
/* 029886E4 */ Gambit_fn_02984508(cpu);
|
|
/* 029886E8 */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 029886E8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029886EC */ _t17 = cpu->r[23] + 0x00000028u;
|
|
/* 029886EC */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029886F0 */ _t18 = cpu->r[6] + 0x00000000u;
|
|
/* 029886F0 */ cpu->r[8] = rbrew_read8(cpu->mem, _t18);
|
|
/* 029886F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[10]);
|
|
/* 029886F8 */ _t19 = cpu->r[23] + 0x0000002Cu;
|
|
/* 029886F8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029886FC */ _t20 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029886FC */ _t21 = _t20 & 0x00000001u;
|
|
/* 029886FC */ if (_t21) goto L_02988700; else goto L_02988708;
|
|
L_02988700: ; // 0x2988700
|
|
/* 02988700 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000006Cu);
|
|
/* 02988704 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_02988708: ; // 0x2988708
|
|
/* 02988708 */ _t22 = cpu->r[12] + 0x00000000u;
|
|
/* 02988708 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298870C */ cpu->r[3] = cpu->r[23];
|
|
/* 02988710 */ cpu->r[4] = cpu->r[24];
|
|
/* 02988714 */ cpu->r[5] = cpu->r[27];
|
|
/* 02988718 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988718 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 0298871C */ cpu->r[8] = cpu->r[12] + 0x0000000Cu;
|
|
/* 02988720 */ cpu->r[7] = cpu->r[26];
|
|
/* 02988724 */ cpu->r[6] = cpu->r[25];
|
|
/* 02988728 */ cpu->r[9] = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298872C */ Gambit_fn_0298849C(cpu);
|
|
/* 02988730 */ /* nop */
|
|
/* 02988734 */ _t24 = cpu->r[1] + 0x0000044Cu;
|
|
/* 02988734 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02988738 */ cpu->lr = cpu->r[0];
|
|
/* 0298873C */ cpu->r[1] = cpu->r[1] + 0x00000448u;
|
|
/* 02988740 */ return;
|
|
L_02988744: ; // 0x2988744
|
|
/* 02988744 */ _t25 = cpu->r[23] + 0x00000016u;
|
|
/* 02988744 */ rbrew_write16(cpu->mem, _t25, (uint16_t)cpu->r[8]);
|
|
/* 02988748 */ _t26 = cpu->r[27] + 0x00000008u;
|
|
/* 02988748 */ cpu->r[8] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298874C */ cpu->r[6] = 0x00000000u;
|
|
/* 02988750 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988754 */ _t27 = cpu->r[27] + 0x00000018u;
|
|
/* 02988754 */ cpu->r[4] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02988758 */ cpu->r[5] = rbrew_rlwinm(cpu->r[8], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 0298875C */ Gambit_fn_02C55114(cpu);
|
|
/* 02988760 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988764 */ Gambit_fn_02C54F48(cpu);
|
|
/* 02988768 */ _t28 = cpu->r[29] + 0x00000008u;
|
|
/* 02988768 */ cpu->r[0] = rbrew_read16(cpu->mem, _t28);
|
|
/* 0298876C */ _t29 = cpu->r[29] + 0x00000000u;
|
|
/* 0298876C */ cpu->r[9] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02988770 */ _t30 = cpu->r[29] + 0x00000004u;
|
|
/* 02988770 */ cpu->r[31] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02988774 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[9]);
|
|
/* 02988778 */ cpu->r[28] = 0x00000000u;
|
|
/* 0298877C */ cpu->r[30] = cpu->r[31];
|
|
/* 02988780 */ _t31 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02988780 */ _t32 = _t31 & 0x00000001u;
|
|
/* 02988780 */ if (_t32) goto L_02988798; else goto L_02988784;
|
|
L_02988784: ; // 0x2988784
|
|
/* 02988784 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 02988788 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 0298878C */ _t33 = cpu->r[1] + 0x00000010u;
|
|
/* 0298878C */ rbrew_write32(cpu->mem, _t33, cpu->r[29]);
|
|
/* 02988790 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988790 */ _t35 = _t34 & 0x00000001u;
|
|
/* 02988790 */ if (_t35) goto L_02988854; else goto L_02988794;
|
|
L_02988794: ; // 0x2988794
|
|
/* 02988794 */ goto L_029887A8;
|
|
L_02988798: ; // 0x2988798
|
|
/* 02988798 */ cpu->r[29] = cpu->r[31] + cpu->r[9];
|
|
/* 0298879C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 029887A0 */ _t36 = cpu->r[1] + 0x00000010u;
|
|
/* 029887A0 */ rbrew_write32(cpu->mem, _t36, cpu->r[29]);
|
|
/* 029887A4 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029887A4 */ _t38 = _t37 & 0x00000001u;
|
|
/* 029887A4 */ if (_t38) goto L_02988854; else goto L_029887A8;
|
|
L_029887A8: ; // 0x29887a8
|
|
/* 029887A8 */ cpu->r[10] = cpu->r[1] + 0x00000018u;
|
|
/* 029887AC */ cpu->r[9] = rbrew_rlwinm(cpu->r[28], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029887B0 */ cpu->r[21] = cpu->r[10] + cpu->r[9];
|
|
L_029887B4: ; // 0x29887b4
|
|
/* 029887B4 */ _t39 = cpu->r[30] + 0x00000000u;
|
|
/* 029887B4 */ cpu->r[4] = rbrew_read8(cpu->mem, _t39);
|
|
/* 029887B8 */ cpu->r[5] = cpu->r[24];
|
|
/* 029887BC */ cpu->r[3] = cpu->r[23];
|
|
/* 029887C0 */ _t40 = cpu->r[23] + 0x0000008Eu;
|
|
/* 029887C0 */ rbrew_write8(cpu->mem, _t40, (uint8_t)cpu->r[4]);
|
|
/* 029887C4 */ Gambit_fn_02984508(cpu);
|
|
/* 029887C8 */ _t41 = cpu->r[23] + 0x0000008Eu;
|
|
/* 029887C8 */ cpu->r[7] = rbrew_read8(cpu->mem, _t41);
|
|
/* 029887CC */ _t42 = cpu->r[23] + 0x00000028u;
|
|
/* 029887CC */ cpu->r[11] = rbrew_read32(cpu->mem, _t42);
|
|
/* 029887D0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[11]);
|
|
/* 029887D4 */ _t43 = cpu->r[23] + 0x0000002Cu;
|
|
/* 029887D4 */ cpu->r[22] = rbrew_read32(cpu->mem, _t43);
|
|
/* 029887D8 */ _t44 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029887D8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 029887D8 */ if (_t45) goto L_029887DC; else goto L_029887E4;
|
|
L_029887DC: ; // 0x29887dc
|
|
/* 029887DC */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x0000006Cu);
|
|
/* 029887E0 */ cpu->r[22] = cpu->r[22] + cpu->r[12];
|
|
L_029887E4: ; // 0x29887e4
|
|
/* 029887E4 */ _t46 = cpu->r[22] + 0x00000068u;
|
|
/* 029887E4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t46);
|
|
/* 029887E8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029887E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029887EC */ cpu->r[20] = cpu->r[22] + 0x0000000Cu;
|
|
/* 029887F0 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029887F0 */ _t48 = _t47 & 0x00000001u;
|
|
/* 029887F0 */ if (_t48) goto L_02988814; else goto L_029887F4;
|
|
L_029887F4: ; // 0x29887f4
|
|
/* 029887F4 */ cpu->r[6] = cpu->r[30] - cpu->r[31];
|
|
/* 029887F8 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 029887FC */ _t49 = cpu->r[21] + 0x00000000u;
|
|
/* 029887FC */ rbrew_write32(cpu->mem, _t49, cpu->r[6]);
|
|
/* 02988800 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988804 */ cpu->r[21] = cpu->r[21] + 0x00000004u;
|
|
/* 02988808 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 0298880C */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298880C */ _t51 = _t50 & 0x00000001u;
|
|
/* 0298880C */ if (_t51) goto L_02988810; else goto L_029887B4;
|
|
L_02988810: ; // 0x2988810
|
|
/* 02988810 */ goto L_02988854;
|
|
L_02988814: ; // 0x2988814
|
|
/* 02988814 */ _t52 = cpu->r[27] + 0x00000008u;
|
|
/* 02988814 */ cpu->r[0] = rbrew_read32(cpu->mem, _t52);
|
|
/* 02988818 */ cpu->r[3] = cpu->r[20];
|
|
/* 0298881C */ cpu->r[6] = 0x00000001u;
|
|
/* 02988820 */ _t53 = cpu->r[27] + 0x00000014u;
|
|
/* 02988820 */ cpu->r[4] = rbrew_read32(cpu->mem, _t53);
|
|
/* 02988824 */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 02988828 */ Gambit_fn_02C54CCC(cpu);
|
|
/* 0298882C */ _t54 = cpu->r[22] + 0x00000008u;
|
|
/* 0298882C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t54);
|
|
/* 02988830 */ cpu->r[4] = cpu->r[20];
|
|
/* 02988834 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988838 */ Gambit_fn_02C54F70(cpu);
|
|
/* 0298883C */ cpu->r[4] = 0x00000001u;
|
|
/* 02988840 */ cpu->r[3] = cpu->r[20];
|
|
/* 02988844 */ Gambit_fn_02C54DA0(cpu);
|
|
/* 02988848 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 0298884C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988850 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988850 */ _t56 = _t55 & 0x00000001u;
|
|
/* 02988850 */ if (_t56) goto L_02988854; else goto L_029887B4;
|
|
L_02988854: ; // 0x2988854
|
|
/* 02988854 */ _t57 = cpu->r[23] + 0x00000070u;
|
|
/* 02988854 */ cpu->r[3] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02988858 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298885C */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298885C */ _t59 = _t58 & 0x00000001u;
|
|
/* 0298885C */ if (_t59) goto L_0298887C; else goto L_02988860;
|
|
L_02988860: ; // 0x2988860
|
|
/* 02988860 */ _t60 = cpu->r[3] + 0x00000000u;
|
|
/* 02988860 */ cpu->r[8] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02988864 */ _t61 = cpu->r[8] + 0x00000014u;
|
|
/* 02988864 */ cpu->r[9] = rbrew_read32(cpu->mem, _t61);
|
|
/* 02988868 */ cpu->ctr = cpu->r[9];
|
|
/* 0298886C */ cpu->r[4] = cpu->r[23];
|
|
/* 02988870 */ cpu->r[5] = cpu->r[24];
|
|
/* 02988874 */ cpu->r[6] = cpu->r[23] + 0x00000010u;
|
|
/* 02988878 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298887C: ; // 0x298887c
|
|
/* 0298887C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], 0x00000000u);
|
|
/* 02988880 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988880 */ _t63 = _t62 & 0x00000001u;
|
|
/* 02988880 */ if (_t63) goto L_029888D4; else goto L_02988884;
|
|
L_02988884: ; // 0x2988884
|
|
/* 02988884 */ _t64 = cpu->r[27] + 0x00000008u;
|
|
/* 02988884 */ cpu->r[10] = rbrew_read32(cpu->mem, _t64);
|
|
/* 02988888 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298888C */ cpu->r[6] = 0x00000001u;
|
|
/* 02988890 */ _t65 = cpu->r[27] + 0x0000001Cu;
|
|
/* 02988890 */ cpu->r[4] = rbrew_read32(cpu->mem, _t65);
|
|
/* 02988894 */ cpu->r[5] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 02988898 */ Gambit_fn_02C5AD44(cpu);
|
|
/* 0298889C */ cpu->r[4] = cpu->r[26];
|
|
/* 029888A0 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 029888A4 */ _t66 = cpu->r[27] + 0x0000002Cu;
|
|
/* 029888A4 */ rbrew_write32(cpu->mem, _t66, cpu->r[26]);
|
|
/* 029888A8 */ Gambit_fn_02C55078(cpu);
|
|
/* 029888AC */ cpu->r[4] = 0x00000001u;
|
|
/* 029888B0 */ cpu->r[3] = cpu->r[26];
|
|
/* 029888B4 */ Gambit_fn_02C5AE1C(cpu);
|
|
/* 029888B8 */ cpu->r[4] = 0x00000000u;
|
|
/* 029888BC */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 029888C0 */ _t67 = cpu->r[27] + 0x0000002Cu;
|
|
/* 029888C0 */ rbrew_write32(cpu->mem, _t67, cpu->r[4]);
|
|
/* 029888C4 */ Gambit_fn_02C551E8(cpu);
|
|
/* 029888C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029888CC */ _t68 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029888CC */ _t69 = _t68 & 0x00000001u;
|
|
/* 029888CC */ if (_t69) goto L_029888D0; else goto L_02988944;
|
|
L_029888D0: ; // 0x29888d0
|
|
/* 029888D0 */ goto L_029888F4;
|
|
L_029888D4: ; // 0x29888d4
|
|
/* 029888D4 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 029888D8 */ cpu->r[4] = cpu->r[26];
|
|
/* 029888DC */ Gambit_fn_02C55078(cpu);
|
|
/* 029888E0 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 029888E4 */ cpu->r[4] = 0x00000000u;
|
|
/* 029888E8 */ Gambit_fn_02C551E8(cpu);
|
|
/* 029888EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029888F0 */ _t70 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029888F0 */ _t71 = _t70 & 0x00000001u;
|
|
/* 029888F0 */ if (_t71) goto L_029888F4; else goto L_02988944;
|
|
L_029888F4: ; // 0x29888f4
|
|
/* 029888F4 */ cpu->r[31] = cpu->r[1] + 0x00000014u;
|
|
L_029888F8: ; // 0x29888f8
|
|
/* 029888F8 */ _t72 = cpu->r[31] + 0x00000004u;
|
|
/* 029888F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 029888F8 */ cpu->r[31] = _t72;
|
|
/* 029888FC */ _t73 = cpu->r[23] + 0x00000028u;
|
|
/* 029888FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t73);
|
|
/* 02988900 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02988904 */ _t74 = cpu->r[23] + 0x0000002Cu;
|
|
/* 02988904 */ cpu->r[11] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02988908 */ _t75 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988908 */ _t76 = _t75 & 0x00000001u;
|
|
/* 02988908 */ if (_t76) goto L_0298890C; else goto L_02988914;
|
|
L_0298890C: ; // 0x298890c
|
|
/* 0298890C */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000006Cu);
|
|
/* 02988910 */ cpu->r[11] = cpu->r[11] + cpu->r[5];
|
|
L_02988914: ; // 0x2988914
|
|
/* 02988914 */ _t77 = cpu->r[11] + 0x00000000u;
|
|
/* 02988914 */ cpu->r[7] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02988918 */ cpu->r[4] = cpu->r[24];
|
|
/* 0298891C */ cpu->r[5] = cpu->r[27];
|
|
/* 02988920 */ cpu->r[6] = cpu->r[25];
|
|
/* 02988924 */ _t78 = cpu->r[1] + 0x00000008u;
|
|
/* 02988924 */ rbrew_write32(cpu->mem, _t78, cpu->r[7]);
|
|
/* 02988928 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
/* 0298892C */ cpu->r[8] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02988930 */ cpu->r[7] = cpu->r[26];
|
|
/* 02988934 */ cpu->r[3] = cpu->r[23];
|
|
/* 02988938 */ Gambit_fn_02988598(cpu);
|
|
/* 0298893C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 0298893C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02988940 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988940 */ _t80 = _t79 & 0x00000001u;
|
|
/* 02988940 */ if (_t80) goto L_02988944; else goto L_029888F8;
|
|
L_02988944: ; // 0x2988944
|
|
/* 02988944 */ /* nop */
|
|
/* 02988948 */ _t81 = cpu->r[1] + 0x0000044Cu;
|
|
/* 02988948 */ cpu->r[0] = rbrew_read32(cpu->mem, _t81);
|
|
/* 0298894C */ cpu->lr = cpu->r[0];
|
|
/* 02988950 */ cpu->r[1] = cpu->r[1] + 0x00000448u;
|
|
/* 02988954 */ return;
|
|
}
|
|
|
|
// fn_02988958 @ 0x2988958
|
|
void Gambit_fn_02988958(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_02988958: ; // 0x2988958
|
|
/* 02988958 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02988958 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02988958 */ cpu->r[1] = _t0;
|
|
/* 0298895C */ /* nop */
|
|
/* 02988960 */ cpu->r[0] = cpu->lr;
|
|
/* 02988964 */ cpu->r[28] = cpu->r[8];
|
|
/* 02988968 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298896C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 0298896C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02988970 */ cpu->r[31] = cpu->r[4];
|
|
/* 02988974 */ cpu->r[27] = cpu->r[7];
|
|
/* 02988978 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298897C */ _t2 = cpu->r[9] + 0x00000000u;
|
|
/* 0298897C */ cpu->r[29] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988980 */ Gambit_fn_02C54AE4(cpu);
|
|
/* 02988984 */ _t3 = cpu->r[30] + 0x00000070u;
|
|
/* 02988984 */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298898C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298898C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298898C */ if (_t5) goto L_029889B4; else goto L_02988990;
|
|
L_02988990: ; // 0x2988990
|
|
/* 02988990 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 02988990 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988994 */ _t7 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02988994 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02988998 */ cpu->ctr = cpu->r[0];
|
|
/* 0298899C */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 0298899C */ rbrew_write32(cpu->mem, _t8, cpu->r[29]);
|
|
/* 029889A0 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 029889A4 */ cpu->r[7] = cpu->r[28];
|
|
/* 029889A8 */ cpu->r[5] = cpu->r[31];
|
|
/* 029889AC */ cpu->r[4] = cpu->r[30];
|
|
/* 029889B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_029889B4: ; // 0x29889b4
|
|
/* 029889B4 */ cpu->r[3] = cpu->r[28];
|
|
/* 029889B8 */ cpu->r[4] = cpu->r[27];
|
|
/* 029889BC */ Gambit_fn_02C54BA0(cpu);
|
|
/* 029889C0 */ /* nop */
|
|
/* 029889C4 */ _t9 = cpu->r[1] + 0x00000024u;
|
|
/* 029889C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029889C8 */ cpu->lr = cpu->r[0];
|
|
/* 029889CC */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 029889D0 */ return;
|
|
}
|
|
|
|
// fn_029889D4 @ 0x29889d4
|
|
void Gambit_fn_029889D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_029889D4: ; // 0x29889d4
|
|
/* 029889D4 */ cpu->r[0] = cpu->lr;
|
|
/* 029889D8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029889D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029889D8 */ cpu->r[1] = _t0;
|
|
/* 029889DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029889DC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029889E0 */ cpu->r[31] = cpu->r[8];
|
|
/* 029889E4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029889E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029889E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029889EC */ cpu->r[30] = cpu->r[7];
|
|
/* 029889F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029889F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029889F4 */ Gambit_fn_02C54AE4(cpu);
|
|
/* 029889F8 */ cpu->r[4] = cpu->r[30];
|
|
/* 029889FC */ cpu->r[3] = cpu->r[31];
|
|
/* 02988A00 */ Gambit_fn_02C54BA0(cpu);
|
|
/* 02988A04 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 02988A04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02988A08 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988A08 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02988A0C */ cpu->lr = cpu->r[0];
|
|
/* 02988A10 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 02988A10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988A14 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02988A18 */ return;
|
|
}
|
|
|
|
// fn_029889D8 @ 0x29889d8
|
|
void Gambit_fn_029889D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_029889D8: ; // 0x29889d8
|
|
/* 029889D8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029889D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029889D8 */ cpu->r[1] = _t0;
|
|
/* 029889DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029889DC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029889E0 */ cpu->r[31] = cpu->r[8];
|
|
/* 029889E4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029889E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029889E8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029889EC */ cpu->r[30] = cpu->r[7];
|
|
/* 029889F0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029889F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029889F4 */ Gambit_fn_02C54AE4(cpu);
|
|
/* 029889F8 */ cpu->r[4] = cpu->r[30];
|
|
/* 029889FC */ cpu->r[3] = cpu->r[31];
|
|
/* 02988A00 */ Gambit_fn_02C54BA0(cpu);
|
|
/* 02988A04 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 02988A04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02988A08 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988A08 */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02988A0C */ cpu->lr = cpu->r[0];
|
|
/* 02988A10 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 02988A10 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988A14 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02988A18 */ return;
|
|
}
|
|
|
|
// fn_02988A1C @ 0x2988a1c
|
|
void Gambit_fn_02988A1C(CPUState* cpu) {
|
|
uint32_t _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_02988A1C: ; // 0x2988a1c
|
|
/* 02988A1C */ _t0 = cpu->r[1] + 0xFFFFFBC0u;
|
|
/* 02988A1C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02988A1C */ cpu->r[1] = _t0;
|
|
/* 02988A20 */ /* nop */
|
|
/* 02988A24 */ cpu->r[0] = cpu->lr;
|
|
/* 02988A28 */ _t1 = cpu->r[1] + 0x00000444u;
|
|
/* 02988A28 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02988A2C */ cpu->r[24] = cpu->r[5];
|
|
/* 02988A30 */ cpu->r[23] = cpu->r[3];
|
|
/* 02988A34 */ _t2 = cpu->r[24] + 0x000000ACu;
|
|
/* 02988A34 */ cpu->r[26] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988A38 */ cpu->r[31] = cpu->r[4];
|
|
/* 02988A3C */ _t3 = cpu->r[23] + 0x00000090u;
|
|
/* 02988A3C */ rbrew_write32(cpu->mem, _t3, cpu->r[24]);
|
|
/* 02988A40 */ _t4 = cpu->r[31] + 0x00000008u;
|
|
/* 02988A40 */ cpu->r[11] = rbrew_read16(cpu->mem, _t4);
|
|
/* 02988A44 */ cpu->r[25] = cpu->r[6];
|
|
/* 02988A48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000001u);
|
|
/* 02988A4C */ cpu->r[27] = cpu->r[7];
|
|
/* 02988A50 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988A50 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02988A50 */ if (_t6) goto L_02988A54; else goto L_02988AC4;
|
|
L_02988A54: ; // 0x2988a54
|
|
/* 02988A54 */ _t7 = cpu->r[31] + 0x00000004u;
|
|
/* 02988A54 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02988A58 */ cpu->r[3] = cpu->r[23];
|
|
/* 02988A5C */ _t8 = cpu->r[7] + 0x00000000u;
|
|
/* 02988A5C */ cpu->r[4] = rbrew_read8(cpu->mem, _t8);
|
|
/* 02988A60 */ cpu->r[5] = cpu->r[24];
|
|
/* 02988A64 */ Gambit_fn_02984508(cpu);
|
|
/* 02988A68 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 02988A68 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988A6C */ _t10 = cpu->r[23] + 0x00000028u;
|
|
/* 02988A6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02988A70 */ _t11 = cpu->r[8] + 0x00000000u;
|
|
/* 02988A70 */ cpu->r[10] = rbrew_read8(cpu->mem, _t11);
|
|
/* 02988A74 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[9]);
|
|
/* 02988A78 */ _t12 = cpu->r[23] + 0x0000002Cu;
|
|
/* 02988A78 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02988A7C */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988A7C */ _t14 = _t13 & 0x00000001u;
|
|
/* 02988A7C */ if (_t14) goto L_02988A80; else goto L_02988A88;
|
|
L_02988A80: ; // 0x2988a80
|
|
/* 02988A80 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)0x0000006Cu);
|
|
/* 02988A84 */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_02988A88: ; // 0x2988a88
|
|
/* 02988A88 */ _t15 = cpu->r[12] + 0x00000000u;
|
|
/* 02988A88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02988A8C */ cpu->r[3] = cpu->r[23];
|
|
/* 02988A90 */ cpu->r[4] = cpu->r[24];
|
|
/* 02988A94 */ cpu->r[5] = cpu->r[27];
|
|
/* 02988A98 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988A98 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 02988A9C */ cpu->r[8] = cpu->r[12] + 0x0000000Cu;
|
|
/* 02988AA0 */ cpu->r[7] = cpu->r[26];
|
|
/* 02988AA4 */ cpu->r[6] = cpu->r[25];
|
|
/* 02988AA8 */ cpu->r[9] = cpu->r[1] + 0x0000000Cu;
|
|
/* 02988AAC */ Gambit_fn_02988958(cpu);
|
|
/* 02988AB0 */ /* nop */
|
|
/* 02988AB4 */ _t17 = cpu->r[1] + 0x00000444u;
|
|
/* 02988AB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02988AB8 */ cpu->lr = cpu->r[0];
|
|
/* 02988ABC */ cpu->r[1] = cpu->r[1] + 0x00000440u;
|
|
/* 02988AC0 */ return;
|
|
L_02988AC4: ; // 0x2988ac4
|
|
/* 02988AC4 */ _t18 = cpu->r[26] + 0x0000002Cu;
|
|
/* 02988AC4 */ cpu->r[9] = rbrew_read16(cpu->mem, _t18);
|
|
/* 02988AC8 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988ACC */ _t19 = cpu->r[23] + 0x00000016u;
|
|
/* 02988ACC */ rbrew_write16(cpu->mem, _t19, (uint16_t)cpu->r[9]);
|
|
/* 02988AD0 */ Gambit_fn_02C54F48(cpu);
|
|
/* 02988AD4 */ _t20 = cpu->r[31] + 0x00000008u;
|
|
/* 02988AD4 */ cpu->r[7] = rbrew_read16(cpu->mem, _t20);
|
|
/* 02988AD8 */ _t21 = cpu->r[31] + 0x00000004u;
|
|
/* 02988AD8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02988ADC */ _t22 = cpu->r[31] + 0x00000000u;
|
|
/* 02988ADC */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02988AE0 */ cpu->r[31] = cpu->r[30];
|
|
/* 02988AE4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 02988AE8 */ cpu->r[28] = 0x00000000u;
|
|
/* 02988AEC */ _t23 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02988AEC */ _t24 = _t23 & 0x00000001u;
|
|
/* 02988AEC */ if (_t24) goto L_02988B04; else goto L_02988AF0;
|
|
L_02988AF0: ; // 0x2988af0
|
|
/* 02988AF0 */ cpu->r[29] = cpu->r[30] + cpu->r[7];
|
|
/* 02988AF4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988AF8 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 02988AF8 */ rbrew_write32(cpu->mem, _t25, cpu->r[29]);
|
|
/* 02988AFC */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988AFC */ _t27 = _t26 & 0x00000001u;
|
|
/* 02988AFC */ if (_t27) goto L_02988B98; else goto L_02988B00;
|
|
L_02988B00: ; // 0x2988b00
|
|
/* 02988B00 */ goto L_02988B14;
|
|
L_02988B04: ; // 0x2988b04
|
|
/* 02988B04 */ cpu->r[29] = cpu->r[30] + cpu->r[0];
|
|
/* 02988B08 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988B0C */ _t28 = cpu->r[1] + 0x00000010u;
|
|
/* 02988B0C */ rbrew_write32(cpu->mem, _t28, cpu->r[29]);
|
|
/* 02988B10 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988B10 */ _t30 = _t29 & 0x00000001u;
|
|
/* 02988B10 */ if (_t30) goto L_02988B98; else goto L_02988B14;
|
|
L_02988B14: ; // 0x2988b14
|
|
/* 02988B14 */ cpu->r[12] = cpu->r[1] + 0x00000018u;
|
|
/* 02988B18 */ cpu->r[11] = rbrew_rlwinm(cpu->r[28], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02988B1C */ cpu->r[22] = cpu->r[12] + cpu->r[11];
|
|
L_02988B20: ; // 0x2988b20
|
|
/* 02988B20 */ _t31 = cpu->r[30] + 0x00000000u;
|
|
/* 02988B20 */ cpu->r[4] = rbrew_read8(cpu->mem, _t31);
|
|
/* 02988B24 */ cpu->r[5] = cpu->r[24];
|
|
/* 02988B28 */ cpu->r[3] = cpu->r[23];
|
|
/* 02988B2C */ _t32 = cpu->r[23] + 0x0000008Eu;
|
|
/* 02988B2C */ rbrew_write8(cpu->mem, _t32, (uint8_t)cpu->r[4]);
|
|
/* 02988B30 */ Gambit_fn_02984508(cpu);
|
|
/* 02988B34 */ _t33 = cpu->r[23] + 0x0000008Eu;
|
|
/* 02988B34 */ cpu->r[8] = rbrew_read8(cpu->mem, _t33);
|
|
/* 02988B38 */ _t34 = cpu->r[23] + 0x00000028u;
|
|
/* 02988B38 */ cpu->r[5] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02988B3C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[5]);
|
|
/* 02988B40 */ _t35 = cpu->r[23] + 0x0000002Cu;
|
|
/* 02988B40 */ cpu->r[11] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02988B44 */ _t36 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988B44 */ _t37 = _t36 & 0x00000001u;
|
|
/* 02988B44 */ if (_t37) goto L_02988B48; else goto L_02988B50;
|
|
L_02988B48: ; // 0x2988b48
|
|
/* 02988B48 */ cpu->r[7] = (uint32_t)((int32_t)cpu->r[8] * (int32_t)0x0000006Cu);
|
|
/* 02988B4C */ cpu->r[11] = cpu->r[11] + cpu->r[7];
|
|
L_02988B50: ; // 0x2988b50
|
|
/* 02988B50 */ _t38 = cpu->r[11] + 0x00000068u;
|
|
/* 02988B50 */ cpu->r[9] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02988B54 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02988B54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02988B58 */ cpu->r[4] = cpu->r[11] + 0x0000000Cu;
|
|
/* 02988B5C */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988B5C */ _t40 = _t39 & 0x00000001u;
|
|
/* 02988B5C */ if (_t40) goto L_02988B80; else goto L_02988B60;
|
|
L_02988B60: ; // 0x2988b60
|
|
/* 02988B60 */ cpu->r[10] = cpu->r[30] - cpu->r[31];
|
|
/* 02988B64 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 02988B68 */ _t41 = cpu->r[22] + 0x00000000u;
|
|
/* 02988B68 */ rbrew_write32(cpu->mem, _t41, cpu->r[10]);
|
|
/* 02988B6C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988B70 */ cpu->r[22] = cpu->r[22] + 0x00000004u;
|
|
/* 02988B74 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 02988B78 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988B78 */ _t43 = _t42 & 0x00000001u;
|
|
/* 02988B78 */ if (_t43) goto L_02988B7C; else goto L_02988B20;
|
|
L_02988B7C: ; // 0x2988b7c
|
|
/* 02988B7C */ goto L_02988B98;
|
|
L_02988B80: ; // 0x2988b80
|
|
/* 02988B80 */ _t44 = cpu->r[11] + 0x00000008u;
|
|
/* 02988B80 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 02988B84 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988B88 */ Gambit_fn_02C54F70(cpu);
|
|
/* 02988B8C */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 02988B90 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02988B94 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988B94 */ _t46 = _t45 & 0x00000001u;
|
|
/* 02988B94 */ if (_t46) goto L_02988B98; else goto L_02988B20;
|
|
L_02988B98: ; // 0x2988b98
|
|
/* 02988B98 */ _t47 = cpu->r[23] + 0x00000070u;
|
|
/* 02988B98 */ cpu->r[3] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02988B9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02988BA0 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988BA0 */ _t49 = _t48 & 0x00000001u;
|
|
/* 02988BA0 */ if (_t49) goto L_02988BC0; else goto L_02988BA4;
|
|
L_02988BA4: ; // 0x2988ba4
|
|
/* 02988BA4 */ _t50 = cpu->r[3] + 0x00000000u;
|
|
/* 02988BA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t50);
|
|
/* 02988BA8 */ _t51 = cpu->r[12] + 0x00000014u;
|
|
/* 02988BA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02988BAC */ cpu->ctr = cpu->r[0];
|
|
/* 02988BB0 */ cpu->r[4] = cpu->r[23];
|
|
/* 02988BB4 */ cpu->r[5] = cpu->r[24];
|
|
/* 02988BB8 */ cpu->r[6] = cpu->r[23] + 0x00000010u;
|
|
/* 02988BBC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02988BC0: ; // 0x2988bc0
|
|
/* 02988BC0 */ cpu->r[3] = cpu->r[23] + 0x00000010u;
|
|
/* 02988BC4 */ cpu->r[4] = cpu->r[26];
|
|
/* 02988BC8 */ Gambit_fn_02C55078(cpu);
|
|
/* 02988BCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02988BD0 */ _t52 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02988BD0 */ _t53 = _t52 & 0x00000001u;
|
|
/* 02988BD0 */ if (_t53) goto L_02988BD4; else goto L_02988C24;
|
|
L_02988BD4: ; // 0x2988bd4
|
|
/* 02988BD4 */ cpu->r[31] = cpu->r[1] + 0x00000014u;
|
|
L_02988BD8: ; // 0x2988bd8
|
|
/* 02988BD8 */ _t54 = cpu->r[31] + 0x00000004u;
|
|
/* 02988BD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02988BD8 */ cpu->r[31] = _t54;
|
|
/* 02988BDC */ _t55 = cpu->r[23] + 0x00000028u;
|
|
/* 02988BDC */ cpu->r[12] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02988BE0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02988BE4 */ _t56 = cpu->r[23] + 0x0000002Cu;
|
|
/* 02988BE4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02988BE8 */ _t57 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02988BE8 */ _t58 = _t57 & 0x00000001u;
|
|
/* 02988BE8 */ if (_t58) goto L_02988BEC; else goto L_02988BF4;
|
|
L_02988BEC: ; // 0x2988bec
|
|
/* 02988BEC */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x0000006Cu);
|
|
/* 02988BF0 */ cpu->r[10] = cpu->r[10] + cpu->r[0];
|
|
L_02988BF4: ; // 0x2988bf4
|
|
/* 02988BF4 */ _t59 = cpu->r[10] + 0x00000000u;
|
|
/* 02988BF4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t59);
|
|
/* 02988BF8 */ cpu->r[3] = cpu->r[23];
|
|
/* 02988BFC */ cpu->r[4] = cpu->r[24];
|
|
/* 02988C00 */ cpu->r[5] = cpu->r[27];
|
|
/* 02988C04 */ _t60 = cpu->r[1] + 0x00000008u;
|
|
/* 02988C04 */ rbrew_write32(cpu->mem, _t60, cpu->r[6]);
|
|
/* 02988C08 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
/* 02988C0C */ cpu->r[8] = cpu->r[10] + 0x0000000Cu;
|
|
/* 02988C10 */ cpu->r[7] = cpu->r[26];
|
|
/* 02988C14 */ cpu->r[6] = cpu->r[25];
|
|
/* 02988C18 */ Gambit_fn_029889D4(cpu);
|
|
/* 02988C1C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 02988C1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02988C20 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988C20 */ _t62 = _t61 & 0x00000001u;
|
|
/* 02988C20 */ if (_t62) goto L_02988C24; else goto L_02988BD8;
|
|
L_02988C24: ; // 0x2988c24
|
|
/* 02988C24 */ /* nop */
|
|
/* 02988C28 */ _t63 = cpu->r[1] + 0x00000444u;
|
|
/* 02988C28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02988C2C */ cpu->lr = cpu->r[0];
|
|
/* 02988C30 */ cpu->r[1] = cpu->r[1] + 0x00000440u;
|
|
/* 02988C34 */ return;
|
|
}
|
|
|
|
// fn_02988C38 @ 0x2988c38
|
|
void Gambit_fn_02988C38(CPUState* cpu) {
|
|
uint32_t _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_02988C38: ; // 0x2988c38
|
|
/* 02988C38 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02988C38 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02988C38 */ cpu->r[1] = _t0;
|
|
/* 02988C3C */ /* nop */
|
|
/* 02988C40 */ cpu->r[0] = cpu->lr;
|
|
/* 02988C44 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02988C44 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02988C48 */ cpu->r[29] = cpu->r[4];
|
|
/* 02988C4C */ _t2 = cpu->r[29] + 0x00000000u;
|
|
/* 02988C4C */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988C50 */ _t3 = cpu->r[29] + 0x00000004u;
|
|
/* 02988C50 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988C54 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02988C58 */ cpu->r[30] = cpu->r[4] + cpu->r[0];
|
|
/* 02988C5C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[30]);
|
|
/* 02988C60 */ cpu->r[28] = 0x101D0000u;
|
|
/* 02988C64 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988C64 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02988C64 */ if (_t5) goto L_02988CBC; else goto L_02988C68;
|
|
L_02988C68: ; // 0x2988c68
|
|
/* 02988C68 */ cpu->r[26] = 0x00000000u;
|
|
/* 02988C6C */ cpu->r[31] = cpu->r[4];
|
|
L_02988C70: ; // 0x2988c70
|
|
/* 02988C70 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 02988C70 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988C74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02988C78 */ cpu->r[27] = cpu->r[31] + 0x00000004u;
|
|
/* 02988C7C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988C7C */ _t8 = _t7 & 0x00000001u;
|
|
/* 02988C7C */ if (_t8) goto L_02988CAC; else goto L_02988C80;
|
|
L_02988C80: ; // 0x2988c80
|
|
/* 02988C80 */ _t9 = cpu->r[27] + 0x00000000u;
|
|
/* 02988C80 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988C84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02988C88 */ _t10 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02988C88 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02988C8C */ Gambit_fn_02826B90(cpu);
|
|
/* 02988C90 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02988C90 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02988C94 */ _t12 = cpu->r[10] + 0x0000003Cu;
|
|
/* 02988C94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02988C98 */ cpu->ctr = cpu->r[0];
|
|
/* 02988C9C */ _t13 = cpu->r[27] + 0x00000004u;
|
|
/* 02988C9C */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02988CA0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988CA4 */ _t14 = cpu->r[27] + 0x00000000u;
|
|
/* 02988CA4 */ rbrew_write32(cpu->mem, _t14, cpu->r[26]);
|
|
/* 02988CA8 */ _t15 = cpu->r[27] + 0x00000004u;
|
|
/* 02988CA8 */ rbrew_write32(cpu->mem, _t15, cpu->r[26]);
|
|
L_02988CAC: ; // 0x2988cac
|
|
/* 02988CAC */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02988CB0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02988CB4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988CB4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02988CB4 */ if (_t17) goto L_02988CB8; else goto L_02988C70;
|
|
L_02988CB8: ; // 0x2988cb8
|
|
/* 02988CB8 */ _t18 = cpu->r[29] + 0x00000004u;
|
|
/* 02988CB8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t18);
|
|
L_02988CBC: ; // 0x2988cbc
|
|
/* 02988CBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02988CC0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988CC0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02988CC0 */ if (_t20) goto L_02988CF4; else goto L_02988CC4;
|
|
L_02988CC4: ; // 0x2988cc4
|
|
/* 02988CC4 */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 02988CC4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02988CC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02988CCC */ _t22 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02988CCC */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02988CD0 */ Gambit_fn_02826B90(cpu);
|
|
/* 02988CD4 */ _t23 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02988CD4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02988CD8 */ _t24 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02988CD8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02988CDC */ cpu->ctr = cpu->r[7];
|
|
/* 02988CE0 */ _t25 = cpu->r[29] + 0x00000004u;
|
|
/* 02988CE0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02988CE4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988CE8 */ cpu->r[8] = 0x00000000u;
|
|
/* 02988CEC */ _t26 = cpu->r[29] + 0x00000000u;
|
|
/* 02988CEC */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 02988CF0 */ _t27 = cpu->r[29] + 0x00000004u;
|
|
/* 02988CF0 */ rbrew_write32(cpu->mem, _t27, cpu->r[8]);
|
|
L_02988CF4: ; // 0x2988cf4
|
|
/* 02988CF4 */ /* nop */
|
|
/* 02988CF8 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 02988CF8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02988CFC */ cpu->lr = cpu->r[0];
|
|
/* 02988D00 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02988D04 */ return;
|
|
}
|
|
|
|
// fn_02988D08 @ 0x2988d08
|
|
void Gambit_fn_02988D08(CPUState* cpu) {
|
|
uint32_t _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_02988D08: ; // 0x2988d08
|
|
/* 02988D08 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02988D08 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02988D08 */ cpu->r[1] = _t0;
|
|
/* 02988D0C */ /* nop */
|
|
/* 02988D10 */ cpu->r[0] = cpu->lr;
|
|
/* 02988D14 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02988D14 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02988D18 */ cpu->r[29] = cpu->r[4];
|
|
/* 02988D1C */ _t2 = cpu->r[29] + 0x00000000u;
|
|
/* 02988D1C */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988D20 */ _t3 = cpu->r[29] + 0x00000004u;
|
|
/* 02988D20 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988D24 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02988D28 */ cpu->r[30] = cpu->r[4] + cpu->r[0];
|
|
/* 02988D2C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[30]);
|
|
/* 02988D30 */ cpu->r[28] = 0x101D0000u;
|
|
/* 02988D34 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988D34 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02988D34 */ if (_t5) goto L_02988D8C; else goto L_02988D38;
|
|
L_02988D38: ; // 0x2988d38
|
|
/* 02988D38 */ cpu->r[26] = 0x00000000u;
|
|
/* 02988D3C */ cpu->r[31] = cpu->r[4];
|
|
L_02988D40: ; // 0x2988d40
|
|
/* 02988D40 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 02988D40 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988D44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02988D48 */ cpu->r[27] = cpu->r[31] + 0x00000004u;
|
|
/* 02988D4C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988D4C */ _t8 = _t7 & 0x00000001u;
|
|
/* 02988D4C */ if (_t8) goto L_02988D7C; else goto L_02988D50;
|
|
L_02988D50: ; // 0x2988d50
|
|
/* 02988D50 */ _t9 = cpu->r[27] + 0x00000000u;
|
|
/* 02988D50 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988D54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02988D58 */ _t10 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02988D58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02988D5C */ Gambit_fn_02826B90(cpu);
|
|
/* 02988D60 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02988D60 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02988D64 */ _t12 = cpu->r[10] + 0x0000003Cu;
|
|
/* 02988D64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02988D68 */ cpu->ctr = cpu->r[0];
|
|
/* 02988D6C */ _t13 = cpu->r[27] + 0x00000004u;
|
|
/* 02988D6C */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02988D70 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988D74 */ _t14 = cpu->r[27] + 0x00000000u;
|
|
/* 02988D74 */ rbrew_write32(cpu->mem, _t14, cpu->r[26]);
|
|
/* 02988D78 */ _t15 = cpu->r[27] + 0x00000004u;
|
|
/* 02988D78 */ rbrew_write32(cpu->mem, _t15, cpu->r[26]);
|
|
L_02988D7C: ; // 0x2988d7c
|
|
/* 02988D7C */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02988D80 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02988D84 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988D84 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02988D84 */ if (_t17) goto L_02988D88; else goto L_02988D40;
|
|
L_02988D88: ; // 0x2988d88
|
|
/* 02988D88 */ _t18 = cpu->r[29] + 0x00000004u;
|
|
/* 02988D88 */ cpu->r[4] = rbrew_read32(cpu->mem, _t18);
|
|
L_02988D8C: ; // 0x2988d8c
|
|
/* 02988D8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02988D90 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988D90 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02988D90 */ if (_t20) goto L_02988DC4; else goto L_02988D94;
|
|
L_02988D94: ; // 0x2988d94
|
|
/* 02988D94 */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 02988D94 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02988D98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02988D9C */ _t22 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02988D9C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02988DA0 */ Gambit_fn_02826B90(cpu);
|
|
/* 02988DA4 */ _t23 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02988DA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02988DA8 */ _t24 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02988DA8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02988DAC */ cpu->ctr = cpu->r[7];
|
|
/* 02988DB0 */ _t25 = cpu->r[29] + 0x00000004u;
|
|
/* 02988DB0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02988DB4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988DB8 */ cpu->r[8] = 0x00000000u;
|
|
/* 02988DBC */ _t26 = cpu->r[29] + 0x00000000u;
|
|
/* 02988DBC */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 02988DC0 */ _t27 = cpu->r[29] + 0x00000004u;
|
|
/* 02988DC0 */ rbrew_write32(cpu->mem, _t27, cpu->r[8]);
|
|
L_02988DC4: ; // 0x2988dc4
|
|
/* 02988DC4 */ /* nop */
|
|
/* 02988DC8 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 02988DC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02988DCC */ cpu->lr = cpu->r[0];
|
|
/* 02988DD0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02988DD4 */ return;
|
|
}
|
|
|
|
// fn_02988DD8 @ 0x2988dd8
|
|
void Gambit_fn_02988DD8(CPUState* cpu) {
|
|
uint32_t _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_02988DD8: ; // 0x2988dd8
|
|
/* 02988DD8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02988DD8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02988DD8 */ cpu->r[1] = _t0;
|
|
/* 02988DDC */ /* nop */
|
|
/* 02988DE0 */ cpu->r[0] = cpu->lr;
|
|
/* 02988DE4 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02988DE4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02988DE8 */ cpu->r[29] = cpu->r[4];
|
|
/* 02988DEC */ _t2 = cpu->r[29] + 0x00000000u;
|
|
/* 02988DEC */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988DF0 */ _t3 = cpu->r[29] + 0x00000004u;
|
|
/* 02988DF0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988DF4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02988DF8 */ cpu->r[30] = cpu->r[4] + cpu->r[0];
|
|
/* 02988DFC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[30]);
|
|
/* 02988E00 */ cpu->r[28] = 0x101D0000u;
|
|
/* 02988E04 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988E04 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02988E04 */ if (_t5) goto L_02988E5C; else goto L_02988E08;
|
|
L_02988E08: ; // 0x2988e08
|
|
/* 02988E08 */ cpu->r[26] = 0x00000000u;
|
|
/* 02988E0C */ cpu->r[31] = cpu->r[4];
|
|
L_02988E10: ; // 0x2988e10
|
|
/* 02988E10 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 02988E10 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988E14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02988E18 */ cpu->r[27] = cpu->r[31] + 0x00000004u;
|
|
/* 02988E1C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988E1C */ _t8 = _t7 & 0x00000001u;
|
|
/* 02988E1C */ if (_t8) goto L_02988E4C; else goto L_02988E20;
|
|
L_02988E20: ; // 0x2988e20
|
|
/* 02988E20 */ _t9 = cpu->r[27] + 0x00000000u;
|
|
/* 02988E20 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988E24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02988E28 */ _t10 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02988E28 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02988E2C */ Gambit_fn_02826B90(cpu);
|
|
/* 02988E30 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02988E30 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02988E34 */ _t12 = cpu->r[10] + 0x0000003Cu;
|
|
/* 02988E34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02988E38 */ cpu->ctr = cpu->r[0];
|
|
/* 02988E3C */ _t13 = cpu->r[27] + 0x00000004u;
|
|
/* 02988E3C */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02988E40 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988E44 */ _t14 = cpu->r[27] + 0x00000000u;
|
|
/* 02988E44 */ rbrew_write32(cpu->mem, _t14, cpu->r[26]);
|
|
/* 02988E48 */ _t15 = cpu->r[27] + 0x00000004u;
|
|
/* 02988E48 */ rbrew_write32(cpu->mem, _t15, cpu->r[26]);
|
|
L_02988E4C: ; // 0x2988e4c
|
|
/* 02988E4C */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02988E50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02988E54 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988E54 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02988E54 */ if (_t17) goto L_02988E58; else goto L_02988E10;
|
|
L_02988E58: ; // 0x2988e58
|
|
/* 02988E58 */ _t18 = cpu->r[29] + 0x00000004u;
|
|
/* 02988E58 */ cpu->r[4] = rbrew_read32(cpu->mem, _t18);
|
|
L_02988E5C: ; // 0x2988e5c
|
|
/* 02988E5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02988E60 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988E60 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02988E60 */ if (_t20) goto L_02988E94; else goto L_02988E64;
|
|
L_02988E64: ; // 0x2988e64
|
|
/* 02988E64 */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 02988E64 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02988E68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02988E6C */ _t22 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02988E6C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02988E70 */ Gambit_fn_02826B90(cpu);
|
|
/* 02988E74 */ _t23 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02988E74 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02988E78 */ _t24 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02988E78 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02988E7C */ cpu->ctr = cpu->r[7];
|
|
/* 02988E80 */ _t25 = cpu->r[29] + 0x00000004u;
|
|
/* 02988E80 */ cpu->r[4] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02988E84 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988E88 */ cpu->r[8] = 0x00000000u;
|
|
/* 02988E8C */ _t26 = cpu->r[29] + 0x00000000u;
|
|
/* 02988E8C */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 02988E90 */ _t27 = cpu->r[29] + 0x00000004u;
|
|
/* 02988E90 */ rbrew_write32(cpu->mem, _t27, cpu->r[8]);
|
|
L_02988E94: ; // 0x2988e94
|
|
/* 02988E94 */ /* nop */
|
|
/* 02988E98 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 02988E98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02988E9C */ cpu->lr = cpu->r[0];
|
|
/* 02988EA0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02988EA4 */ return;
|
|
}
|
|
|
|
// fn_02988EA8 @ 0x2988ea8
|
|
void Gambit_fn_02988EA8(CPUState* cpu) {
|
|
uint32_t _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_02988EA8: ; // 0x2988ea8
|
|
/* 02988EA8 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02988EA8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02988EA8 */ cpu->r[1] = _t0;
|
|
/* 02988EAC */ /* nop */
|
|
/* 02988EB0 */ cpu->r[0] = cpu->lr;
|
|
/* 02988EB4 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02988EB4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02988EB8 */ cpu->r[29] = cpu->r[4];
|
|
/* 02988EBC */ _t2 = cpu->r[29] + 0x00000000u;
|
|
/* 02988EBC */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988EC0 */ _t3 = cpu->r[29] + 0x00000004u;
|
|
/* 02988EC0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988EC4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02988EC8 */ cpu->r[30] = cpu->r[4] + cpu->r[0];
|
|
/* 02988ECC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[30]);
|
|
/* 02988ED0 */ cpu->r[28] = 0x101D0000u;
|
|
/* 02988ED4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988ED4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02988ED4 */ if (_t5) goto L_02988F2C; else goto L_02988ED8;
|
|
L_02988ED8: ; // 0x2988ed8
|
|
/* 02988ED8 */ cpu->r[26] = 0x00000000u;
|
|
/* 02988EDC */ cpu->r[31] = cpu->r[4];
|
|
L_02988EE0: ; // 0x2988ee0
|
|
/* 02988EE0 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 02988EE0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988EE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02988EE8 */ cpu->r[27] = cpu->r[31] + 0x00000004u;
|
|
/* 02988EEC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988EEC */ _t8 = _t7 & 0x00000001u;
|
|
/* 02988EEC */ if (_t8) goto L_02988F1C; else goto L_02988EF0;
|
|
L_02988EF0: ; // 0x2988ef0
|
|
/* 02988EF0 */ _t9 = cpu->r[27] + 0x00000000u;
|
|
/* 02988EF0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988EF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02988EF8 */ _t10 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02988EF8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02988EFC */ Gambit_fn_02826B90(cpu);
|
|
/* 02988F00 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02988F00 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02988F04 */ _t12 = cpu->r[10] + 0x0000003Cu;
|
|
/* 02988F04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02988F08 */ cpu->ctr = cpu->r[0];
|
|
/* 02988F0C */ _t13 = cpu->r[27] + 0x00000004u;
|
|
/* 02988F0C */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02988F10 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988F14 */ _t14 = cpu->r[27] + 0x00000000u;
|
|
/* 02988F14 */ rbrew_write32(cpu->mem, _t14, cpu->r[26]);
|
|
/* 02988F18 */ _t15 = cpu->r[27] + 0x00000004u;
|
|
/* 02988F18 */ rbrew_write32(cpu->mem, _t15, cpu->r[26]);
|
|
L_02988F1C: ; // 0x2988f1c
|
|
/* 02988F1C */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02988F20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02988F24 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988F24 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02988F24 */ if (_t17) goto L_02988F28; else goto L_02988EE0;
|
|
L_02988F28: ; // 0x2988f28
|
|
/* 02988F28 */ _t18 = cpu->r[29] + 0x00000004u;
|
|
/* 02988F28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t18);
|
|
L_02988F2C: ; // 0x2988f2c
|
|
/* 02988F2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02988F30 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988F30 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02988F30 */ if (_t20) goto L_02988F64; else goto L_02988F34;
|
|
L_02988F34: ; // 0x2988f34
|
|
/* 02988F34 */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 02988F34 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02988F38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02988F3C */ _t22 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02988F3C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02988F40 */ Gambit_fn_02826B90(cpu);
|
|
/* 02988F44 */ _t23 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02988F44 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02988F48 */ _t24 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02988F48 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02988F4C */ cpu->ctr = cpu->r[7];
|
|
/* 02988F50 */ _t25 = cpu->r[29] + 0x00000004u;
|
|
/* 02988F50 */ cpu->r[4] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02988F54 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988F58 */ cpu->r[8] = 0x00000000u;
|
|
/* 02988F5C */ _t26 = cpu->r[29] + 0x00000000u;
|
|
/* 02988F5C */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 02988F60 */ _t27 = cpu->r[29] + 0x00000004u;
|
|
/* 02988F60 */ rbrew_write32(cpu->mem, _t27, cpu->r[8]);
|
|
L_02988F64: ; // 0x2988f64
|
|
/* 02988F64 */ /* nop */
|
|
/* 02988F68 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 02988F68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02988F6C */ cpu->lr = cpu->r[0];
|
|
/* 02988F70 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02988F74 */ return;
|
|
}
|
|
|
|
// fn_02988F78 @ 0x2988f78
|
|
void Gambit_fn_02988F78(CPUState* cpu) {
|
|
uint32_t _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_02988F78: ; // 0x2988f78
|
|
/* 02988F78 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02988F78 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02988F78 */ cpu->r[1] = _t0;
|
|
/* 02988F7C */ /* nop */
|
|
/* 02988F80 */ cpu->r[0] = cpu->lr;
|
|
/* 02988F84 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02988F84 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02988F88 */ cpu->r[29] = cpu->r[4];
|
|
/* 02988F8C */ _t2 = cpu->r[29] + 0x00000000u;
|
|
/* 02988F8C */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02988F90 */ _t3 = cpu->r[29] + 0x00000004u;
|
|
/* 02988F90 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02988F94 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02988F98 */ cpu->r[30] = cpu->r[4] + cpu->r[0];
|
|
/* 02988F9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[30]);
|
|
/* 02988FA0 */ cpu->r[28] = 0x101D0000u;
|
|
/* 02988FA4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988FA4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02988FA4 */ if (_t5) goto L_02988FFC; else goto L_02988FA8;
|
|
L_02988FA8: ; // 0x2988fa8
|
|
/* 02988FA8 */ cpu->r[26] = 0x00000000u;
|
|
/* 02988FAC */ cpu->r[31] = cpu->r[4];
|
|
L_02988FB0: ; // 0x2988fb0
|
|
/* 02988FB0 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 02988FB0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02988FB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02988FB8 */ cpu->r[27] = cpu->r[31] + 0x00000004u;
|
|
/* 02988FBC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988FBC */ _t8 = _t7 & 0x00000001u;
|
|
/* 02988FBC */ if (_t8) goto L_02988FEC; else goto L_02988FC0;
|
|
L_02988FC0: ; // 0x2988fc0
|
|
/* 02988FC0 */ _t9 = cpu->r[27] + 0x00000000u;
|
|
/* 02988FC0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02988FC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02988FC8 */ _t10 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02988FC8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02988FCC */ Gambit_fn_02826B90(cpu);
|
|
/* 02988FD0 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02988FD0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02988FD4 */ _t12 = cpu->r[10] + 0x0000003Cu;
|
|
/* 02988FD4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02988FD8 */ cpu->ctr = cpu->r[0];
|
|
/* 02988FDC */ _t13 = cpu->r[27] + 0x00000004u;
|
|
/* 02988FDC */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02988FE0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02988FE4 */ _t14 = cpu->r[27] + 0x00000000u;
|
|
/* 02988FE4 */ rbrew_write32(cpu->mem, _t14, cpu->r[26]);
|
|
/* 02988FE8 */ _t15 = cpu->r[27] + 0x00000004u;
|
|
/* 02988FE8 */ rbrew_write32(cpu->mem, _t15, cpu->r[26]);
|
|
L_02988FEC: ; // 0x2988fec
|
|
/* 02988FEC */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 02988FF0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 02988FF4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02988FF4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02988FF4 */ if (_t17) goto L_02988FF8; else goto L_02988FB0;
|
|
L_02988FF8: ; // 0x2988ff8
|
|
/* 02988FF8 */ _t18 = cpu->r[29] + 0x00000004u;
|
|
/* 02988FF8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t18);
|
|
L_02988FFC: ; // 0x2988ffc
|
|
/* 02988FFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02989000 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989000 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02989000 */ if (_t20) goto L_02989034; else goto L_02989004;
|
|
L_02989004: ; // 0x2989004
|
|
/* 02989004 */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 02989004 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02989008 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298900C */ _t22 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 0298900C */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02989010 */ Gambit_fn_02826B90(cpu);
|
|
/* 02989014 */ _t23 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02989014 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02989018 */ _t24 = cpu->r[12] + 0x0000003Cu;
|
|
/* 02989018 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298901C */ cpu->ctr = cpu->r[7];
|
|
/* 02989020 */ _t25 = cpu->r[29] + 0x00000004u;
|
|
/* 02989020 */ cpu->r[4] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02989024 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989028 */ cpu->r[8] = 0x00000000u;
|
|
/* 0298902C */ _t26 = cpu->r[29] + 0x00000000u;
|
|
/* 0298902C */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 02989030 */ _t27 = cpu->r[29] + 0x00000004u;
|
|
/* 02989030 */ rbrew_write32(cpu->mem, _t27, cpu->r[8]);
|
|
L_02989034: ; // 0x2989034
|
|
/* 02989034 */ /* nop */
|
|
/* 02989038 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 02989038 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298903C */ cpu->lr = cpu->r[0];
|
|
/* 02989040 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02989044 */ return;
|
|
}
|
|
|
|
// fn_02989048 @ 0x2989048
|
|
void Gambit_fn_02989048(CPUState* cpu) {
|
|
uint32_t _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_02989048: ; // 0x2989048
|
|
/* 02989048 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 02989048 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989048 */ cpu->r[1] = _t0;
|
|
/* 0298904C */ /* nop */
|
|
/* 02989050 */ cpu->r[0] = cpu->lr;
|
|
/* 02989054 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 02989054 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02989058 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298905C */ _t2 = cpu->r[29] + 0x00000000u;
|
|
/* 0298905C */ cpu->r[9] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02989060 */ _t3 = cpu->r[29] + 0x00000004u;
|
|
/* 02989060 */ cpu->r[4] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02989064 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[9] * (int32_t)0x0000000Cu);
|
|
/* 02989068 */ cpu->r[30] = cpu->r[4] + cpu->r[0];
|
|
/* 0298906C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[30]);
|
|
/* 02989070 */ cpu->r[28] = 0x101D0000u;
|
|
/* 02989074 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989074 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02989074 */ if (_t5) goto L_029890CC; else goto L_02989078;
|
|
L_02989078: ; // 0x2989078
|
|
/* 02989078 */ cpu->r[26] = 0x00000000u;
|
|
/* 0298907C */ cpu->r[31] = cpu->r[4];
|
|
L_02989080: ; // 0x2989080
|
|
/* 02989080 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 02989080 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02989084 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02989088 */ cpu->r[27] = cpu->r[31] + 0x00000004u;
|
|
/* 0298908C */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298908C */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298908C */ if (_t8) goto L_029890BC; else goto L_02989090;
|
|
L_02989090: ; // 0x2989090
|
|
/* 02989090 */ _t9 = cpu->r[27] + 0x00000000u;
|
|
/* 02989090 */ cpu->r[11] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02989094 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02989098 */ _t10 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 02989098 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298909C */ Gambit_fn_02826B90(cpu);
|
|
/* 029890A0 */ _t11 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029890A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029890A4 */ _t12 = cpu->r[10] + 0x0000003Cu;
|
|
/* 029890A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029890A8 */ cpu->ctr = cpu->r[0];
|
|
/* 029890AC */ _t13 = cpu->r[27] + 0x00000004u;
|
|
/* 029890AC */ cpu->r[4] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029890B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029890B4 */ _t14 = cpu->r[27] + 0x00000000u;
|
|
/* 029890B4 */ rbrew_write32(cpu->mem, _t14, cpu->r[26]);
|
|
/* 029890B8 */ _t15 = cpu->r[27] + 0x00000004u;
|
|
/* 029890B8 */ rbrew_write32(cpu->mem, _t15, cpu->r[26]);
|
|
L_029890BC: ; // 0x29890bc
|
|
/* 029890BC */ cpu->r[31] = cpu->r[31] + 0x0000000Cu;
|
|
/* 029890C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[30]);
|
|
/* 029890C4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029890C4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 029890C4 */ if (_t17) goto L_029890C8; else goto L_02989080;
|
|
L_029890C8: ; // 0x29890c8
|
|
/* 029890C8 */ _t18 = cpu->r[29] + 0x00000004u;
|
|
/* 029890C8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t18);
|
|
L_029890CC: ; // 0x29890cc
|
|
/* 029890CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 029890D0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029890D0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 029890D0 */ if (_t20) goto L_02989104; else goto L_029890D4;
|
|
L_029890D4: ; // 0x29890d4
|
|
/* 029890D4 */ _t21 = cpu->r[29] + 0x00000000u;
|
|
/* 029890D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029890D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029890DC */ _t22 = cpu->r[28] + 0xFFFF98F0u;
|
|
/* 029890DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029890E0 */ Gambit_fn_02826B90(cpu);
|
|
/* 029890E4 */ _t23 = cpu->r[3] + 0x0000000Cu;
|
|
/* 029890E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029890E8 */ _t24 = cpu->r[12] + 0x0000003Cu;
|
|
/* 029890E8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029890EC */ cpu->ctr = cpu->r[7];
|
|
/* 029890F0 */ _t25 = cpu->r[29] + 0x00000004u;
|
|
/* 029890F0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029890F4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029890F8 */ cpu->r[8] = 0x00000000u;
|
|
/* 029890FC */ _t26 = cpu->r[29] + 0x00000000u;
|
|
/* 029890FC */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 02989100 */ _t27 = cpu->r[29] + 0x00000004u;
|
|
/* 02989100 */ rbrew_write32(cpu->mem, _t27, cpu->r[8]);
|
|
L_02989104: ; // 0x2989104
|
|
/* 02989104 */ /* nop */
|
|
/* 02989108 */ _t28 = cpu->r[1] + 0x00000024u;
|
|
/* 02989108 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298910C */ cpu->lr = cpu->r[0];
|
|
/* 02989110 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02989114 */ return;
|
|
}
|
|
|
|
// fn_02989118 @ 0x2989118
|
|
void Gambit_fn_02989118(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_02989118: ; // 0x2989118
|
|
/* 02989118 */ _t0 = cpu->r[3] + 0x00000030u;
|
|
/* 02989118 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298911C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 02989120 */ _t1 = cpu->r[3] + 0x00000034u;
|
|
/* 02989120 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02989124 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989124 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02989124 */ if (_t3) goto L_02989128; else goto L_02989130;
|
|
L_02989128: ; // 0x2989128
|
|
/* 02989128 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000001Cu);
|
|
/* 0298912C */ cpu->r[12] = cpu->r[12] + cpu->r[0];
|
|
L_02989130: ; // 0x2989130
|
|
/* 02989130 */ _t4 = cpu->r[12] + 0x00000008u;
|
|
/* 02989130 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02989134 */ return;
|
|
}
|
|
|
|
// fn_02989138 @ 0x2989138
|
|
void Gambit_fn_02989138(CPUState* cpu) {
|
|
uint32_t _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_02989138: ; // 0x2989138
|
|
/* 02989138 */ cpu->r[0] = cpu->lr;
|
|
/* 0298913C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298913C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298913C */ cpu->r[1] = _t0;
|
|
/* 02989140 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02989140 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02989144 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02989144 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02989148 */ cpu->r[31] = cpu->r[3];
|
|
/* 02989148 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298914C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298914C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02989150 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989150 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02989150 */ if (_t5) goto L_02989154; else goto L_02989164;
|
|
L_02989154: ; // 0x2989154
|
|
/* 02989154 */ cpu->r[3] = 0x00000010u;
|
|
/* 02989158 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298915C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298915C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989160 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989160 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02989160 */ if (_t7) goto L_029891B4; else goto L_02989164;
|
|
L_02989164: ; // 0x2989164
|
|
/* 02989164 */ cpu->r[0] = 0x10150000u;
|
|
/* 02989168 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298916C */ cpu->r[0] = cpu->r[0] + 0xFFFFEE8Cu;
|
|
/* 02989170 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 02989170 */ rbrew_write16(cpu->mem, _t8, (uint16_t)cpu->r[30]);
|
|
/* 02989174 */ cpu->r[3] = cpu->r[31] + 0x00000002u;
|
|
/* 02989174 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989178 */ _t9 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02989178 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 0298917C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298917C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298917C */ if (_t11) goto L_02989180; else goto L_02989190;
|
|
L_02989180: ; // 0x2989180
|
|
/* 02989180 */ cpu->r[3] = 0x00000002u;
|
|
/* 02989184 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989188 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298918C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298918C */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298918C */ if (_t13) goto L_02989194; else goto L_02989190;
|
|
L_02989190: ; // 0x2989190
|
|
/* 02989190 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 02989190 */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[30]);
|
|
L_02989194: ; // 0x2989194
|
|
/* 02989194 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 02989194 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989198 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989198 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02989198 */ if (_t16) goto L_0298919C; else goto L_029891AC;
|
|
L_0298919C: ; // 0x298919c
|
|
/* 0298919C */ cpu->r[3] = 0x00000008u;
|
|
/* 029891A0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029891A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029891A8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029891A8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 029891A8 */ if (_t18) goto L_029891B4; else goto L_029891AC;
|
|
L_029891AC: ; // 0x29891ac
|
|
/* 029891AC */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 029891AC */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 029891B0 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 029891B0 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
L_029891B4: ; // 0x29891b4
|
|
/* 029891B4 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 029891B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029891B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029891BC */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029891BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029891C0 */ cpu->lr = cpu->r[0];
|
|
/* 029891C4 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 029891C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029891C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029891CC */ return;
|
|
}
|
|
|
|
// fn_0298913C @ 0x298913c
|
|
void Gambit_fn_0298913C(CPUState* cpu) {
|
|
uint32_t _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_0298913C: ; // 0x298913c
|
|
/* 0298913C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298913C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298913C */ cpu->r[1] = _t0;
|
|
/* 02989140 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02989140 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02989144 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02989144 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02989148 */ cpu->r[31] = cpu->r[3];
|
|
/* 02989148 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298914C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298914C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02989150 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989150 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02989150 */ if (_t5) goto L_02989154; else goto L_02989164;
|
|
L_02989154: ; // 0x2989154
|
|
/* 02989154 */ cpu->r[3] = 0x00000010u;
|
|
/* 02989158 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298915C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298915C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989160 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989160 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02989160 */ if (_t7) goto L_029891B4; else goto L_02989164;
|
|
L_02989164: ; // 0x2989164
|
|
/* 02989164 */ cpu->r[0] = 0x10150000u;
|
|
/* 02989168 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298916C */ cpu->r[0] = cpu->r[0] + 0xFFFFEE8Cu;
|
|
/* 02989170 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 02989170 */ rbrew_write16(cpu->mem, _t8, (uint16_t)cpu->r[30]);
|
|
/* 02989174 */ cpu->r[3] = cpu->r[31] + 0x00000002u;
|
|
/* 02989174 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989178 */ _t9 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02989178 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
/* 0298917C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298917C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298917C */ if (_t11) goto L_02989180; else goto L_02989190;
|
|
L_02989180: ; // 0x2989180
|
|
/* 02989180 */ cpu->r[3] = 0x00000002u;
|
|
/* 02989184 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989188 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298918C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298918C */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298918C */ if (_t13) goto L_02989194; else goto L_02989190;
|
|
L_02989190: ; // 0x2989190
|
|
/* 02989190 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 02989190 */ rbrew_write16(cpu->mem, _t14, (uint16_t)cpu->r[30]);
|
|
L_02989194: ; // 0x2989194
|
|
/* 02989194 */ cpu->r[3] = cpu->r[31] + 0x00000004u;
|
|
/* 02989194 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989198 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989198 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02989198 */ if (_t16) goto L_0298919C; else goto L_029891AC;
|
|
L_0298919C: ; // 0x298919c
|
|
/* 0298919C */ cpu->r[3] = 0x00000008u;
|
|
/* 029891A0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029891A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029891A8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029891A8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 029891A8 */ if (_t18) goto L_029891B4; else goto L_029891AC;
|
|
L_029891AC: ; // 0x29891ac
|
|
/* 029891AC */ _t19 = cpu->r[3] + 0x00000004u;
|
|
/* 029891AC */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
/* 029891B0 */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 029891B0 */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
L_029891B4: ; // 0x29891b4
|
|
/* 029891B4 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 029891B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029891B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029891BC */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029891BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029891C0 */ cpu->lr = cpu->r[0];
|
|
/* 029891C4 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 029891C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029891C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029891CC */ return;
|
|
}
|
|
|
|
// fn_029891D0 @ 0x29891d0
|
|
void Gambit_fn_029891D0(CPUState* cpu) {
|
|
uint32_t _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_029891D0: ; // 0x29891d0
|
|
/* 029891D0 */ cpu->r[0] = cpu->lr;
|
|
/* 029891D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029891D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029891D4 */ cpu->r[1] = _t0;
|
|
/* 029891D8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029891D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029891DC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 029891DC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 029891E0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029891E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029891E4 */ cpu->r[31] = cpu->r[4];
|
|
/* 029891E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029891E8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029891E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029891EC */ cpu->r[29] = cpu->r[5];
|
|
/* 029891F0 */ cpu->r[30] = cpu->r[3];
|
|
/* 029891F4 */ cpu->r[3] = cpu->r[29];
|
|
/* 029891F8 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029891F8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 029891F8 */ if (_t6) goto L_029891FC; else goto L_02989248;
|
|
L_029891FC: ; // 0x29891fc
|
|
/* 029891FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989200 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989200 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02989200 */ if (_t8) goto L_02989204; else goto L_02989210;
|
|
L_02989204: ; // 0x2989204
|
|
/* 02989204 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02989208 */ _t9 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02989208 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298920C */ Gambit_fn_02826F20(cpu);
|
|
L_02989210: ; // 0x2989210
|
|
/* 02989210 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02989210 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02989214 */ _t11 = cpu->r[11] + 0x00000034u;
|
|
/* 02989214 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02989218 */ cpu->ctr = cpu->r[0];
|
|
/* 0298921C */ cpu->r[5] = 0x00000004u;
|
|
/* 02989220 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 02989224 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298922C */ cpu->r[0] = cpu->r[31];
|
|
/* 02989230 */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02989230 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02989230 */ if (_t13) goto L_02989238; else goto L_02989234;
|
|
L_02989234: ; // 0x2989234
|
|
/* 02989234 */ cpu->r[0] = 0x00000001u;
|
|
L_02989238: ; // 0x2989238
|
|
/* 02989238 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298923C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298923C */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298923C */ if (_t15) goto L_02989248; else goto L_02989240;
|
|
L_02989240: ; // 0x2989240
|
|
/* 02989240 */ _t16 = cpu->r[30] + 0x00000008u;
|
|
/* 02989240 */ rbrew_write32(cpu->mem, _t16, cpu->r[3]);
|
|
/* 02989244 */ _t17 = cpu->r[30] + 0x00000004u;
|
|
/* 02989244 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
L_02989248: ; // 0x2989248
|
|
/* 02989248 */ _t18 = cpu->r[30] + 0x0000000Cu;
|
|
/* 02989248 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298924C */ _t19 = cpu->r[9] + 0x00000014u;
|
|
/* 0298924C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02989250 */ cpu->ctr = cpu->r[0];
|
|
/* 02989254 */ cpu->r[3] = cpu->r[30];
|
|
/* 02989258 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298925C */ cpu->r[5] = cpu->r[29];
|
|
/* 02989260 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989264 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02989264 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02989268 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02989268 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298926C */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 0298926C */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02989270 */ cpu->lr = cpu->r[0];
|
|
/* 02989274 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 02989274 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02989278 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298927C */ return;
|
|
}
|
|
|
|
// fn_029891D4 @ 0x29891d4
|
|
void Gambit_fn_029891D4(CPUState* cpu) {
|
|
uint32_t _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_029891D4: ; // 0x29891d4
|
|
/* 029891D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029891D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029891D4 */ cpu->r[1] = _t0;
|
|
/* 029891D8 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029891D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029891DC */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 029891DC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 029891E0 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029891E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029891E4 */ cpu->r[31] = cpu->r[4];
|
|
/* 029891E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029891E8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029891E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029891EC */ cpu->r[29] = cpu->r[5];
|
|
/* 029891F0 */ cpu->r[30] = cpu->r[3];
|
|
/* 029891F4 */ cpu->r[3] = cpu->r[29];
|
|
/* 029891F8 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029891F8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 029891F8 */ if (_t6) goto L_029891FC; else goto L_02989248;
|
|
L_029891FC: ; // 0x29891fc
|
|
/* 029891FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989200 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989200 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02989200 */ if (_t8) goto L_02989204; else goto L_02989210;
|
|
L_02989204: ; // 0x2989204
|
|
/* 02989204 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02989208 */ _t9 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02989208 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298920C */ Gambit_fn_02826F20(cpu);
|
|
L_02989210: ; // 0x2989210
|
|
/* 02989210 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02989210 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02989214 */ _t11 = cpu->r[11] + 0x00000034u;
|
|
/* 02989214 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02989218 */ cpu->ctr = cpu->r[0];
|
|
/* 0298921C */ cpu->r[5] = 0x00000004u;
|
|
/* 02989220 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 02989224 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298922C */ cpu->r[0] = cpu->r[31];
|
|
/* 02989230 */ _t12 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02989230 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02989230 */ if (_t13) goto L_02989238; else goto L_02989234;
|
|
L_02989234: ; // 0x2989234
|
|
/* 02989234 */ cpu->r[0] = 0x00000001u;
|
|
L_02989238: ; // 0x2989238
|
|
/* 02989238 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298923C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298923C */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298923C */ if (_t15) goto L_02989248; else goto L_02989240;
|
|
L_02989240: ; // 0x2989240
|
|
/* 02989240 */ _t16 = cpu->r[30] + 0x00000008u;
|
|
/* 02989240 */ rbrew_write32(cpu->mem, _t16, cpu->r[3]);
|
|
/* 02989244 */ _t17 = cpu->r[30] + 0x00000004u;
|
|
/* 02989244 */ rbrew_write32(cpu->mem, _t17, cpu->r[31]);
|
|
L_02989248: ; // 0x2989248
|
|
/* 02989248 */ _t18 = cpu->r[30] + 0x0000000Cu;
|
|
/* 02989248 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298924C */ _t19 = cpu->r[9] + 0x00000014u;
|
|
/* 0298924C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02989250 */ cpu->ctr = cpu->r[0];
|
|
/* 02989254 */ cpu->r[3] = cpu->r[30];
|
|
/* 02989258 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298925C */ cpu->r[5] = cpu->r[29];
|
|
/* 02989260 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989264 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02989264 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02989268 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02989268 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298926C */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 0298926C */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02989270 */ cpu->lr = cpu->r[0];
|
|
/* 02989274 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 02989274 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02989278 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298927C */ return;
|
|
}
|
|
|
|
// fn_02989280 @ 0x2989280
|
|
void Gambit_fn_02989280(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_02989280: ; // 0x2989280
|
|
/* 02989280 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 02989280 */ cpu->r[8] = rbrew_read16(cpu->mem, _t0);
|
|
/* 02989284 */ _t1 = cpu->r[3] + 0x00000004u;
|
|
/* 02989284 */ cpu->r[10] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02989288 */ cpu->r[0] = cpu->r[8];
|
|
/* 0298928C */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 02989290 */ _t2 = cpu->r[3] + 0x00000008u;
|
|
/* 02989290 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02989294 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 02989298 */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 02989298 */ rbrew_write16(cpu->mem, _t3, (uint16_t)cpu->r[8]);
|
|
/* 0298929C */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298929C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298929C */ if (_t5) goto L_029892A0; else goto L_029892A8;
|
|
L_029892A0: ; // 0x29892a0
|
|
/* 029892A0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 029892A4 */ cpu->r[12] = cpu->r[12] + cpu->r[9];
|
|
L_029892A8: ; // 0x29892a8
|
|
/* 029892A8 */ _t6 = cpu->r[12] + 0x00000000u;
|
|
/* 029892A8 */ rbrew_write32(cpu->mem, _t6, cpu->r[4]);
|
|
/* 029892AC */ _t7 = cpu->r[12] + 0x00000004u;
|
|
/* 029892AC */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[5]);
|
|
/* 029892B0 */ return;
|
|
}
|
|
|
|
// fn_029892B4 @ 0x29892b4
|
|
void Gambit_fn_029892B4(CPUState* cpu) {
|
|
uint32_t _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_029892B4: ; // 0x29892b4
|
|
/* 029892B4 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 029892B4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029892B4 */ cpu->r[1] = _t0;
|
|
/* 029892B8 */ /* nop */
|
|
/* 029892BC */ cpu->r[0] = cpu->lr;
|
|
/* 029892C0 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029892C0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029892C4 */ cpu->r[28] = cpu->r[3];
|
|
/* 029892C8 */ _t2 = cpu->r[28] + 0x00000004u;
|
|
/* 029892C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 029892CC */ _t3 = cpu->r[28] + 0x00000000u;
|
|
/* 029892CC */ cpu->r[6] = rbrew_read16(cpu->mem, _t3);
|
|
/* 029892D0 */ _t4 = cpu->r[28] + 0x00000008u;
|
|
/* 029892D0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029892D4 */ cpu->r[26] = cpu->r[4];
|
|
/* 029892D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[0]);
|
|
/* 029892DC */ cpu->r[27] = cpu->r[5];
|
|
/* 029892E0 */ cpu->r[30] = cpu->r[31];
|
|
/* 029892E4 */ _t5 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029892E4 */ _t6 = _t5 & 0x00000001u;
|
|
/* 029892E4 */ if (_t6) goto L_02989300; else goto L_029892E8;
|
|
L_029892E8: ; // 0x29892e8
|
|
/* 029892E8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[6], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 029892EC */ cpu->r[29] = cpu->r[31] + cpu->r[10];
|
|
/* 029892F0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 029892F4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 029892F4 */ rbrew_write32(cpu->mem, _t7, cpu->r[29]);
|
|
/* 029892F8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029892F8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029892F8 */ if (_t9) goto L_02989390; else goto L_029892FC;
|
|
L_029892FC: ; // 0x29892fc
|
|
/* 029892FC */ goto L_02989314;
|
|
L_02989300: ; // 0x2989300
|
|
/* 02989300 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 02989304 */ cpu->r[29] = cpu->r[31] + cpu->r[0];
|
|
/* 02989308 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 0298930C */ _t10 = cpu->r[1] + 0x00000008u;
|
|
/* 0298930C */ rbrew_write32(cpu->mem, _t10, cpu->r[29]);
|
|
/* 02989310 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989310 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02989310 */ if (_t12) goto L_02989390; else goto L_02989314;
|
|
L_02989314: ; // 0x2989314
|
|
/* 02989314 */ _t13 = cpu->r[28] + 0x0000000Cu;
|
|
/* 02989314 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02989318 */ _t14 = cpu->r[12] + 0x00000024u;
|
|
/* 02989318 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298931C */ cpu->r[8] = cpu->r[30] - cpu->r[31];
|
|
/* 02989320 */ cpu->ctr = cpu->r[0];
|
|
/* 02989324 */ cpu->r[4] = rbrew_rlwinm(cpu->r[8], 0x0000001Du, 0x00000003u, 0x0000001Fu);
|
|
/* 02989328 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298932C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989330 */ cpu->r[8] = cpu->r[3];
|
|
/* 02989334 */ _t15 = cpu->r[8] + 0x00000000u;
|
|
/* 02989334 */ cpu->r[9] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t15);
|
|
/* 02989338 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0xFFFFFFFFu);
|
|
/* 0298933C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298933C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298933C */ if (_t17) goto L_02989384; else goto L_02989340;
|
|
L_02989340: ; // 0x2989340
|
|
/* 02989340 */ _t18 = cpu->r[8] + 0x00000002u;
|
|
/* 02989340 */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t18);
|
|
/* 02989344 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0xFFFFFFFFu);
|
|
/* 02989348 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989348 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02989348 */ if (_t20) goto L_02989384; else goto L_0298934C;
|
|
L_0298934C: ; // 0x298934c
|
|
/* 0298934C */ _t21 = cpu->r[30] + 0x00000004u;
|
|
/* 0298934C */ cpu->r[11] = rbrew_read8(cpu->mem, _t21);
|
|
/* 02989350 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02989354 */ cpu->r[3] = cpu->r[27];
|
|
/* 02989358 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989358 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02989358 */ if (_t23) goto L_02989378; else goto L_0298935C;
|
|
L_0298935C: ; // 0x298935c
|
|
/* 0298935C */ _t24 = cpu->r[30] + 0x00000000u;
|
|
/* 0298935C */ cpu->r[6] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02989360 */ cpu->r[4] = cpu->r[26];
|
|
/* 02989364 */ Gambit_fn_02C54A3C(cpu);
|
|
/* 02989368 */ cpu->r[30] = cpu->r[30] + 0x00000008u;
|
|
/* 0298936C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 02989370 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989370 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02989370 */ if (_t26) goto L_02989374; else goto L_02989314;
|
|
L_02989374: ; // 0x2989374
|
|
/* 02989374 */ goto L_02989390;
|
|
L_02989378: ; // 0x2989378
|
|
/* 02989378 */ cpu->r[4] = cpu->r[5];
|
|
/* 0298937C */ _t27 = cpu->r[30] + 0x00000000u;
|
|
/* 0298937C */ cpu->r[5] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02989380 */ Gambit_fn_02C4F1E0(cpu);
|
|
L_02989384: ; // 0x2989384
|
|
/* 02989384 */ cpu->r[30] = cpu->r[30] + 0x00000008u;
|
|
/* 02989388 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[29]);
|
|
/* 0298938C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298938C */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298938C */ if (_t29) goto L_02989390; else goto L_02989314;
|
|
L_02989390: ; // 0x2989390
|
|
/* 02989390 */ /* nop */
|
|
/* 02989394 */ _t30 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02989394 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02989398 */ cpu->lr = cpu->r[0];
|
|
/* 0298939C */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 029893A0 */ return;
|
|
}
|
|
|
|
// fn_029893A4 @ 0x29893a4
|
|
void Gambit_fn_029893A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_029893A4: ; // 0x29893a4
|
|
/* 029893A4 */ cpu->r[0] = cpu->lr;
|
|
/* 029893A8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029893A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029893A8 */ cpu->r[1] = _t0;
|
|
/* 029893AC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029893AC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029893B0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029893B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029893B4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 029893B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 029893B8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029893B8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 029893B8 */ if (_t4) goto L_029893BC; else goto L_029893CC;
|
|
L_029893BC: ; // 0x29893bc
|
|
/* 029893BC */ cpu->r[3] = 0x00000018u;
|
|
/* 029893C0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029893C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 029893C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029893C8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029893C8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 029893C8 */ if (_t6) goto L_02989404; else goto L_029893CC;
|
|
L_029893CC: ; // 0x29893cc
|
|
/* 029893CC */ cpu->r[3] = cpu->r[31];
|
|
/* 029893D0 */ Gambit_fn_02989138(cpu);
|
|
/* 029893D4 */ cpu->r[12] = 0x10150000u;
|
|
/* 029893D8 */ cpu->r[12] = cpu->r[12] + 0xFFFFEEB4u;
|
|
/* 029893DC */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 029893DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029893E0 */ _t7 = cpu->r[31] + 0x0000000Cu;
|
|
/* 029893E0 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 029893E4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029893E4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029893E4 */ if (_t9) goto L_029893E8; else goto L_029893F8;
|
|
L_029893E8: ; // 0x29893e8
|
|
/* 029893E8 */ cpu->r[3] = 0x00000008u;
|
|
/* 029893EC */ Gambit_fn_02801A78(cpu);
|
|
/* 029893F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029893F4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029893F4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 029893F4 */ if (_t11) goto L_02989404; else goto L_029893F8;
|
|
L_029893F8: ; // 0x29893f8
|
|
/* 029893F8 */ cpu->r[0] = 0x00000000u;
|
|
/* 029893FC */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 029893FC */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 02989400 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 02989400 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
L_02989404: ; // 0x2989404
|
|
/* 02989404 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02989404 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02989408 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298940C */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298940C */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02989410 */ cpu->lr = cpu->r[0];
|
|
/* 02989414 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02989418 */ return;
|
|
}
|
|
|
|
// fn_029893A8 @ 0x29893a8
|
|
void Gambit_fn_029893A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_029893A8: ; // 0x29893a8
|
|
/* 029893A8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029893A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029893A8 */ cpu->r[1] = _t0;
|
|
/* 029893AC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029893AC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029893B0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029893B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029893B4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 029893B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 029893B8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029893B8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 029893B8 */ if (_t4) goto L_029893BC; else goto L_029893CC;
|
|
L_029893BC: ; // 0x29893bc
|
|
/* 029893BC */ cpu->r[3] = 0x00000018u;
|
|
/* 029893C0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029893C4 */ cpu->r[31] = cpu->r[3];
|
|
/* 029893C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029893C8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029893C8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 029893C8 */ if (_t6) goto L_02989404; else goto L_029893CC;
|
|
L_029893CC: ; // 0x29893cc
|
|
/* 029893CC */ cpu->r[3] = cpu->r[31];
|
|
/* 029893D0 */ Gambit_fn_02989138(cpu);
|
|
/* 029893D4 */ cpu->r[12] = 0x10150000u;
|
|
/* 029893D8 */ cpu->r[12] = cpu->r[12] + 0xFFFFEEB4u;
|
|
/* 029893DC */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 029893DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029893E0 */ _t7 = cpu->r[31] + 0x0000000Cu;
|
|
/* 029893E0 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 029893E4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029893E4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029893E4 */ if (_t9) goto L_029893E8; else goto L_029893F8;
|
|
L_029893E8: ; // 0x29893e8
|
|
/* 029893E8 */ cpu->r[3] = 0x00000008u;
|
|
/* 029893EC */ Gambit_fn_02801A78(cpu);
|
|
/* 029893F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029893F4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029893F4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 029893F4 */ if (_t11) goto L_02989404; else goto L_029893F8;
|
|
L_029893F8: ; // 0x29893f8
|
|
/* 029893F8 */ cpu->r[0] = 0x00000000u;
|
|
/* 029893FC */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 029893FC */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 02989400 */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 02989400 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
L_02989404: ; // 0x2989404
|
|
/* 02989404 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 02989404 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02989408 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298940C */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298940C */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02989410 */ cpu->lr = cpu->r[0];
|
|
/* 02989414 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02989418 */ return;
|
|
}
|
|
|
|
// fn_0298941C @ 0x298941c
|
|
void Gambit_fn_0298941C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_0298941C: ; // 0x298941c
|
|
/* 0298941C */ cpu->r[0] = cpu->lr;
|
|
/* 02989420 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 02989420 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 02989424 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02989424 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 02989424 */ cpu->r[1] = _t1;
|
|
/* 02989428 */ _t2 = cpu->r[3] + 0x00000010u;
|
|
/* 02989428 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298942C */ _t3 = cpu->r[3] + 0x00000000u;
|
|
/* 0298942C */ cpu->r[0] = rbrew_read16(cpu->mem, _t3);
|
|
/* 02989430 */ cpu->r[11] = cpu->r[4];
|
|
/* 02989434 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02989438 */ _t4 = cpu->r[3] + 0x00000014u;
|
|
/* 02989438 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298943C */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298943C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298943C */ if (_t6) goto L_02989440; else goto L_02989448;
|
|
L_02989440: ; // 0x2989440
|
|
/* 02989440 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989444 */ cpu->r[12] = cpu->r[12] + cpu->r[9];
|
|
L_02989448: ; // 0x2989448
|
|
/* 02989448 */ _t7 = cpu->r[11] + 0x00000000u;
|
|
/* 02989448 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298944C */ cpu->r[4] = cpu->r[5];
|
|
/* 02989450 */ cpu->r[5] = 0x00000001u;
|
|
/* 02989454 */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 02989454 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 02989458 */ Gambit_fn_02989280(cpu);
|
|
/* 0298945C */ _t9 = cpu->r[11] + 0x00000000u;
|
|
/* 0298945C */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t9);
|
|
/* 02989460 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02989464 */ cpu->r[8] = 0x00000000u;
|
|
/* 02989468 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989468 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02989468 */ if (_t11) goto L_0298947C; else goto L_0298946C;
|
|
L_0298946C: ; // 0x298946c
|
|
/* 0298946C */ _t12 = cpu->r[11] + 0x00000002u;
|
|
/* 0298946C */ cpu->r[11] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t12);
|
|
/* 02989470 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0xFFFFFFFFu);
|
|
/* 02989474 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989474 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02989474 */ if (_t14) goto L_0298947C; else goto L_02989478;
|
|
L_02989478: ; // 0x2989478
|
|
/* 02989478 */ cpu->r[8] = 0x00000001u;
|
|
L_0298947C: ; // 0x298947c
|
|
/* 0298947C */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298947C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02989480 */ cpu->lr = cpu->r[0];
|
|
/* 02989484 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02989488 */ cpu->r[3] = rbrew_rlwinm(cpu->r[8], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298948C */ return;
|
|
}
|
|
|
|
// fn_02989424 @ 0x2989424
|
|
void Gambit_fn_02989424(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_02989424: ; // 0x2989424
|
|
/* 02989424 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02989424 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989424 */ cpu->r[1] = _t0;
|
|
/* 02989428 */ _t1 = cpu->r[3] + 0x00000010u;
|
|
/* 02989428 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298942C */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 0298942C */ cpu->r[0] = rbrew_read16(cpu->mem, _t2);
|
|
/* 02989430 */ cpu->r[11] = cpu->r[4];
|
|
/* 02989434 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02989438 */ _t3 = cpu->r[3] + 0x00000014u;
|
|
/* 02989438 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298943C */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298943C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298943C */ if (_t5) goto L_02989440; else goto L_02989448;
|
|
L_02989440: ; // 0x2989440
|
|
/* 02989440 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989444 */ cpu->r[12] = cpu->r[12] + cpu->r[9];
|
|
L_02989448: ; // 0x2989448
|
|
/* 02989448 */ _t6 = cpu->r[11] + 0x00000000u;
|
|
/* 02989448 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298944C */ cpu->r[4] = cpu->r[5];
|
|
/* 02989450 */ cpu->r[5] = 0x00000001u;
|
|
/* 02989454 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 02989454 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 02989458 */ Gambit_fn_02989280(cpu);
|
|
/* 0298945C */ _t8 = cpu->r[11] + 0x00000000u;
|
|
/* 0298945C */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t8);
|
|
/* 02989460 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 02989464 */ cpu->r[8] = 0x00000000u;
|
|
/* 02989468 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989468 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02989468 */ if (_t10) goto L_0298947C; else goto L_0298946C;
|
|
L_0298946C: ; // 0x298946c
|
|
/* 0298946C */ _t11 = cpu->r[11] + 0x00000002u;
|
|
/* 0298946C */ cpu->r[11] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t11);
|
|
/* 02989470 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0xFFFFFFFFu);
|
|
/* 02989474 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989474 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02989474 */ if (_t13) goto L_0298947C; else goto L_02989478;
|
|
L_02989478: ; // 0x2989478
|
|
/* 02989478 */ cpu->r[8] = 0x00000001u;
|
|
L_0298947C: ; // 0x298947c
|
|
/* 0298947C */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298947C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02989480 */ cpu->lr = cpu->r[0];
|
|
/* 02989484 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02989488 */ cpu->r[3] = rbrew_rlwinm(cpu->r[8], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298948C */ return;
|
|
}
|
|
|
|
// fn_02989490 @ 0x2989490
|
|
void Gambit_fn_02989490(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_02989490: ; // 0x2989490
|
|
/* 02989490 */ cpu->r[0] = cpu->lr;
|
|
/* 02989494 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02989494 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989494 */ cpu->r[1] = _t0;
|
|
/* 02989498 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 02989498 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298949C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298949C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 029894A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029894A4 */ cpu->r[3] = cpu->r[4];
|
|
/* 029894A8 */ cpu->r[4] = cpu->r[5];
|
|
/* 029894AC */ cpu->r[30] = cpu->r[6];
|
|
/* 029894B0 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029894B0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029894B4 */ Gambit_fn_029807A8(cpu);
|
|
/* 029894B8 */ cpu->r[5] = cpu->r[30];
|
|
/* 029894BC */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029894BC */ rbrew_write32(cpu->mem, _t4, cpu->r[3]);
|
|
/* 029894C0 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 029894C4 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 029894C4 */ rbrew_write32(cpu->mem, _t5, cpu->r[3]);
|
|
/* 029894C8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029894CC */ Gambit_fn_0298941C(cpu);
|
|
/* 029894D0 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 029894D0 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t6);
|
|
/* 029894D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 029894D8 */ cpu->r[11] = 0x00000000u;
|
|
/* 029894DC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029894DC */ _t8 = _t7 & 0x00000001u;
|
|
/* 029894DC */ if (_t8) goto L_029894F0; else goto L_029894E0;
|
|
L_029894E0: ; // 0x29894e0
|
|
/* 029894E0 */ _t9 = cpu->r[1] + 0x0000000Au;
|
|
/* 029894E0 */ cpu->r[12] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t9);
|
|
/* 029894E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 029894E8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029894E8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 029894E8 */ if (_t11) goto L_029894F0; else goto L_029894EC;
|
|
L_029894EC: ; // 0x29894ec
|
|
/* 029894EC */ cpu->r[11] = 0x00000001u;
|
|
L_029894F0: ; // 0x29894f0
|
|
/* 029894F0 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029894F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029894F4 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 029894F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029894F8 */ cpu->lr = cpu->r[0];
|
|
/* 029894FC */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 029894FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02989500 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02989504 */ cpu->r[3] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 02989508 */ return;
|
|
}
|
|
|
|
// fn_02989494 @ 0x2989494
|
|
void Gambit_fn_02989494(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_02989494: ; // 0x2989494
|
|
/* 02989494 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02989494 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989494 */ cpu->r[1] = _t0;
|
|
/* 02989498 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 02989498 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298949C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298949C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 029894A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029894A4 */ cpu->r[3] = cpu->r[4];
|
|
/* 029894A8 */ cpu->r[4] = cpu->r[5];
|
|
/* 029894AC */ cpu->r[30] = cpu->r[6];
|
|
/* 029894B0 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029894B0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029894B4 */ Gambit_fn_029807A8(cpu);
|
|
/* 029894B8 */ cpu->r[5] = cpu->r[30];
|
|
/* 029894BC */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029894BC */ rbrew_write32(cpu->mem, _t4, cpu->r[3]);
|
|
/* 029894C0 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 029894C4 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 029894C4 */ rbrew_write32(cpu->mem, _t5, cpu->r[3]);
|
|
/* 029894C8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029894CC */ Gambit_fn_0298941C(cpu);
|
|
/* 029894D0 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 029894D0 */ cpu->r[0] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t6);
|
|
/* 029894D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0xFFFFFFFFu);
|
|
/* 029894D8 */ cpu->r[11] = 0x00000000u;
|
|
/* 029894DC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029894DC */ _t8 = _t7 & 0x00000001u;
|
|
/* 029894DC */ if (_t8) goto L_029894F0; else goto L_029894E0;
|
|
L_029894E0: ; // 0x29894e0
|
|
/* 029894E0 */ _t9 = cpu->r[1] + 0x0000000Au;
|
|
/* 029894E0 */ cpu->r[12] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t9);
|
|
/* 029894E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0xFFFFFFFFu);
|
|
/* 029894E8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029894E8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 029894E8 */ if (_t11) goto L_029894F0; else goto L_029894EC;
|
|
L_029894EC: ; // 0x29894ec
|
|
/* 029894EC */ cpu->r[11] = 0x00000001u;
|
|
L_029894F0: ; // 0x29894f0
|
|
/* 029894F0 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029894F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029894F4 */ _t13 = cpu->r[1] + 0x00000010u;
|
|
/* 029894F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029894F8 */ cpu->lr = cpu->r[0];
|
|
/* 029894FC */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 029894FC */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02989500 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02989504 */ cpu->r[3] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 02989508 */ return;
|
|
}
|
|
|
|
// fn_0298950C @ 0x298950c
|
|
void Gambit_fn_0298950C(CPUState* cpu) {
|
|
uint32_t _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_0298950C: ; // 0x298950c
|
|
/* 0298950C */ cpu->r[0] = cpu->lr;
|
|
/* 02989510 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02989510 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989510 */ cpu->r[1] = _t0;
|
|
/* 02989514 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02989514 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02989518 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298951C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298951C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02989520 */ cpu->r[31] = cpu->r[4];
|
|
/* 02989520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989524 */ cpu->r[3] = cpu->r[5];
|
|
/* 02989528 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02989528 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298952C */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298952C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298952C */ if (_t5) goto L_02989530; else goto L_029895A4;
|
|
L_02989530: ; // 0x2989530
|
|
/* 02989530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989534 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989534 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02989534 */ if (_t7) goto L_02989538; else goto L_02989544;
|
|
L_02989538: ; // 0x2989538
|
|
/* 02989538 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298953C */ _t8 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 0298953C */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02989540 */ Gambit_fn_02826F20(cpu);
|
|
L_02989544: ; // 0x2989544
|
|
/* 02989544 */ _t9 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02989544 */ cpu->r[7] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02989548 */ _t10 = cpu->r[7] + 0x00000034u;
|
|
/* 02989548 */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298954C */ cpu->ctr = cpu->r[8];
|
|
/* 02989550 */ cpu->r[5] = 0x00000004u;
|
|
/* 02989554 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989558 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298955C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989560 */ cpu->r[10] = cpu->r[31];
|
|
/* 02989564 */ cpu->r[0] = 0x00000000u;
|
|
/* 02989568 */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02989568 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02989568 */ if (_t12) goto L_02989570; else goto L_0298956C;
|
|
L_0298956C: ; // 0x298956c
|
|
/* 0298956C */ cpu->r[10] = 0x00000001u;
|
|
L_02989570: ; // 0x2989570
|
|
/* 02989570 */ cpu->ctr = cpu->r[10];
|
|
/* 02989574 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989578 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
L_0298957C: ; // 0x298957c
|
|
/* 0298957C */ cpu->r[9] = cpu->r[3] + cpu->r[11];
|
|
/* 0298957C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02989580 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989580 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02989580 */ if (_t14) goto L_0298958C; else goto L_02989584;
|
|
L_02989584: ; // 0x2989584
|
|
/* 02989584 */ _t15 = cpu->r[9] + 0x00000000u;
|
|
/* 02989584 */ rbrew_write16(cpu->mem, _t15, (uint16_t)cpu->r[12]);
|
|
/* 02989588 */ _t16 = cpu->r[9] + 0x00000002u;
|
|
/* 02989588 */ rbrew_write16(cpu->mem, _t16, (uint16_t)cpu->r[12]);
|
|
L_0298958C: ; // 0x298958c
|
|
/* 0298958C */ cpu->r[11] = cpu->r[11] + 0x00000004u;
|
|
/* 02989590 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02989590 */ _t17 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02989590 */ _t18 = _t17 >> (0x00000002u & 31u);
|
|
/* 02989590 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02989590 */ if (_t19) goto L_0298957C; else goto L_02989594;
|
|
L_02989594: ; // 0x2989594
|
|
/* 02989594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989598 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989598 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02989598 */ if (_t21) goto L_029895A4; else goto L_0298959C;
|
|
L_0298959C: ; // 0x298959c
|
|
/* 0298959C */ _t22 = cpu->r[30] + 0x00000014u;
|
|
/* 0298959C */ rbrew_write32(cpu->mem, _t22, cpu->r[3]);
|
|
/* 029895A0 */ _t23 = cpu->r[30] + 0x00000010u;
|
|
/* 029895A0 */ rbrew_write32(cpu->mem, _t23, cpu->r[31]);
|
|
L_029895A4: ; // 0x29895a4
|
|
/* 029895A4 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 029895A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029895A8 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 029895A8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029895AC */ cpu->lr = cpu->r[0];
|
|
/* 029895B0 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029895B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029895B4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029895B8 */ return;
|
|
}
|
|
|
|
// fn_02989510 @ 0x2989510
|
|
void Gambit_fn_02989510(CPUState* cpu) {
|
|
uint32_t _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_02989510: ; // 0x2989510
|
|
/* 02989510 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 02989510 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989510 */ cpu->r[1] = _t0;
|
|
/* 02989514 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02989514 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02989518 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298951C */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298951C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02989520 */ cpu->r[31] = cpu->r[4];
|
|
/* 02989520 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989524 */ cpu->r[3] = cpu->r[5];
|
|
/* 02989528 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02989528 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298952C */ _t4 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298952C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298952C */ if (_t5) goto L_02989530; else goto L_029895A4;
|
|
L_02989530: ; // 0x2989530
|
|
/* 02989530 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989534 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989534 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02989534 */ if (_t7) goto L_02989538; else goto L_02989544;
|
|
L_02989538: ; // 0x2989538
|
|
/* 02989538 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298953C */ _t8 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 0298953C */ cpu->r[3] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02989540 */ Gambit_fn_02826F20(cpu);
|
|
L_02989544: ; // 0x2989544
|
|
/* 02989544 */ _t9 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02989544 */ cpu->r[7] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02989548 */ _t10 = cpu->r[7] + 0x00000034u;
|
|
/* 02989548 */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298954C */ cpu->ctr = cpu->r[8];
|
|
/* 02989550 */ cpu->r[5] = 0x00000004u;
|
|
/* 02989554 */ cpu->r[4] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989558 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298955C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989560 */ cpu->r[10] = cpu->r[31];
|
|
/* 02989564 */ cpu->r[0] = 0x00000000u;
|
|
/* 02989568 */ _t11 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02989568 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02989568 */ if (_t12) goto L_02989570; else goto L_0298956C;
|
|
L_0298956C: ; // 0x298956c
|
|
/* 0298956C */ cpu->r[10] = 0x00000001u;
|
|
L_02989570: ; // 0x2989570
|
|
/* 02989570 */ cpu->ctr = cpu->r[10];
|
|
/* 02989574 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989578 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
L_0298957C: ; // 0x298957c
|
|
/* 0298957C */ cpu->r[9] = cpu->r[3] + cpu->r[11];
|
|
/* 0298957C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02989580 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989580 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02989580 */ if (_t14) goto L_0298958C; else goto L_02989584;
|
|
L_02989584: ; // 0x2989584
|
|
/* 02989584 */ _t15 = cpu->r[9] + 0x00000000u;
|
|
/* 02989584 */ rbrew_write16(cpu->mem, _t15, (uint16_t)cpu->r[12]);
|
|
/* 02989588 */ _t16 = cpu->r[9] + 0x00000002u;
|
|
/* 02989588 */ rbrew_write16(cpu->mem, _t16, (uint16_t)cpu->r[12]);
|
|
L_0298958C: ; // 0x298958c
|
|
/* 0298958C */ cpu->r[11] = cpu->r[11] + 0x00000004u;
|
|
/* 02989590 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02989590 */ _t17 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02989590 */ _t18 = _t17 >> (0x00000002u & 31u);
|
|
/* 02989590 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02989590 */ if (_t19) goto L_0298957C; else goto L_02989594;
|
|
L_02989594: ; // 0x2989594
|
|
/* 02989594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989598 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989598 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02989598 */ if (_t21) goto L_029895A4; else goto L_0298959C;
|
|
L_0298959C: ; // 0x298959c
|
|
/* 0298959C */ _t22 = cpu->r[30] + 0x00000014u;
|
|
/* 0298959C */ rbrew_write32(cpu->mem, _t22, cpu->r[3]);
|
|
/* 029895A0 */ _t23 = cpu->r[30] + 0x00000010u;
|
|
/* 029895A0 */ rbrew_write32(cpu->mem, _t23, cpu->r[31]);
|
|
L_029895A4: ; // 0x29895a4
|
|
/* 029895A4 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 029895A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029895A8 */ _t25 = cpu->r[1] + 0x00000008u;
|
|
/* 029895A8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029895AC */ cpu->lr = cpu->r[0];
|
|
/* 029895B0 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029895B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029895B4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029895B8 */ return;
|
|
}
|
|
|
|
// fn_029895BC @ 0x29895bc
|
|
void Gambit_fn_029895BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_029895BC: ; // 0x29895bc
|
|
/* 029895BC */ _t0 = cpu->r[3] + 0x00000010u;
|
|
/* 029895BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 029895C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 029895C4 */ _t1 = cpu->r[3] + 0x00000014u;
|
|
/* 029895C4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 029895C8 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029895C8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 029895C8 */ if (_t3) goto L_029895CC; else goto L_029895D4;
|
|
L_029895CC: ; // 0x29895cc
|
|
/* 029895CC */ cpu->r[12] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029895D0 */ cpu->r[3] = cpu->r[3] + cpu->r[12];
|
|
L_029895D4: ; // 0x29895d4
|
|
/* 029895D4 */ return;
|
|
}
|
|
|
|
// fn_029895D8 @ 0x29895d8
|
|
void Gambit_fn_029895D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40;
|
|
|
|
L_029895D8: ; // 0x29895d8
|
|
/* 029895D8 */ cpu->r[0] = cpu->lr;
|
|
/* 029895DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029895DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029895DC */ cpu->r[1] = _t0;
|
|
/* 029895E0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029895E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029895E4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029895E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029895E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 029895E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029895EC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029895EC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029895F0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029895F0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029895F0 */ if (_t5) goto L_029895F4; else goto L_02989604;
|
|
L_029895F4: ; // 0x29895f4
|
|
/* 029895F4 */ cpu->r[3] = 0x00000028u;
|
|
/* 029895F8 */ Gambit_fn_02801A78(cpu);
|
|
/* 029895FC */ cpu->r[31] = cpu->r[3];
|
|
/* 029895FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989600 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989600 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02989600 */ if (_t7) goto L_029896B8; else goto L_02989604;
|
|
L_02989604: ; // 0x2989604
|
|
/* 02989604 */ cpu->r[0] = 0x10150000u;
|
|
/* 02989608 */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 02989608 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298960C */ cpu->r[0] = cpu->r[0] + 0xFFFFEFA8u;
|
|
/* 02989610 */ cpu->r[30] = 0x00000000u;
|
|
/* 02989614 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 02989614 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 02989618 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989618 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02989618 */ if (_t10) goto L_0298961C; else goto L_0298962C;
|
|
L_0298961C: ; // 0x298961c
|
|
/* 0298961C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989620 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989624 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989628 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989628 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02989628 */ if (_t12) goto L_02989650; else goto L_0298962C;
|
|
L_0298962C: ; // 0x298962c
|
|
/* 0298962C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989630 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989630 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02989630 */ if (_t14) goto L_02989634; else goto L_02989644;
|
|
L_02989634: ; // 0x2989634
|
|
/* 02989634 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989638 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298963C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989640 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989640 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02989640 */ if (_t16) goto L_02989650; else goto L_02989644;
|
|
L_02989644: ; // 0x2989644
|
|
/* 02989644 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 02989644 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 02989648 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 02989648 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
/* 0298964C */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 0298964C */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
L_02989650: ; // 0x2989650
|
|
/* 02989650 */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 02989650 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989654 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989654 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02989654 */ if (_t21) goto L_02989658; else goto L_02989668;
|
|
L_02989658: ; // 0x2989658
|
|
/* 02989658 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298965C */ Gambit_fn_02801A78(cpu);
|
|
/* 02989660 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989664 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989664 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02989664 */ if (_t23) goto L_0298968C; else goto L_02989668;
|
|
L_02989668: ; // 0x2989668
|
|
/* 02989668 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298966C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298966C */ _t25 = _t24 & 0x00000001u;
|
|
/* 0298966C */ if (_t25) goto L_02989670; else goto L_02989680;
|
|
L_02989670: ; // 0x2989670
|
|
/* 02989670 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989674 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298967C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298967C */ _t27 = _t26 & 0x00000001u;
|
|
/* 0298967C */ if (_t27) goto L_0298968C; else goto L_02989680;
|
|
L_02989680: ; // 0x2989680
|
|
/* 02989680 */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 02989680 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 02989684 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 02989684 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
/* 02989688 */ _t30 = cpu->r[3] + 0x00000008u;
|
|
/* 02989688 */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
L_0298968C: ; // 0x298968c
|
|
/* 0298968C */ cpu->r[12] = 0x10150000u;
|
|
/* 02989690 */ _t31 = cpu->r[12] + 0xFFFFEF74u;
|
|
/* 02989690 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 02989694 */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 02989694 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989698 */ _t32 = cpu->r[31] + 0x00000020u;
|
|
/* 02989698 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[0]);
|
|
/* 0298969C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298969C */ _t34 = _t33 & 0x00000001u;
|
|
/* 0298969C */ if (_t34) goto L_029896A0; else goto L_029896B0;
|
|
L_029896A0: ; // 0x29896a0
|
|
/* 029896A0 */ cpu->r[3] = 0x00000001u;
|
|
/* 029896A4 */ Gambit_fn_02801A78(cpu);
|
|
/* 029896A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029896AC */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029896AC */ _t36 = _t35 & 0x00000001u;
|
|
/* 029896AC */ if (_t36) goto L_029896B8; else goto L_029896B0;
|
|
L_029896B0: ; // 0x29896b0
|
|
/* 029896B0 */ cpu->r[0] = 0x00000008u;
|
|
/* 029896B4 */ _t37 = cpu->r[3] + 0x00000000u;
|
|
/* 029896B4 */ rbrew_write8(cpu->mem, _t37, (uint8_t)cpu->r[0]);
|
|
L_029896B8: ; // 0x29896b8
|
|
/* 029896B8 */ _t38 = cpu->r[1] + 0x00000014u;
|
|
/* 029896B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029896BC */ cpu->r[3] = cpu->r[31];
|
|
/* 029896C0 */ _t39 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029896C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029896C4 */ cpu->lr = cpu->r[0];
|
|
/* 029896C8 */ _t40 = cpu->r[1] + 0x00000008u;
|
|
/* 029896C8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t40);
|
|
/* 029896CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029896D0 */ return;
|
|
}
|
|
|
|
// fn_029895DC @ 0x29895dc
|
|
void Gambit_fn_029895DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40;
|
|
|
|
L_029895DC: ; // 0x29895dc
|
|
/* 029895DC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029895DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029895DC */ cpu->r[1] = _t0;
|
|
/* 029895E0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029895E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029895E4 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029895E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029895E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 029895E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029895EC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029895EC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 029895F0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029895F0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029895F0 */ if (_t5) goto L_029895F4; else goto L_02989604;
|
|
L_029895F4: ; // 0x29895f4
|
|
/* 029895F4 */ cpu->r[3] = 0x00000028u;
|
|
/* 029895F8 */ Gambit_fn_02801A78(cpu);
|
|
/* 029895FC */ cpu->r[31] = cpu->r[3];
|
|
/* 029895FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989600 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989600 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02989600 */ if (_t7) goto L_029896B8; else goto L_02989604;
|
|
L_02989604: ; // 0x2989604
|
|
/* 02989604 */ cpu->r[0] = 0x10150000u;
|
|
/* 02989608 */ cpu->r[3] = cpu->r[31] + 0x00000008u;
|
|
/* 02989608 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298960C */ cpu->r[0] = cpu->r[0] + 0xFFFFEFA8u;
|
|
/* 02989610 */ cpu->r[30] = 0x00000000u;
|
|
/* 02989614 */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 02989614 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 02989618 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989618 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02989618 */ if (_t10) goto L_0298961C; else goto L_0298962C;
|
|
L_0298961C: ; // 0x298961c
|
|
/* 0298961C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989620 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989624 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989628 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989628 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02989628 */ if (_t12) goto L_02989650; else goto L_0298962C;
|
|
L_0298962C: ; // 0x298962c
|
|
/* 0298962C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989630 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989630 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02989630 */ if (_t14) goto L_02989634; else goto L_02989644;
|
|
L_02989634: ; // 0x2989634
|
|
/* 02989634 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989638 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298963C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989640 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989640 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02989640 */ if (_t16) goto L_02989650; else goto L_02989644;
|
|
L_02989644: ; // 0x2989644
|
|
/* 02989644 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 02989644 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 02989648 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 02989648 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
/* 0298964C */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 0298964C */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
L_02989650: ; // 0x2989650
|
|
/* 02989650 */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 02989650 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989654 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989654 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02989654 */ if (_t21) goto L_02989658; else goto L_02989668;
|
|
L_02989658: ; // 0x2989658
|
|
/* 02989658 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298965C */ Gambit_fn_02801A78(cpu);
|
|
/* 02989660 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989664 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989664 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02989664 */ if (_t23) goto L_0298968C; else goto L_02989668;
|
|
L_02989668: ; // 0x2989668
|
|
/* 02989668 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298966C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298966C */ _t25 = _t24 & 0x00000001u;
|
|
/* 0298966C */ if (_t25) goto L_02989670; else goto L_02989680;
|
|
L_02989670: ; // 0x2989670
|
|
/* 02989670 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989674 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298967C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298967C */ _t27 = _t26 & 0x00000001u;
|
|
/* 0298967C */ if (_t27) goto L_0298968C; else goto L_02989680;
|
|
L_02989680: ; // 0x2989680
|
|
/* 02989680 */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 02989680 */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 02989684 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 02989684 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
/* 02989688 */ _t30 = cpu->r[3] + 0x00000008u;
|
|
/* 02989688 */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
L_0298968C: ; // 0x298968c
|
|
/* 0298968C */ cpu->r[12] = 0x10150000u;
|
|
/* 02989690 */ _t31 = cpu->r[12] + 0xFFFFEF74u;
|
|
/* 02989690 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 02989694 */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 02989694 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989698 */ _t32 = cpu->r[31] + 0x00000020u;
|
|
/* 02989698 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[0]);
|
|
/* 0298969C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298969C */ _t34 = _t33 & 0x00000001u;
|
|
/* 0298969C */ if (_t34) goto L_029896A0; else goto L_029896B0;
|
|
L_029896A0: ; // 0x29896a0
|
|
/* 029896A0 */ cpu->r[3] = 0x00000001u;
|
|
/* 029896A4 */ Gambit_fn_02801A78(cpu);
|
|
/* 029896A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029896AC */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029896AC */ _t36 = _t35 & 0x00000001u;
|
|
/* 029896AC */ if (_t36) goto L_029896B8; else goto L_029896B0;
|
|
L_029896B0: ; // 0x29896b0
|
|
/* 029896B0 */ cpu->r[0] = 0x00000008u;
|
|
/* 029896B4 */ _t37 = cpu->r[3] + 0x00000000u;
|
|
/* 029896B4 */ rbrew_write8(cpu->mem, _t37, (uint8_t)cpu->r[0]);
|
|
L_029896B8: ; // 0x29896b8
|
|
/* 029896B8 */ _t38 = cpu->r[1] + 0x00000014u;
|
|
/* 029896B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029896BC */ cpu->r[3] = cpu->r[31];
|
|
/* 029896C0 */ _t39 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029896C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029896C4 */ cpu->lr = cpu->r[0];
|
|
/* 029896C8 */ _t40 = cpu->r[1] + 0x00000008u;
|
|
/* 029896C8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t40);
|
|
/* 029896CC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 029896D0 */ return;
|
|
}
|
|
|
|
// fn_029896D4 @ 0x29896d4
|
|
void Gambit_fn_029896D4(CPUState* cpu) {
|
|
uint32_t _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_029896D4: ; // 0x29896d4
|
|
/* 029896D4 */ cpu->r[0] = cpu->lr;
|
|
/* 029896D8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029896D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029896D8 */ cpu->r[1] = _t0;
|
|
/* 029896DC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029896DC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029896E0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029896E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 029896E4 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029896E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029896E8 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 029896E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 029896EC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029896EC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029896F0 */ cpu->r[29] = cpu->r[3];
|
|
/* 029896F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 029896F4 */ cpu->r[30] = cpu->r[4];
|
|
/* 029896F8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029896F8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029896F8 */ if (_t7) goto L_029897C8; else goto L_029896FC;
|
|
L_029896FC: ; // 0x29896fc
|
|
/* 029896FC */ _t8 = cpu->r[29] + 0x00000014u;
|
|
/* 029896FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02989700 */ _t9 = cpu->r[29] + 0x0000001Cu;
|
|
/* 02989700 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02989704 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989708 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298970C */ cpu->r[31] = cpu->r[28] + cpu->r[0];
|
|
/* 02989710 */ cpu->r[10] = cpu->r[10] + 0xFFFFEFA8u;
|
|
/* 02989714 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 02989718 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 02989718 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 0298971C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298971C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298971C */ if (_t12) goto L_02989758; else goto L_02989720;
|
|
L_02989720: ; // 0x2989720
|
|
/* 02989720 */ _t13 = cpu->r[28] + 0x00000000u;
|
|
/* 02989720 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02989724 */ _t14 = cpu->r[9] + 0x00000030u;
|
|
/* 02989724 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02989728 */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298972C */ _t15 = cpu->r[28] + 0x00000000u;
|
|
/* 0298972C */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02989730 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989734 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989734 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02989734 */ if (_t17) goto L_0298974C; else goto L_02989738;
|
|
L_02989738: ; // 0x2989738
|
|
/* 02989738 */ _t18 = cpu->r[3] + 0x00000034u;
|
|
/* 02989738 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298973C */ _t19 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0298973C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02989740 */ cpu->ctr = cpu->r[0];
|
|
/* 02989744 */ cpu->r[4] = 0x00000003u;
|
|
/* 02989748 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298974C: ; // 0x298974c
|
|
/* 0298974C */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 02989750 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 02989754 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989754 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02989754 */ if (_t21) goto L_02989758; else goto L_02989720;
|
|
L_02989758: ; // 0x2989758
|
|
/* 02989758 */ _t22 = cpu->r[29] + 0x00000008u;
|
|
/* 02989758 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298975C */ _t23 = cpu->r[29] + 0x00000010u;
|
|
/* 0298975C */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02989760 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989764 */ cpu->r[28] = cpu->r[31] + cpu->r[0];
|
|
/* 02989768 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[28]);
|
|
/* 0298976C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298976C */ _t25 = _t24 & 0x00000001u;
|
|
/* 0298976C */ if (_t25) goto L_029897A8; else goto L_02989770;
|
|
L_02989770: ; // 0x2989770
|
|
/* 02989770 */ _t26 = cpu->r[31] + 0x00000000u;
|
|
/* 02989770 */ cpu->r[7] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02989774 */ _t27 = cpu->r[7] + 0x00000030u;
|
|
/* 02989774 */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02989778 */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298977C */ _t28 = cpu->r[31] + 0x00000000u;
|
|
/* 0298977C */ cpu->r[3] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02989780 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989784 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989784 */ _t30 = _t29 & 0x00000001u;
|
|
/* 02989784 */ if (_t30) goto L_0298979C; else goto L_02989788;
|
|
L_02989788: ; // 0x2989788
|
|
/* 02989788 */ _t31 = cpu->r[3] + 0x00000034u;
|
|
/* 02989788 */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298978C */ _t32 = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298978C */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02989790 */ cpu->ctr = cpu->r[0];
|
|
/* 02989794 */ cpu->r[4] = 0x00000003u;
|
|
/* 02989798 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298979C: ; // 0x298979c
|
|
/* 0298979C */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 029897A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[28]);
|
|
/* 029897A4 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029897A4 */ _t34 = _t33 & 0x00000001u;
|
|
/* 029897A4 */ if (_t34) goto L_029897A8; else goto L_02989770;
|
|
L_029897A8: ; // 0x29897a8
|
|
/* 029897A8 */ cpu->r[3] = cpu->r[29] + 0x00000008u;
|
|
/* 029897AC */ Gambit_fn_02802424(cpu);
|
|
/* 029897B0 */ cpu->r[3] = cpu->r[29] + 0x00000014u;
|
|
/* 029897B4 */ Gambit_fn_02802424(cpu);
|
|
/* 029897B8 */ cpu->r[8] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029897B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 029897BC */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029897BC */ _t36 = _t35 & 0x00000001u;
|
|
/* 029897BC */ if (_t36) goto L_029897C8; else goto L_029897C0;
|
|
L_029897C0: ; // 0x29897c0
|
|
/* 029897C0 */ cpu->r[3] = cpu->r[29];
|
|
/* 029897C4 */ Gambit_fn_02801BB0(cpu);
|
|
L_029897C8: ; // 0x29897c8
|
|
/* 029897C8 */ _t37 = cpu->r[1] + 0x00000008u;
|
|
/* 029897C8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t37);
|
|
/* 029897CC */ _t38 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029897CC */ cpu->r[29] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029897D0 */ _t39 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029897D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029897D4 */ _t40 = cpu->r[1] + 0x00000010u;
|
|
/* 029897D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t40);
|
|
/* 029897D8 */ cpu->lr = cpu->r[0];
|
|
/* 029897DC */ _t41 = cpu->r[1] + 0x00000014u;
|
|
/* 029897DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t41);
|
|
/* 029897E0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029897E4 */ return;
|
|
}
|
|
|
|
// fn_029896D8 @ 0x29896d8
|
|
void Gambit_fn_029896D8(CPUState* cpu) {
|
|
uint32_t _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_029896D8: ; // 0x29896d8
|
|
/* 029896D8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029896D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029896D8 */ cpu->r[1] = _t0;
|
|
/* 029896DC */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 029896DC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 029896E0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 029896E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 029896E4 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029896E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029896E8 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 029896E8 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 029896EC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029896EC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029896F0 */ cpu->r[29] = cpu->r[3];
|
|
/* 029896F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 029896F4 */ cpu->r[30] = cpu->r[4];
|
|
/* 029896F8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029896F8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029896F8 */ if (_t7) goto L_029897C8; else goto L_029896FC;
|
|
L_029896FC: ; // 0x29896fc
|
|
/* 029896FC */ _t8 = cpu->r[29] + 0x00000014u;
|
|
/* 029896FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02989700 */ _t9 = cpu->r[29] + 0x0000001Cu;
|
|
/* 02989700 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02989704 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989708 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298970C */ cpu->r[31] = cpu->r[28] + cpu->r[0];
|
|
/* 02989710 */ cpu->r[10] = cpu->r[10] + 0xFFFFEFA8u;
|
|
/* 02989714 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 02989718 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 02989718 */ rbrew_write32(cpu->mem, _t10, cpu->r[10]);
|
|
/* 0298971C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298971C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298971C */ if (_t12) goto L_02989758; else goto L_02989720;
|
|
L_02989720: ; // 0x2989720
|
|
/* 02989720 */ _t13 = cpu->r[28] + 0x00000000u;
|
|
/* 02989720 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02989724 */ _t14 = cpu->r[9] + 0x00000030u;
|
|
/* 02989724 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02989728 */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298972C */ _t15 = cpu->r[28] + 0x00000000u;
|
|
/* 0298972C */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02989730 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989734 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989734 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02989734 */ if (_t17) goto L_0298974C; else goto L_02989738;
|
|
L_02989738: ; // 0x2989738
|
|
/* 02989738 */ _t18 = cpu->r[3] + 0x00000034u;
|
|
/* 02989738 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298973C */ _t19 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0298973C */ cpu->r[0] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02989740 */ cpu->ctr = cpu->r[0];
|
|
/* 02989744 */ cpu->r[4] = 0x00000003u;
|
|
/* 02989748 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298974C: ; // 0x298974c
|
|
/* 0298974C */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 02989750 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 02989754 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989754 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02989754 */ if (_t21) goto L_02989758; else goto L_02989720;
|
|
L_02989758: ; // 0x2989758
|
|
/* 02989758 */ _t22 = cpu->r[29] + 0x00000008u;
|
|
/* 02989758 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298975C */ _t23 = cpu->r[29] + 0x00000010u;
|
|
/* 0298975C */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02989760 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989764 */ cpu->r[28] = cpu->r[31] + cpu->r[0];
|
|
/* 02989768 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[28]);
|
|
/* 0298976C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298976C */ _t25 = _t24 & 0x00000001u;
|
|
/* 0298976C */ if (_t25) goto L_029897A8; else goto L_02989770;
|
|
L_02989770: ; // 0x2989770
|
|
/* 02989770 */ _t26 = cpu->r[31] + 0x00000000u;
|
|
/* 02989770 */ cpu->r[7] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02989774 */ _t27 = cpu->r[7] + 0x00000030u;
|
|
/* 02989774 */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02989778 */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298977C */ _t28 = cpu->r[31] + 0x00000000u;
|
|
/* 0298977C */ cpu->r[3] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02989780 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989784 */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989784 */ _t30 = _t29 & 0x00000001u;
|
|
/* 02989784 */ if (_t30) goto L_0298979C; else goto L_02989788;
|
|
L_02989788: ; // 0x2989788
|
|
/* 02989788 */ _t31 = cpu->r[3] + 0x00000034u;
|
|
/* 02989788 */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298978C */ _t32 = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298978C */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02989790 */ cpu->ctr = cpu->r[0];
|
|
/* 02989794 */ cpu->r[4] = 0x00000003u;
|
|
/* 02989798 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298979C: ; // 0x298979c
|
|
/* 0298979C */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 029897A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[28]);
|
|
/* 029897A4 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029897A4 */ _t34 = _t33 & 0x00000001u;
|
|
/* 029897A4 */ if (_t34) goto L_029897A8; else goto L_02989770;
|
|
L_029897A8: ; // 0x29897a8
|
|
/* 029897A8 */ cpu->r[3] = cpu->r[29] + 0x00000008u;
|
|
/* 029897AC */ Gambit_fn_02802424(cpu);
|
|
/* 029897B0 */ cpu->r[3] = cpu->r[29] + 0x00000014u;
|
|
/* 029897B4 */ Gambit_fn_02802424(cpu);
|
|
/* 029897B8 */ cpu->r[8] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029897B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 029897BC */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029897BC */ _t36 = _t35 & 0x00000001u;
|
|
/* 029897BC */ if (_t36) goto L_029897C8; else goto L_029897C0;
|
|
L_029897C0: ; // 0x29897c0
|
|
/* 029897C0 */ cpu->r[3] = cpu->r[29];
|
|
/* 029897C4 */ Gambit_fn_02801BB0(cpu);
|
|
L_029897C8: ; // 0x29897c8
|
|
/* 029897C8 */ _t37 = cpu->r[1] + 0x00000008u;
|
|
/* 029897C8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t37);
|
|
/* 029897CC */ _t38 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029897CC */ cpu->r[29] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029897D0 */ _t39 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029897D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029897D4 */ _t40 = cpu->r[1] + 0x00000010u;
|
|
/* 029897D4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t40);
|
|
/* 029897D8 */ cpu->lr = cpu->r[0];
|
|
/* 029897DC */ _t41 = cpu->r[1] + 0x00000014u;
|
|
/* 029897DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t41);
|
|
/* 029897E0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029897E4 */ return;
|
|
}
|
|
|
|
// fn_029897E8 @ 0x29897e8
|
|
void Gambit_fn_029897E8(CPUState* cpu) {
|
|
uint32_t _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_029897E8: ; // 0x29897e8
|
|
/* 029897E8 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 029897E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029897E8 */ cpu->r[1] = _t0;
|
|
/* 029897EC */ /* nop */
|
|
/* 029897F0 */ _t1 = cpu->r[1] + 0x00000028u;
|
|
/* 029897F0 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 029897F4 */ cpu->r[0] = cpu->lr;
|
|
/* 029897F8 */ _t2 = cpu->r[1] + 0x0000003Cu;
|
|
/* 029897F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 029897FC */ /* nop */
|
|
/* 02989800 */ _t3 = cpu->r[1] + 0x00000030u;
|
|
/* 02989800 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 02989804 */ cpu->r[30] = cpu->r[3];
|
|
/* 02989808 */ _t4 = cpu->r[30] + 0x00000024u;
|
|
/* 02989808 */ cpu->r[6] = rbrew_read8(cpu->mem, _t4);
|
|
/* 0298980C */ cpu->r[31] = cpu->r[4];
|
|
/* 02989810 */ cpu->r[26] = cpu->r[5];
|
|
/* 02989814 */ cpu->r[7] = rbrew_rlwinm(cpu->r[6], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02989814 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02989818 */ cpu->f[31] = cpu->f[1];
|
|
/* 0298981C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298981C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298981C */ if (_t6) goto L_02989A60; else goto L_02989820;
|
|
L_02989820: ; // 0x2989820
|
|
/* 02989820 */ cpu->r[8] = rbrew_rlwinm(cpu->r[6], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02989824 */ _t7 = cpu->r[30] + 0x00000020u;
|
|
/* 02989824 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 02989828 */ cpu->r[9] = cpu->r[8] ^ 0x00000001u;
|
|
/* 0298982C */ cpu->r[28] = cpu->r[31] + 0x00000094u;
|
|
/* 02989830 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02989834 */ cpu->f[31] = cpu->f[31] * cpu->f[0];
|
|
/* 02989838 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989838 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02989838 */ if (_t9) goto L_02989974; else goto L_0298983C;
|
|
L_0298983C: ; // 0x298983c
|
|
/* 0298983C */ _t10 = cpu->r[30] + 0x00000008u;
|
|
/* 0298983C */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02989840 */ _t11 = cpu->r[30] + 0x00000010u;
|
|
/* 02989840 */ cpu->r[27] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02989844 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989848 */ cpu->r[29] = cpu->r[27] + cpu->r[10];
|
|
/* 0298984C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[29]);
|
|
/* 02989850 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989850 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02989850 */ if (_t13) goto L_02989974; else goto L_02989854;
|
|
L_02989854: ; // 0x2989854
|
|
/* 02989854 */ _t14 = cpu->r[30] + 0x00000004u;
|
|
/* 02989854 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02989858 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 0298985C */ _t15 = cpu->r[27] + 0x00000000u;
|
|
/* 0298985C */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02989860 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989860 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02989860 */ if (_t17) goto L_02989864; else goto L_02989950;
|
|
L_02989864: ; // 0x2989864
|
|
/* 02989864 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 02989864 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02989868 */ _t19 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02989868 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[31]);
|
|
/* 0298986C */ _t20 = cpu->r[3] + 0x00000000u;
|
|
/* 0298986C */ cpu->r[25] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02989870 */ _t21 = cpu->r[25] + 0x00000010u;
|
|
/* 02989870 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02989874 */ _t22 = cpu->r[25] + 0x00000000u;
|
|
/* 02989874 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 02989878 */ _t23 = cpu->r[25] + 0x0000000Cu;
|
|
/* 02989878 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 0298987C */ cpu->ctr = cpu->r[0];
|
|
/* 02989880 */ _t24 = cpu->r[25] + 0x00000014u;
|
|
/* 02989880 */ cpu->r[3] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02989884 */ cpu->f[1] = cpu->f[11] + cpu->f[13];
|
|
/* 02989888 */ _t25 = cpu->r[25] + 0x00000008u;
|
|
/* 02989888 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 0298988C */ _t26 = cpu->r[25] + 0x00000004u;
|
|
/* 0298988C */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 02989890 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 02989898 */ _t27 = cpu->r[25] + 0x00000000u;
|
|
/* 02989898 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[1]);
|
|
/* 0298989C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298989C */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298989C */ if (_t29) goto L_02989910; else goto L_029898A0;
|
|
L_029898A0: ; // 0x29898a0
|
|
/* 029898A0 */ _t30 = cpu->r[26] + 0x00000002u;
|
|
/* 029898A0 */ cpu->r[5] = rbrew_read16(cpu->mem, _t30);
|
|
/* 029898A4 */ cpu->r[6] = rbrew_rlwinm(cpu->r[5], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029898A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 029898A8 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029898A8 */ _t32 = _t31 & 0x00000001u;
|
|
/* 029898A8 */ if (_t32) goto L_02989910; else goto L_029898AC;
|
|
L_029898AC: ; // 0x29898ac
|
|
/* 029898AC */ _t33 = cpu->r[27] + 0x00000000u;
|
|
/* 029898AC */ cpu->r[25] = rbrew_read32(cpu->mem, _t33);
|
|
/* 029898B0 */ cpu->r[6] = 0x00000001u;
|
|
/* 029898B4 */ _t34 = cpu->r[26] + 0x00000008u;
|
|
/* 029898B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 029898B8 */ cpu->r[3] = cpu->r[25];
|
|
/* 029898BC */ _t35 = cpu->r[26] + 0x00000018u;
|
|
/* 029898BC */ cpu->r[4] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029898C0 */ cpu->r[5] = rbrew_rlwinm(cpu->r[0], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 029898C4 */ Gambit_fn_02C54CCC(cpu);
|
|
/* 029898C8 */ _t36 = cpu->r[25] + 0x00000034u;
|
|
/* 029898C8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t36);
|
|
/* 029898CC */ _t37 = cpu->r[8] + 0x0000001Cu;
|
|
/* 029898CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t37);
|
|
/* 029898D0 */ cpu->ctr = cpu->r[10];
|
|
/* 029898D4 */ cpu->r[3] = cpu->r[25];
|
|
/* 029898D8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029898DC */ _t38 = cpu->r[25] + 0x00000034u;
|
|
/* 029898DC */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029898E0 */ _t39 = cpu->r[11] + 0x0000003Cu;
|
|
/* 029898E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029898E4 */ cpu->ctr = cpu->r[0];
|
|
/* 029898E8 */ cpu->r[4] = cpu->r[28];
|
|
/* 029898EC */ cpu->r[3] = cpu->r[25];
|
|
/* 029898F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029898F4 */ cpu->r[4] = 0x00000001u;
|
|
/* 029898F8 */ cpu->r[3] = cpu->r[25];
|
|
/* 029898FC */ Gambit_fn_02C54DA0(cpu);
|
|
/* 02989900 */ cpu->r[27] = cpu->r[27] + 0x00000004u;
|
|
/* 02989904 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[29]);
|
|
/* 02989908 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989908 */ _t41 = _t40 & 0x00000001u;
|
|
/* 02989908 */ if (_t41) goto L_0298990C; else goto L_02989854;
|
|
L_0298990C: ; // 0x298990c
|
|
/* 0298990C */ goto L_02989970;
|
|
L_02989910: ; // 0x2989910
|
|
/* 02989910 */ _t42 = cpu->r[27] + 0x00000000u;
|
|
/* 02989910 */ cpu->r[25] = rbrew_read32(cpu->mem, _t42);
|
|
/* 02989914 */ _t43 = cpu->r[25] + 0x00000034u;
|
|
/* 02989914 */ cpu->r[4] = rbrew_read32(cpu->mem, _t43);
|
|
/* 02989918 */ _t44 = cpu->r[4] + 0x0000001Cu;
|
|
/* 02989918 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 0298991C */ cpu->ctr = cpu->r[0];
|
|
/* 02989920 */ cpu->r[3] = cpu->r[25];
|
|
/* 02989924 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989928 */ _t45 = cpu->r[25] + 0x00000034u;
|
|
/* 02989928 */ cpu->r[6] = rbrew_read32(cpu->mem, _t45);
|
|
/* 0298992C */ _t46 = cpu->r[6] + 0x0000003Cu;
|
|
/* 0298992C */ cpu->r[7] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02989930 */ cpu->ctr = cpu->r[7];
|
|
/* 02989934 */ cpu->r[3] = cpu->r[25];
|
|
/* 02989938 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298993C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989940 */ cpu->r[27] = cpu->r[27] + 0x00000004u;
|
|
/* 02989944 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[29]);
|
|
/* 02989948 */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989948 */ _t48 = _t47 & 0x00000001u;
|
|
/* 02989948 */ if (_t48) goto L_0298994C; else goto L_02989854;
|
|
L_0298994C: ; // 0x298994c
|
|
/* 0298994C */ goto L_02989970;
|
|
L_02989950: ; // 0x2989950
|
|
/* 02989950 */ _t49 = cpu->r[3] + 0x00000034u;
|
|
/* 02989950 */ cpu->r[8] = rbrew_read32(cpu->mem, _t49);
|
|
/* 02989954 */ _t50 = cpu->r[8] + 0x0000003Cu;
|
|
/* 02989954 */ cpu->r[9] = rbrew_read32(cpu->mem, _t50);
|
|
/* 02989958 */ cpu->ctr = cpu->r[9];
|
|
/* 0298995C */ cpu->r[4] = cpu->r[28];
|
|
/* 02989960 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989964 */ cpu->r[27] = cpu->r[27] + 0x00000004u;
|
|
/* 02989968 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[29]);
|
|
/* 0298996C */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298996C */ _t52 = _t51 & 0x00000001u;
|
|
/* 0298996C */ if (_t52) goto L_02989970; else goto L_02989854;
|
|
L_02989970: ; // 0x2989970
|
|
/* 02989970 */ _t53 = cpu->r[30] + 0x00000024u;
|
|
/* 02989970 */ cpu->r[6] = rbrew_read8(cpu->mem, _t53);
|
|
L_02989974: ; // 0x2989974
|
|
/* 02989974 */ cpu->r[10] = rbrew_rlwinm(cpu->r[6], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02989978 */ cpu->r[0] = cpu->r[10] ^ 0x00000001u;
|
|
/* 0298997C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02989980 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989980 */ _t55 = _t54 & 0x00000001u;
|
|
/* 02989980 */ if (_t55) goto L_02989A60; else goto L_02989984;
|
|
L_02989984: ; // 0x2989984
|
|
/* 02989984 */ _t56 = cpu->r[30] + 0x00000014u;
|
|
/* 02989984 */ cpu->r[0] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02989988 */ _t57 = cpu->r[30] + 0x0000001Cu;
|
|
/* 02989988 */ cpu->r[25] = rbrew_read32(cpu->mem, _t57);
|
|
/* 0298998C */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989990 */ cpu->r[24] = cpu->r[25] + cpu->r[12];
|
|
/* 02989994 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[25], cpu->r[24]);
|
|
/* 02989998 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989998 */ _t59 = _t58 & 0x00000001u;
|
|
/* 02989998 */ if (_t59) goto L_02989A60; else goto L_0298999C;
|
|
L_0298999C: ; // 0x298999c
|
|
/* 0298999C */ _t60 = cpu->r[30] + 0x00000004u;
|
|
/* 0298999C */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 029899A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 029899A4 */ _t61 = cpu->r[25] + 0x00000000u;
|
|
/* 029899A4 */ cpu->r[26] = rbrew_read32(cpu->mem, _t61);
|
|
/* 029899A8 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029899A8 */ _t63 = _t62 & 0x00000001u;
|
|
/* 029899A8 */ if (_t63) goto L_029899AC; else goto L_029899F4;
|
|
L_029899AC: ; // 0x29899ac
|
|
/* 029899AC */ _t64 = cpu->r[26] + 0x00000000u;
|
|
/* 029899AC */ cpu->r[9] = rbrew_read32(cpu->mem, _t64);
|
|
/* 029899B0 */ _t65 = cpu->r[9] + 0x0000000Cu;
|
|
/* 029899B0 */ rbrew_write_f32(cpu->mem, _t65, cpu->f[31]);
|
|
/* 029899B4 */ _t66 = cpu->r[26] + 0x00000000u;
|
|
/* 029899B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t66);
|
|
/* 029899B8 */ _t67 = cpu->r[29] + 0x00000010u;
|
|
/* 029899B8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t67);
|
|
/* 029899BC */ _t68 = cpu->r[29] + 0x00000000u;
|
|
/* 029899BC */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 029899C0 */ _t69 = cpu->r[29] + 0x0000000Cu;
|
|
/* 029899C0 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 029899C4 */ cpu->ctr = cpu->r[5];
|
|
/* 029899C8 */ _t70 = cpu->r[29] + 0x00000014u;
|
|
/* 029899C8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t70);
|
|
/* 029899CC */ cpu->f[1] = cpu->f[10] + cpu->f[12];
|
|
/* 029899D0 */ _t71 = cpu->r[29] + 0x00000008u;
|
|
/* 029899D0 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 029899D4 */ _t72 = cpu->r[29] + 0x00000004u;
|
|
/* 029899D4 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 029899D8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029899DC */ _t73 = cpu->r[29] + 0x00000000u;
|
|
/* 029899DC */ rbrew_write_f32(cpu->mem, _t73, cpu->f[1]);
|
|
/* 029899E0 */ _t74 = cpu->r[26] + 0x00000034u;
|
|
/* 029899E0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t74);
|
|
/* 029899E4 */ _t75 = cpu->r[7] + 0x0000001Cu;
|
|
/* 029899E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 029899E8 */ cpu->ctr = cpu->r[0];
|
|
/* 029899EC */ cpu->r[3] = cpu->r[26];
|
|
/* 029899F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_029899F4: ; // 0x29899f4
|
|
/* 029899F4 */ _t76 = cpu->r[26] + 0x00000034u;
|
|
/* 029899F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t76);
|
|
/* 029899F8 */ _t77 = cpu->r[10] + 0x0000003Cu;
|
|
/* 029899F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t77);
|
|
/* 029899FC */ cpu->ctr = cpu->r[0];
|
|
/* 02989A00 */ cpu->r[4] = cpu->r[28];
|
|
/* 02989A04 */ cpu->r[3] = cpu->r[26];
|
|
/* 02989A08 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02989A0C */ _t78 = cpu->r[26] + 0x00000040u;
|
|
/* 02989A0C */ cpu->r[8] = rbrew_read16(cpu->mem, _t78);
|
|
/* 02989A10 */ cpu->r[27] = 0x00000000u;
|
|
/* 02989A14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], cpu->r[8]);
|
|
/* 02989A18 */ cpu->r[26] = cpu->r[26] + 0x00000038u;
|
|
/* 02989A1C */ _t79 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989A1C */ _t80 = _t79 & 0x00000001u;
|
|
/* 02989A1C */ if (_t80) goto L_02989A20; else goto L_02989A54;
|
|
L_02989A20: ; // 0x2989a20
|
|
/* 02989A20 */ cpu->r[29] = 0x00000000u;
|
|
L_02989A24: ; // 0x2989a24
|
|
/* 02989A24 */ _t81 = cpu->r[26] + 0x00000000u;
|
|
/* 02989A24 */ cpu->r[12] = rbrew_read32(cpu->mem, _t81);
|
|
/* 02989A28 */ _t82 = cpu->r[12] + cpu->r[29];
|
|
/* 02989A28 */ cpu->r[6] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02989A2C */ cpu->r[4] = rbrew_rlwinm(cpu->r[6], 0x00000000u, 0x00000011u, 0x0000001Fu);
|
|
/* 02989A30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00007FFFu);
|
|
/* 02989A34 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989A34 */ _t84 = _t83 & 0x00000001u;
|
|
/* 02989A34 */ if (_t84) goto L_02989A44; else goto L_02989A38;
|
|
L_02989A38: ; // 0x2989a38
|
|
/* 02989A38 */ cpu->r[3] = cpu->r[31];
|
|
/* 02989A3C */ Gambit_fn_02991DA8(cpu);
|
|
/* 02989A40 */ _t85 = cpu->r[26] + 0x00000008u;
|
|
/* 02989A40 */ cpu->r[8] = rbrew_read16(cpu->mem, _t85);
|
|
L_02989A44: ; // 0x2989a44
|
|
/* 02989A44 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 02989A48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], cpu->r[8]);
|
|
/* 02989A4C */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 02989A50 */ _t86 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989A50 */ _t87 = _t86 & 0x00000001u;
|
|
/* 02989A50 */ if (_t87) goto L_02989A24; else goto L_02989A54;
|
|
L_02989A54: ; // 0x2989a54
|
|
/* 02989A54 */ cpu->r[25] = cpu->r[25] + 0x00000004u;
|
|
/* 02989A58 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[25], cpu->r[24]);
|
|
/* 02989A5C */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989A5C */ _t89 = _t88 & 0x00000001u;
|
|
/* 02989A5C */ if (_t89) goto L_02989A60; else goto L_0298999C;
|
|
L_02989A60: ; // 0x2989a60
|
|
/* 02989A60 */ /* nop */
|
|
/* 02989A64 */ _t90 = cpu->r[1] + 0x00000030u;
|
|
/* 02989A64 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t90);
|
|
/* 02989A68 */ _t91 = cpu->r[1] + 0x00000028u;
|
|
/* 02989A68 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t91);
|
|
/* 02989A6C */ _t92 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989A6C */ _t93 = _t92 & 0x00000001u;
|
|
/* 02989A6C */ if (_t93) goto L_02989A70; // else: addr-0 trap, fall-through
|
|
L_02989A70: ; // 0x2989a70
|
|
/* 02989A70 */ _t94 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02989A70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t94);
|
|
/* 02989A74 */ cpu->lr = cpu->r[0];
|
|
/* 02989A78 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 02989A7C */ return;
|
|
}
|
|
|
|
// fn_02989A80 @ 0x2989a80
|
|
void Gambit_fn_02989A80(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_02989A80: ; // 0x2989a80
|
|
/* 02989A80 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02989A80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989A80 */ cpu->r[1] = _t0;
|
|
/* 02989A84 */ /* nop */
|
|
/* 02989A88 */ cpu->r[0] = cpu->lr;
|
|
/* 02989A8C */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02989A8C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02989A90 */ cpu->r[29] = cpu->r[3];
|
|
/* 02989A94 */ cpu->r[28] = cpu->r[4];
|
|
/* 02989A98 */ _t2 = cpu->r[28] + 0x00000000u;
|
|
/* 02989A98 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02989A9C */ cpu->r[31] = cpu->r[5];
|
|
/* 02989AA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02989AA4 */ cpu->r[30] = cpu->r[6];
|
|
/* 02989AA8 */ _t3 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02989AA8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02989AA8 */ if (_t4) goto L_02989AAC; else goto L_02989ABC;
|
|
L_02989AAC: ; // 0x2989aac
|
|
/* 02989AAC */ cpu->r[6] = 0x00000004u;
|
|
/* 02989AB0 */ cpu->r[5] = cpu->r[30];
|
|
/* 02989AB4 */ cpu->r[3] = cpu->r[29] + 0x00000008u;
|
|
/* 02989AB8 */ Gambit_fn_028023CC(cpu);
|
|
L_02989ABC: ; // 0x2989abc
|
|
/* 02989ABC */ _t5 = cpu->r[28] + 0x0000008Cu;
|
|
/* 02989ABC */ cpu->r[6] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02989AC0 */ _t6 = cpu->r[28] + 0x00000118u;
|
|
/* 02989AC0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02989AC4 */ cpu->r[5] = cpu->r[6] + cpu->r[7];
|
|
/* 02989AC8 */ _t7 = cpu->r[28] + 0x000001A4u;
|
|
/* 02989AC8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02989ACC */ cpu->r[4] = cpu->r[5] + cpu->r[8];
|
|
/* 02989ACC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02989AD0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989AD0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02989AD0 */ if (_t9) goto L_02989AE4; else goto L_02989AD4;
|
|
L_02989AD4: ; // 0x2989ad4
|
|
/* 02989AD4 */ cpu->r[6] = 0x00000004u;
|
|
/* 02989AD8 */ cpu->r[5] = cpu->r[30];
|
|
/* 02989ADC */ cpu->r[3] = cpu->r[29] + 0x00000014u;
|
|
/* 02989AE0 */ Gambit_fn_028023CC(cpu);
|
|
L_02989AE4: ; // 0x2989ae4
|
|
/* 02989AE4 */ _t10 = cpu->r[29] + 0x00000004u;
|
|
/* 02989AE4 */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 02989AE8 */ _t11 = cpu->r[31] + 0x00000094u;
|
|
/* 02989AE8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02989AEC */ _t12 = cpu->r[4] + 0x0000002Cu;
|
|
/* 02989AEC */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02989AF0 */ Gambit_fn_029709A8(cpu);
|
|
/* 02989AF4 */ _t13 = cpu->r[28] + 0x00000000u;
|
|
/* 02989AF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02989AF8 */ _t14 = cpu->r[28] + 0x00000008u;
|
|
/* 02989AF8 */ cpu->r[24] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02989AFC */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989B00 */ _t15 = cpu->r[29] + 0x00000004u;
|
|
/* 02989B00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02989B04 */ cpu->r[31] = cpu->r[24] + cpu->r[9];
|
|
/* 02989B08 */ cpu->r[27] = 0x00000000u;
|
|
/* 02989B0C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[31]);
|
|
/* 02989B10 */ cpu->r[26] = cpu->r[12] + 0x00000094u;
|
|
/* 02989B14 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989B14 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02989B14 */ if (_t17) goto L_02989BA0; else goto L_02989B18;
|
|
L_02989B18: ; // 0x2989b18
|
|
/* 02989B18 */ cpu->r[25] = cpu->r[28] + 0x00000230u;
|
|
L_02989B1C: ; // 0x2989b1c
|
|
/* 02989B1C */ cpu->r[0] = cpu->r[27];
|
|
/* 02989B20 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 02989B24 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000080u);
|
|
/* 02989B28 */ _t18 = cpu->r[24] + 0x00000000u;
|
|
/* 02989B28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02989B2C */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989B2C */ _t20 = _t19 & 0x00000001u;
|
|
/* 02989B2C */ if (_t20) goto L_02989B30; else goto L_02989B58;
|
|
L_02989B30: ; // 0x2989b30
|
|
/* 02989B30 */ _t21 = cpu->r[25] + cpu->r[0];
|
|
/* 02989B30 */ cpu->r[6] = rbrew_read8(cpu->mem, _t21);
|
|
/* 02989B34 */ cpu->r[5] = 0x00000040u;
|
|
/* 02989B38 */ cpu->r[3] = cpu->r[26];
|
|
/* 02989B3C */ cpu->r[7] = cpu->r[30];
|
|
/* 02989B40 */ Gambit_fn_0298AD5C(cpu);
|
|
/* 02989B44 */ _t22 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989B44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02989B48 */ _t23 = cpu->r[29] + 0x00000008u;
|
|
/* 02989B48 */ cpu->r[10] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02989B4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 02989B50 */ _t24 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989B50 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02989B50 */ if (_t25) goto L_02989B54; else goto L_02989B94;
|
|
L_02989B54: ; // 0x2989b54
|
|
/* 02989B54 */ goto L_02989B7C;
|
|
L_02989B58: ; // 0x2989b58
|
|
/* 02989B58 */ _t26 = cpu->r[25] + 0x00000000u;
|
|
/* 02989B58 */ cpu->r[6] = rbrew_read8(cpu->mem, _t26);
|
|
/* 02989B5C */ cpu->r[5] = 0x00000040u;
|
|
/* 02989B60 */ cpu->r[3] = cpu->r[26];
|
|
/* 02989B64 */ cpu->r[7] = cpu->r[30];
|
|
/* 02989B68 */ Gambit_fn_0298AD5C(cpu);
|
|
/* 02989B6C */ _t27 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989B6C */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02989B70 */ _t28 = cpu->r[29] + 0x00000008u;
|
|
/* 02989B70 */ cpu->r[10] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02989B74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], cpu->r[0]);
|
|
/* 02989B78 */ _t29 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989B78 */ _t30 = _t29 & 0x00000001u;
|
|
/* 02989B78 */ if (_t30) goto L_02989B7C; else goto L_02989B94;
|
|
L_02989B7C: ; // 0x2989b7c
|
|
/* 02989B7C */ _t31 = cpu->r[29] + 0x00000010u;
|
|
/* 02989B7C */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 02989B80 */ cpu->r[4] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989B84 */ _t32 = cpu->r[4] + cpu->r[5];
|
|
/* 02989B84 */ rbrew_write32(cpu->mem, _t32, cpu->r[3]);
|
|
/* 02989B88 */ _t33 = cpu->r[29] + 0x00000008u;
|
|
/* 02989B88 */ cpu->r[6] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02989B8C */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 02989B90 */ _t34 = cpu->r[29] + 0x00000008u;
|
|
/* 02989B90 */ rbrew_write32(cpu->mem, _t34, cpu->r[6]);
|
|
L_02989B94: ; // 0x2989b94
|
|
/* 02989B94 */ cpu->r[24] = cpu->r[24] + 0x00000004u;
|
|
/* 02989B98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[31]);
|
|
/* 02989B9C */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989B9C */ _t36 = _t35 & 0x00000001u;
|
|
/* 02989B9C */ if (_t36) goto L_02989BA0; else goto L_02989B1C;
|
|
L_02989BA0: ; // 0x2989ba0
|
|
/* 02989BA0 */ _t37 = cpu->r[28] + 0x0000008Cu;
|
|
/* 02989BA0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02989BA4 */ _t38 = cpu->r[28] + 0x00000094u;
|
|
/* 02989BA4 */ cpu->r[24] = rbrew_read32(cpu->mem, _t38);
|
|
/* 02989BA8 */ cpu->r[7] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989BAC */ cpu->r[31] = cpu->r[24] + cpu->r[7];
|
|
/* 02989BB0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[31]);
|
|
/* 02989BB4 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989BB4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 02989BB4 */ if (_t40) goto L_02989C40; else goto L_02989BB8;
|
|
L_02989BB8: ; // 0x2989bb8
|
|
/* 02989BB8 */ cpu->r[25] = cpu->r[28] + 0x00000230u;
|
|
L_02989BBC: ; // 0x2989bbc
|
|
/* 02989BBC */ cpu->r[10] = cpu->r[27];
|
|
/* 02989BC0 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 02989BC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000080u);
|
|
/* 02989BC8 */ _t41 = cpu->r[24] + 0x00000000u;
|
|
/* 02989BC8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t41);
|
|
/* 02989BCC */ _t42 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989BCC */ _t43 = _t42 & 0x00000001u;
|
|
/* 02989BCC */ if (_t43) goto L_02989BD0; else goto L_02989BF8;
|
|
L_02989BD0: ; // 0x2989bd0
|
|
/* 02989BD0 */ _t44 = cpu->r[25] + cpu->r[10];
|
|
/* 02989BD0 */ cpu->r[6] = rbrew_read8(cpu->mem, _t44);
|
|
/* 02989BD4 */ cpu->r[5] = 0x00000004u;
|
|
/* 02989BD8 */ cpu->r[3] = cpu->r[26];
|
|
/* 02989BDC */ cpu->r[7] = cpu->r[30];
|
|
/* 02989BE0 */ Gambit_fn_0298AF98(cpu);
|
|
/* 02989BE4 */ _t45 = cpu->r[29] + 0x00000018u;
|
|
/* 02989BE4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 02989BE8 */ _t46 = cpu->r[29] + 0x00000014u;
|
|
/* 02989BE8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t46);
|
|
/* 02989BEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[0]);
|
|
/* 02989BF0 */ _t47 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989BF0 */ _t48 = _t47 & 0x00000001u;
|
|
/* 02989BF0 */ if (_t48) goto L_02989BF4; else goto L_02989C34;
|
|
L_02989BF4: ; // 0x2989bf4
|
|
/* 02989BF4 */ goto L_02989C1C;
|
|
L_02989BF8: ; // 0x2989bf8
|
|
/* 02989BF8 */ _t49 = cpu->r[25] + 0x00000000u;
|
|
/* 02989BF8 */ cpu->r[6] = rbrew_read8(cpu->mem, _t49);
|
|
/* 02989BFC */ cpu->r[5] = 0x00000004u;
|
|
/* 02989C00 */ cpu->r[3] = cpu->r[26];
|
|
/* 02989C04 */ cpu->r[7] = cpu->r[30];
|
|
/* 02989C08 */ Gambit_fn_0298AF98(cpu);
|
|
/* 02989C0C */ _t50 = cpu->r[29] + 0x00000018u;
|
|
/* 02989C0C */ cpu->r[0] = rbrew_read32(cpu->mem, _t50);
|
|
/* 02989C10 */ _t51 = cpu->r[29] + 0x00000014u;
|
|
/* 02989C10 */ cpu->r[9] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02989C14 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[0]);
|
|
/* 02989C18 */ _t52 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989C18 */ _t53 = _t52 & 0x00000001u;
|
|
/* 02989C18 */ if (_t53) goto L_02989C1C; else goto L_02989C34;
|
|
L_02989C1C: ; // 0x2989c1c
|
|
/* 02989C1C */ _t54 = cpu->r[29] + 0x0000001Cu;
|
|
/* 02989C1C */ cpu->r[0] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02989C20 */ cpu->r[12] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989C24 */ _t55 = cpu->r[12] + cpu->r[0];
|
|
/* 02989C24 */ rbrew_write32(cpu->mem, _t55, cpu->r[3]);
|
|
/* 02989C28 */ _t56 = cpu->r[29] + 0x00000014u;
|
|
/* 02989C28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02989C2C */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 02989C30 */ _t57 = cpu->r[29] + 0x00000014u;
|
|
/* 02989C30 */ rbrew_write32(cpu->mem, _t57, cpu->r[4]);
|
|
L_02989C34: ; // 0x2989c34
|
|
/* 02989C34 */ cpu->r[24] = cpu->r[24] + 0x00000004u;
|
|
/* 02989C38 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[31]);
|
|
/* 02989C3C */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989C3C */ _t59 = _t58 & 0x00000001u;
|
|
/* 02989C3C */ if (_t59) goto L_02989C40; else goto L_02989BBC;
|
|
L_02989C40: ; // 0x2989c40
|
|
/* 02989C40 */ _t60 = cpu->r[28] + 0x00000118u;
|
|
/* 02989C40 */ cpu->r[7] = rbrew_read32(cpu->mem, _t60);
|
|
/* 02989C44 */ _t61 = cpu->r[28] + 0x00000120u;
|
|
/* 02989C44 */ cpu->r[24] = rbrew_read32(cpu->mem, _t61);
|
|
/* 02989C48 */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989C4C */ cpu->r[31] = cpu->r[24] + cpu->r[6];
|
|
/* 02989C50 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[31]);
|
|
/* 02989C54 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989C54 */ _t63 = _t62 & 0x00000001u;
|
|
/* 02989C54 */ if (_t63) goto L_02989CE0; else goto L_02989C58;
|
|
L_02989C58: ; // 0x2989c58
|
|
/* 02989C58 */ cpu->r[25] = cpu->r[28] + 0x00000230u;
|
|
L_02989C5C: ; // 0x2989c5c
|
|
/* 02989C5C */ cpu->r[8] = cpu->r[27];
|
|
/* 02989C60 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 02989C64 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], 0x00000080u);
|
|
/* 02989C68 */ _t64 = cpu->r[24] + 0x00000000u;
|
|
/* 02989C68 */ cpu->r[4] = rbrew_read32(cpu->mem, _t64);
|
|
/* 02989C6C */ _t65 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989C6C */ _t66 = _t65 & 0x00000001u;
|
|
/* 02989C6C */ if (_t66) goto L_02989C70; else goto L_02989C98;
|
|
L_02989C70: ; // 0x2989c70
|
|
/* 02989C70 */ _t67 = cpu->r[25] + cpu->r[8];
|
|
/* 02989C70 */ cpu->r[6] = rbrew_read8(cpu->mem, _t67);
|
|
/* 02989C74 */ cpu->r[5] = 0x00000004u;
|
|
/* 02989C78 */ cpu->r[3] = cpu->r[26];
|
|
/* 02989C7C */ cpu->r[7] = cpu->r[30];
|
|
/* 02989C80 */ Gambit_fn_0298B1DC(cpu);
|
|
/* 02989C84 */ _t68 = cpu->r[29] + 0x00000018u;
|
|
/* 02989C84 */ cpu->r[8] = rbrew_read32(cpu->mem, _t68);
|
|
/* 02989C88 */ _t69 = cpu->r[29] + 0x00000014u;
|
|
/* 02989C88 */ cpu->r[9] = rbrew_read32(cpu->mem, _t69);
|
|
/* 02989C8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[8]);
|
|
/* 02989C90 */ _t70 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989C90 */ _t71 = _t70 & 0x00000001u;
|
|
/* 02989C90 */ if (_t71) goto L_02989C94; else goto L_02989CD4;
|
|
L_02989C94: ; // 0x2989c94
|
|
/* 02989C94 */ goto L_02989CBC;
|
|
L_02989C98: ; // 0x2989c98
|
|
/* 02989C98 */ _t72 = cpu->r[25] + 0x00000000u;
|
|
/* 02989C98 */ cpu->r[6] = rbrew_read8(cpu->mem, _t72);
|
|
/* 02989C9C */ cpu->r[5] = 0x00000004u;
|
|
/* 02989CA0 */ cpu->r[3] = cpu->r[26];
|
|
/* 02989CA4 */ cpu->r[7] = cpu->r[30];
|
|
/* 02989CA8 */ Gambit_fn_0298B1DC(cpu);
|
|
/* 02989CAC */ _t73 = cpu->r[29] + 0x00000018u;
|
|
/* 02989CAC */ cpu->r[8] = rbrew_read32(cpu->mem, _t73);
|
|
/* 02989CB0 */ _t74 = cpu->r[29] + 0x00000014u;
|
|
/* 02989CB0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t74);
|
|
/* 02989CB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[8]);
|
|
/* 02989CB8 */ _t75 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989CB8 */ _t76 = _t75 & 0x00000001u;
|
|
/* 02989CB8 */ if (_t76) goto L_02989CBC; else goto L_02989CD4;
|
|
L_02989CBC: ; // 0x2989cbc
|
|
/* 02989CBC */ _t77 = cpu->r[29] + 0x0000001Cu;
|
|
/* 02989CBC */ cpu->r[10] = rbrew_read32(cpu->mem, _t77);
|
|
/* 02989CC0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989CC4 */ _t78 = cpu->r[9] + cpu->r[10];
|
|
/* 02989CC4 */ rbrew_write32(cpu->mem, _t78, cpu->r[3]);
|
|
/* 02989CC8 */ _t79 = cpu->r[29] + 0x00000014u;
|
|
/* 02989CC8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t79);
|
|
/* 02989CCC */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 02989CD0 */ _t80 = cpu->r[29] + 0x00000014u;
|
|
/* 02989CD0 */ rbrew_write32(cpu->mem, _t80, cpu->r[12]);
|
|
L_02989CD4: ; // 0x2989cd4
|
|
/* 02989CD4 */ cpu->r[24] = cpu->r[24] + 0x00000004u;
|
|
/* 02989CD8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[31]);
|
|
/* 02989CDC */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989CDC */ _t82 = _t81 & 0x00000001u;
|
|
/* 02989CDC */ if (_t82) goto L_02989CE0; else goto L_02989C5C;
|
|
L_02989CE0: ; // 0x2989ce0
|
|
/* 02989CE0 */ _t83 = cpu->r[28] + 0x000001A4u;
|
|
/* 02989CE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t83);
|
|
/* 02989CE4 */ _t84 = cpu->r[28] + 0x000001ACu;
|
|
/* 02989CE4 */ cpu->r[24] = rbrew_read32(cpu->mem, _t84);
|
|
/* 02989CE8 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989CEC */ cpu->r[31] = cpu->r[24] + cpu->r[10];
|
|
/* 02989CF0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[31]);
|
|
/* 02989CF4 */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989CF4 */ _t86 = _t85 & 0x00000001u;
|
|
/* 02989CF4 */ if (_t86) goto L_02989D80; else goto L_02989CF8;
|
|
L_02989CF8: ; // 0x2989cf8
|
|
/* 02989CF8 */ cpu->r[25] = cpu->r[28] + 0x00000230u;
|
|
L_02989CFC: ; // 0x2989cfc
|
|
/* 02989CFC */ cpu->r[0] = cpu->r[27];
|
|
/* 02989D00 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 02989D04 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000080u);
|
|
/* 02989D08 */ _t87 = cpu->r[24] + 0x00000000u;
|
|
/* 02989D08 */ cpu->r[4] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02989D0C */ _t88 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989D0C */ _t89 = _t88 & 0x00000001u;
|
|
/* 02989D0C */ if (_t89) goto L_02989D10; else goto L_02989D38;
|
|
L_02989D10: ; // 0x2989d10
|
|
/* 02989D10 */ _t90 = cpu->r[25] + cpu->r[0];
|
|
/* 02989D10 */ cpu->r[6] = rbrew_read8(cpu->mem, _t90);
|
|
/* 02989D14 */ cpu->r[5] = 0x00000004u;
|
|
/* 02989D18 */ cpu->r[3] = cpu->r[26];
|
|
/* 02989D1C */ cpu->r[7] = cpu->r[30];
|
|
/* 02989D20 */ Gambit_fn_0298B43C(cpu);
|
|
/* 02989D24 */ _t91 = cpu->r[29] + 0x00000018u;
|
|
/* 02989D24 */ cpu->r[5] = rbrew_read32(cpu->mem, _t91);
|
|
/* 02989D28 */ _t92 = cpu->r[29] + 0x00000014u;
|
|
/* 02989D28 */ cpu->r[9] = rbrew_read32(cpu->mem, _t92);
|
|
/* 02989D2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[5]);
|
|
/* 02989D30 */ _t93 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989D30 */ _t94 = _t93 & 0x00000001u;
|
|
/* 02989D30 */ if (_t94) goto L_02989D34; else goto L_02989D74;
|
|
L_02989D34: ; // 0x2989d34
|
|
/* 02989D34 */ goto L_02989D5C;
|
|
L_02989D38: ; // 0x2989d38
|
|
/* 02989D38 */ _t95 = cpu->r[25] + 0x00000000u;
|
|
/* 02989D38 */ cpu->r[6] = rbrew_read8(cpu->mem, _t95);
|
|
/* 02989D3C */ cpu->r[5] = 0x00000004u;
|
|
/* 02989D40 */ cpu->r[3] = cpu->r[26];
|
|
/* 02989D44 */ cpu->r[7] = cpu->r[30];
|
|
/* 02989D48 */ Gambit_fn_0298B43C(cpu);
|
|
/* 02989D4C */ _t96 = cpu->r[29] + 0x00000018u;
|
|
/* 02989D4C */ cpu->r[5] = rbrew_read32(cpu->mem, _t96);
|
|
/* 02989D50 */ _t97 = cpu->r[29] + 0x00000014u;
|
|
/* 02989D50 */ cpu->r[9] = rbrew_read32(cpu->mem, _t97);
|
|
/* 02989D54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], cpu->r[5]);
|
|
/* 02989D58 */ _t98 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02989D58 */ _t99 = _t98 & 0x00000001u;
|
|
/* 02989D58 */ if (_t99) goto L_02989D5C; else goto L_02989D74;
|
|
L_02989D5C: ; // 0x2989d5c
|
|
/* 02989D5C */ _t100 = cpu->r[29] + 0x0000001Cu;
|
|
/* 02989D5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t100);
|
|
/* 02989D60 */ cpu->r[6] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02989D64 */ _t101 = cpu->r[6] + cpu->r[0];
|
|
/* 02989D64 */ rbrew_write32(cpu->mem, _t101, cpu->r[3]);
|
|
/* 02989D68 */ _t102 = cpu->r[29] + 0x00000014u;
|
|
/* 02989D68 */ cpu->r[8] = rbrew_read32(cpu->mem, _t102);
|
|
/* 02989D6C */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 02989D70 */ _t103 = cpu->r[29] + 0x00000014u;
|
|
/* 02989D70 */ rbrew_write32(cpu->mem, _t103, cpu->r[8]);
|
|
L_02989D74: ; // 0x2989d74
|
|
/* 02989D74 */ cpu->r[24] = cpu->r[24] + 0x00000004u;
|
|
/* 02989D78 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[24], cpu->r[31]);
|
|
/* 02989D7C */ _t104 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989D7C */ _t105 = _t104 & 0x00000001u;
|
|
/* 02989D7C */ if (_t105) goto L_02989D80; else goto L_02989CFC;
|
|
L_02989D80: ; // 0x2989d80
|
|
/* 02989D80 */ cpu->r[5] = 0x10150000u;
|
|
/* 02989D84 */ _t106 = cpu->r[29] + 0x00000004u;
|
|
/* 02989D84 */ cpu->r[4] = rbrew_read32(cpu->mem, _t106);
|
|
/* 02989D88 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989D8C */ _t107 = cpu->r[5] + 0xFFFFEF7Cu;
|
|
/* 02989D8C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t107);
|
|
/* 02989D90 */ cpu->r[5] = 0x00000000u;
|
|
/* 02989D94 */ Gambit_fn_029897E8(cpu);
|
|
/* 02989D98 */ /* nop */
|
|
/* 02989D9C */ _t108 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02989D9C */ cpu->r[0] = rbrew_read32(cpu->mem, _t108);
|
|
/* 02989DA0 */ cpu->lr = cpu->r[0];
|
|
/* 02989DA4 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 02989DA8 */ return;
|
|
}
|
|
|
|
// fn_02989DAC @ 0x2989dac
|
|
void Gambit_fn_02989DAC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57;
|
|
|
|
L_02989DAC: ; // 0x2989dac
|
|
/* 02989DAC */ cpu->r[0] = cpu->lr;
|
|
/* 02989DB0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02989DB0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989DB0 */ cpu->r[1] = _t0;
|
|
/* 02989DB4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02989DB4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02989DB8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02989DB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02989DBC */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 02989DBC */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 02989DC0 */ cpu->r[31] = cpu->r[3];
|
|
/* 02989DC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989DC4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02989DC4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02989DC8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DC8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02989DC8 */ if (_t6) goto L_02989DCC; else goto L_02989DDC;
|
|
L_02989DCC: ; // 0x2989dcc
|
|
/* 02989DCC */ cpu->r[3] = 0x000002B4u;
|
|
/* 02989DD0 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989DD4 */ cpu->r[31] = cpu->r[3];
|
|
/* 02989DD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989DD8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DD8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02989DD8 */ if (_t8) goto L_02989F14; else goto L_02989DDC;
|
|
L_02989DDC: ; // 0x2989ddc
|
|
/* 02989DDC */ cpu->r[29] = cpu->r[31];
|
|
/* 02989DDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989DE0 */ cpu->r[30] = 0x00000000u;
|
|
/* 02989DE4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DE4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02989DE4 */ if (_t10) goto L_02989DE8; else goto L_02989DF8;
|
|
L_02989DE8: ; // 0x2989de8
|
|
/* 02989DE8 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 02989DEC */ Gambit_fn_02801A78(cpu);
|
|
/* 02989DF0 */ cpu->r[29] = cpu->r[3];
|
|
/* 02989DF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989DF4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DF4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02989DF4 */ if (_t12) goto L_02989E2C; else goto L_02989DF8;
|
|
L_02989DF8: ; // 0x2989df8
|
|
/* 02989DF8 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989DF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989DFC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DFC */ _t14 = _t13 & 0x00000001u;
|
|
/* 02989DFC */ if (_t14) goto L_02989E00; else goto L_02989E10;
|
|
L_02989E00: ; // 0x2989e00
|
|
/* 02989E00 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989E04 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989E08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989E0C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E0C */ _t16 = _t15 & 0x00000001u;
|
|
/* 02989E0C */ if (_t16) goto L_02989E1C; else goto L_02989E10;
|
|
L_02989E10: ; // 0x2989e10
|
|
/* 02989E10 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 02989E10 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 02989E14 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 02989E14 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
/* 02989E18 */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 02989E18 */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
L_02989E1C: ; // 0x2989e1c
|
|
/* 02989E1C */ cpu->r[4] = 0x00000020u;
|
|
/* 02989E20 */ cpu->r[5] = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989E24 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989E28 */ Gambit_fn_028023A8(cpu);
|
|
L_02989E2C: ; // 0x2989e2c
|
|
/* 02989E2C */ cpu->r[29] = cpu->r[31] + 0x0000008Cu;
|
|
/* 02989E2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989E30 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E30 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02989E30 */ if (_t21) goto L_02989E34; else goto L_02989E44;
|
|
L_02989E34: ; // 0x2989e34
|
|
/* 02989E34 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 02989E38 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989E3C */ cpu->r[29] = cpu->r[3];
|
|
/* 02989E3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989E40 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E40 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02989E40 */ if (_t23) goto L_02989E78; else goto L_02989E44;
|
|
L_02989E44: ; // 0x2989e44
|
|
/* 02989E44 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989E44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989E48 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E48 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02989E48 */ if (_t25) goto L_02989E4C; else goto L_02989E5C;
|
|
L_02989E4C: ; // 0x2989e4c
|
|
/* 02989E4C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989E50 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989E54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989E58 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E58 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02989E58 */ if (_t27) goto L_02989E68; else goto L_02989E5C;
|
|
L_02989E5C: ; // 0x2989e5c
|
|
/* 02989E5C */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 02989E5C */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 02989E60 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 02989E60 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
/* 02989E64 */ _t30 = cpu->r[3] + 0x00000008u;
|
|
/* 02989E64 */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
L_02989E68: ; // 0x2989e68
|
|
/* 02989E68 */ cpu->r[4] = 0x00000020u;
|
|
/* 02989E6C */ cpu->r[5] = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989E70 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989E74 */ Gambit_fn_028023A8(cpu);
|
|
L_02989E78: ; // 0x2989e78
|
|
/* 02989E78 */ cpu->r[29] = cpu->r[31] + 0x00000118u;
|
|
/* 02989E78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989E7C */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E7C */ _t32 = _t31 & 0x00000001u;
|
|
/* 02989E7C */ if (_t32) goto L_02989E80; else goto L_02989E90;
|
|
L_02989E80: ; // 0x2989e80
|
|
/* 02989E80 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 02989E84 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989E88 */ cpu->r[29] = cpu->r[3];
|
|
/* 02989E88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989E8C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E8C */ _t34 = _t33 & 0x00000001u;
|
|
/* 02989E8C */ if (_t34) goto L_02989EC4; else goto L_02989E90;
|
|
L_02989E90: ; // 0x2989e90
|
|
/* 02989E90 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989E90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989E94 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E94 */ _t36 = _t35 & 0x00000001u;
|
|
/* 02989E94 */ if (_t36) goto L_02989E98; else goto L_02989EA8;
|
|
L_02989E98: ; // 0x2989e98
|
|
/* 02989E98 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989E9C */ Gambit_fn_02801A78(cpu);
|
|
/* 02989EA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989EA4 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989EA4 */ _t38 = _t37 & 0x00000001u;
|
|
/* 02989EA4 */ if (_t38) goto L_02989EB4; else goto L_02989EA8;
|
|
L_02989EA8: ; // 0x2989ea8
|
|
/* 02989EA8 */ _t39 = cpu->r[3] + 0x00000004u;
|
|
/* 02989EA8 */ rbrew_write32(cpu->mem, _t39, cpu->r[30]);
|
|
/* 02989EAC */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 02989EAC */ rbrew_write32(cpu->mem, _t40, cpu->r[30]);
|
|
/* 02989EB0 */ _t41 = cpu->r[3] + 0x00000008u;
|
|
/* 02989EB0 */ rbrew_write32(cpu->mem, _t41, cpu->r[30]);
|
|
L_02989EB4: ; // 0x2989eb4
|
|
/* 02989EB4 */ cpu->r[4] = 0x00000020u;
|
|
/* 02989EB8 */ cpu->r[5] = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989EBC */ cpu->r[3] = cpu->r[29];
|
|
/* 02989EC0 */ Gambit_fn_028023A8(cpu);
|
|
L_02989EC4: ; // 0x2989ec4
|
|
/* 02989EC4 */ cpu->r[29] = cpu->r[31] + 0x000001A4u;
|
|
/* 02989EC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989EC8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989EC8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 02989EC8 */ if (_t43) goto L_02989ECC; else goto L_02989EDC;
|
|
L_02989ECC: ; // 0x2989ecc
|
|
/* 02989ECC */ cpu->r[3] = 0x0000008Cu;
|
|
/* 02989ED0 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989ED4 */ cpu->r[29] = cpu->r[3];
|
|
/* 02989ED4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989ED8 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989ED8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 02989ED8 */ if (_t45) goto L_02989F10; else goto L_02989EDC;
|
|
L_02989EDC: ; // 0x2989edc
|
|
/* 02989EDC */ cpu->r[3] = cpu->r[29];
|
|
/* 02989EDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989EE0 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989EE0 */ _t47 = _t46 & 0x00000001u;
|
|
/* 02989EE0 */ if (_t47) goto L_02989EE4; else goto L_02989EF4;
|
|
L_02989EE4: ; // 0x2989ee4
|
|
/* 02989EE4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989EE8 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989EEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989EF0 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989EF0 */ _t49 = _t48 & 0x00000001u;
|
|
/* 02989EF0 */ if (_t49) goto L_02989F00; else goto L_02989EF4;
|
|
L_02989EF4: ; // 0x2989ef4
|
|
/* 02989EF4 */ _t50 = cpu->r[3] + 0x00000004u;
|
|
/* 02989EF4 */ rbrew_write32(cpu->mem, _t50, cpu->r[30]);
|
|
/* 02989EF8 */ _t51 = cpu->r[3] + 0x00000000u;
|
|
/* 02989EF8 */ rbrew_write32(cpu->mem, _t51, cpu->r[30]);
|
|
/* 02989EFC */ _t52 = cpu->r[3] + 0x00000008u;
|
|
/* 02989EFC */ rbrew_write32(cpu->mem, _t52, cpu->r[30]);
|
|
L_02989F00: ; // 0x2989f00
|
|
/* 02989F00 */ cpu->r[4] = 0x00000020u;
|
|
/* 02989F04 */ cpu->r[5] = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989F08 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989F0C */ Gambit_fn_028023A8(cpu);
|
|
L_02989F10: ; // 0x2989f10
|
|
/* 02989F10 */ _t53 = cpu->r[31] + 0x000002B0u;
|
|
/* 02989F10 */ rbrew_write32(cpu->mem, _t53, cpu->r[30]);
|
|
L_02989F14: ; // 0x2989f14
|
|
/* 02989F14 */ _t54 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02989F14 */ cpu->r[29] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02989F18 */ _t55 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02989F18 */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02989F1C */ cpu->r[3] = cpu->r[31];
|
|
/* 02989F20 */ _t56 = cpu->r[1] + 0x00000010u;
|
|
/* 02989F20 */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02989F24 */ cpu->lr = cpu->r[0];
|
|
/* 02989F28 */ _t57 = cpu->r[1] + 0x00000014u;
|
|
/* 02989F28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02989F2C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02989F30 */ return;
|
|
}
|
|
|
|
// fn_02989DB0 @ 0x2989db0
|
|
void Gambit_fn_02989DB0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57;
|
|
|
|
L_02989DB0: ; // 0x2989db0
|
|
/* 02989DB0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02989DB0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989DB0 */ cpu->r[1] = _t0;
|
|
/* 02989DB4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02989DB4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02989DB8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02989DB8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02989DBC */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 02989DBC */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 02989DC0 */ cpu->r[31] = cpu->r[3];
|
|
/* 02989DC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989DC4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02989DC4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02989DC8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DC8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02989DC8 */ if (_t6) goto L_02989DCC; else goto L_02989DDC;
|
|
L_02989DCC: ; // 0x2989dcc
|
|
/* 02989DCC */ cpu->r[3] = 0x000002B4u;
|
|
/* 02989DD0 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989DD4 */ cpu->r[31] = cpu->r[3];
|
|
/* 02989DD4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02989DD8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DD8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02989DD8 */ if (_t8) goto L_02989F14; else goto L_02989DDC;
|
|
L_02989DDC: ; // 0x2989ddc
|
|
/* 02989DDC */ cpu->r[29] = cpu->r[31];
|
|
/* 02989DDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989DE0 */ cpu->r[30] = 0x00000000u;
|
|
/* 02989DE4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DE4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02989DE4 */ if (_t10) goto L_02989DE8; else goto L_02989DF8;
|
|
L_02989DE8: ; // 0x2989de8
|
|
/* 02989DE8 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 02989DEC */ Gambit_fn_02801A78(cpu);
|
|
/* 02989DF0 */ cpu->r[29] = cpu->r[3];
|
|
/* 02989DF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989DF4 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DF4 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02989DF4 */ if (_t12) goto L_02989E2C; else goto L_02989DF8;
|
|
L_02989DF8: ; // 0x2989df8
|
|
/* 02989DF8 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989DF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989DFC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989DFC */ _t14 = _t13 & 0x00000001u;
|
|
/* 02989DFC */ if (_t14) goto L_02989E00; else goto L_02989E10;
|
|
L_02989E00: ; // 0x2989e00
|
|
/* 02989E00 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989E04 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989E08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989E0C */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E0C */ _t16 = _t15 & 0x00000001u;
|
|
/* 02989E0C */ if (_t16) goto L_02989E1C; else goto L_02989E10;
|
|
L_02989E10: ; // 0x2989e10
|
|
/* 02989E10 */ _t17 = cpu->r[3] + 0x00000004u;
|
|
/* 02989E10 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 02989E14 */ _t18 = cpu->r[3] + 0x00000000u;
|
|
/* 02989E14 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
/* 02989E18 */ _t19 = cpu->r[3] + 0x00000008u;
|
|
/* 02989E18 */ rbrew_write32(cpu->mem, _t19, cpu->r[30]);
|
|
L_02989E1C: ; // 0x2989e1c
|
|
/* 02989E1C */ cpu->r[4] = 0x00000020u;
|
|
/* 02989E20 */ cpu->r[5] = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989E24 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989E28 */ Gambit_fn_028023A8(cpu);
|
|
L_02989E2C: ; // 0x2989e2c
|
|
/* 02989E2C */ cpu->r[29] = cpu->r[31] + 0x0000008Cu;
|
|
/* 02989E2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989E30 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E30 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02989E30 */ if (_t21) goto L_02989E34; else goto L_02989E44;
|
|
L_02989E34: ; // 0x2989e34
|
|
/* 02989E34 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 02989E38 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989E3C */ cpu->r[29] = cpu->r[3];
|
|
/* 02989E3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989E40 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E40 */ _t23 = _t22 & 0x00000001u;
|
|
/* 02989E40 */ if (_t23) goto L_02989E78; else goto L_02989E44;
|
|
L_02989E44: ; // 0x2989e44
|
|
/* 02989E44 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989E44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989E48 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E48 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02989E48 */ if (_t25) goto L_02989E4C; else goto L_02989E5C;
|
|
L_02989E4C: ; // 0x2989e4c
|
|
/* 02989E4C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989E50 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989E54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989E58 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E58 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02989E58 */ if (_t27) goto L_02989E68; else goto L_02989E5C;
|
|
L_02989E5C: ; // 0x2989e5c
|
|
/* 02989E5C */ _t28 = cpu->r[3] + 0x00000004u;
|
|
/* 02989E5C */ rbrew_write32(cpu->mem, _t28, cpu->r[30]);
|
|
/* 02989E60 */ _t29 = cpu->r[3] + 0x00000000u;
|
|
/* 02989E60 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
/* 02989E64 */ _t30 = cpu->r[3] + 0x00000008u;
|
|
/* 02989E64 */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
L_02989E68: ; // 0x2989e68
|
|
/* 02989E68 */ cpu->r[4] = 0x00000020u;
|
|
/* 02989E6C */ cpu->r[5] = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989E70 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989E74 */ Gambit_fn_028023A8(cpu);
|
|
L_02989E78: ; // 0x2989e78
|
|
/* 02989E78 */ cpu->r[29] = cpu->r[31] + 0x00000118u;
|
|
/* 02989E78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989E7C */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E7C */ _t32 = _t31 & 0x00000001u;
|
|
/* 02989E7C */ if (_t32) goto L_02989E80; else goto L_02989E90;
|
|
L_02989E80: ; // 0x2989e80
|
|
/* 02989E80 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 02989E84 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989E88 */ cpu->r[29] = cpu->r[3];
|
|
/* 02989E88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989E8C */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E8C */ _t34 = _t33 & 0x00000001u;
|
|
/* 02989E8C */ if (_t34) goto L_02989EC4; else goto L_02989E90;
|
|
L_02989E90: ; // 0x2989e90
|
|
/* 02989E90 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989E90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989E94 */ _t35 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989E94 */ _t36 = _t35 & 0x00000001u;
|
|
/* 02989E94 */ if (_t36) goto L_02989E98; else goto L_02989EA8;
|
|
L_02989E98: ; // 0x2989e98
|
|
/* 02989E98 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989E9C */ Gambit_fn_02801A78(cpu);
|
|
/* 02989EA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989EA4 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989EA4 */ _t38 = _t37 & 0x00000001u;
|
|
/* 02989EA4 */ if (_t38) goto L_02989EB4; else goto L_02989EA8;
|
|
L_02989EA8: ; // 0x2989ea8
|
|
/* 02989EA8 */ _t39 = cpu->r[3] + 0x00000004u;
|
|
/* 02989EA8 */ rbrew_write32(cpu->mem, _t39, cpu->r[30]);
|
|
/* 02989EAC */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 02989EAC */ rbrew_write32(cpu->mem, _t40, cpu->r[30]);
|
|
/* 02989EB0 */ _t41 = cpu->r[3] + 0x00000008u;
|
|
/* 02989EB0 */ rbrew_write32(cpu->mem, _t41, cpu->r[30]);
|
|
L_02989EB4: ; // 0x2989eb4
|
|
/* 02989EB4 */ cpu->r[4] = 0x00000020u;
|
|
/* 02989EB8 */ cpu->r[5] = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989EBC */ cpu->r[3] = cpu->r[29];
|
|
/* 02989EC0 */ Gambit_fn_028023A8(cpu);
|
|
L_02989EC4: ; // 0x2989ec4
|
|
/* 02989EC4 */ cpu->r[29] = cpu->r[31] + 0x000001A4u;
|
|
/* 02989EC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989EC8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989EC8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 02989EC8 */ if (_t43) goto L_02989ECC; else goto L_02989EDC;
|
|
L_02989ECC: ; // 0x2989ecc
|
|
/* 02989ECC */ cpu->r[3] = 0x0000008Cu;
|
|
/* 02989ED0 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989ED4 */ cpu->r[29] = cpu->r[3];
|
|
/* 02989ED4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 02989ED8 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989ED8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 02989ED8 */ if (_t45) goto L_02989F10; else goto L_02989EDC;
|
|
L_02989EDC: ; // 0x2989edc
|
|
/* 02989EDC */ cpu->r[3] = cpu->r[29];
|
|
/* 02989EDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989EE0 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989EE0 */ _t47 = _t46 & 0x00000001u;
|
|
/* 02989EE0 */ if (_t47) goto L_02989EE4; else goto L_02989EF4;
|
|
L_02989EE4: ; // 0x2989ee4
|
|
/* 02989EE4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 02989EE8 */ Gambit_fn_02801A78(cpu);
|
|
/* 02989EEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02989EF0 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989EF0 */ _t49 = _t48 & 0x00000001u;
|
|
/* 02989EF0 */ if (_t49) goto L_02989F00; else goto L_02989EF4;
|
|
L_02989EF4: ; // 0x2989ef4
|
|
/* 02989EF4 */ _t50 = cpu->r[3] + 0x00000004u;
|
|
/* 02989EF4 */ rbrew_write32(cpu->mem, _t50, cpu->r[30]);
|
|
/* 02989EF8 */ _t51 = cpu->r[3] + 0x00000000u;
|
|
/* 02989EF8 */ rbrew_write32(cpu->mem, _t51, cpu->r[30]);
|
|
/* 02989EFC */ _t52 = cpu->r[3] + 0x00000008u;
|
|
/* 02989EFC */ rbrew_write32(cpu->mem, _t52, cpu->r[30]);
|
|
L_02989F00: ; // 0x2989f00
|
|
/* 02989F00 */ cpu->r[4] = 0x00000020u;
|
|
/* 02989F04 */ cpu->r[5] = cpu->r[29] + 0x0000000Cu;
|
|
/* 02989F08 */ cpu->r[3] = cpu->r[29];
|
|
/* 02989F0C */ Gambit_fn_028023A8(cpu);
|
|
L_02989F10: ; // 0x2989f10
|
|
/* 02989F10 */ _t53 = cpu->r[31] + 0x000002B0u;
|
|
/* 02989F10 */ rbrew_write32(cpu->mem, _t53, cpu->r[30]);
|
|
L_02989F14: ; // 0x2989f14
|
|
/* 02989F14 */ _t54 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02989F14 */ cpu->r[29] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02989F18 */ _t55 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02989F18 */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02989F1C */ cpu->r[3] = cpu->r[31];
|
|
/* 02989F20 */ _t56 = cpu->r[1] + 0x00000010u;
|
|
/* 02989F20 */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02989F24 */ cpu->lr = cpu->r[0];
|
|
/* 02989F28 */ _t57 = cpu->r[1] + 0x00000014u;
|
|
/* 02989F28 */ cpu->r[31] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02989F2C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02989F30 */ return;
|
|
}
|
|
|
|
// fn_02989F34 @ 0x2989f34
|
|
void Gambit_fn_02989F34(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_02989F34: ; // 0x2989f34
|
|
/* 02989F34 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 02989F34 */ cpu->r[0] = rbrew_read8(cpu->mem, _t0);
|
|
/* 02989F38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02989F3C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989F3C */ _t2 = _t1 & 0x00000001u;
|
|
/* 02989F3C */ if (_t2) goto L_02989F64; else goto L_02989F40;
|
|
L_02989F40: ; // 0x2989f40
|
|
/* 02989F40 */ _t3 = cpu->r[4] + 0x00000000u;
|
|
/* 02989F40 */ cpu->r[12] = rbrew_read8(cpu->mem, _t3);
|
|
/* 02989F44 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 02989F48 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989F48 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02989F48 */ if (_t5) goto L_02989F54; else goto L_02989F4C;
|
|
L_02989F4C: ; // 0x2989f4c
|
|
/* 02989F4C */ cpu->r[3] = 0x00000000u;
|
|
/* 02989F50 */ return;
|
|
L_02989F54: ; // 0x2989f54
|
|
/* 02989F54 */ _t6 = cpu->r[3] + 0x00000001u;
|
|
/* 02989F54 */ cpu->r[0] = rbrew_read8(cpu->mem, _t6);
|
|
/* 02989F54 */ cpu->r[3] = _t6;
|
|
/* 02989F58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02989F5C */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 02989F60 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989F60 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02989F60 */ if (_t8) goto L_02989F64; else goto L_02989F40;
|
|
L_02989F64: ; // 0x2989f64
|
|
/* 02989F64 */ cpu->r[3] = 0x00000001u;
|
|
/* 02989F68 */ return;
|
|
}
|
|
|
|
// fn_02989F6C @ 0x2989f6c
|
|
void Gambit_fn_02989F6C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189, _t190, _t191, _t192, _t193, _t194, _t195, _t196, _t197, _t198, _t199, _t200, _t201, _t202, _t203, _t204, _t205, _t206, _t207, _t208, _t209, _t210, _t211, _t212, _t213, _t214, _t215, _t216, _t217, _t218, _t219, _t220, _t221, _t222, _t223, _t224, _t225, _t226, _t227, _t228, _t229, _t230, _t231, _t232, _t233, _t234, _t235, _t236, _t237, _t238, _t239, _t240, _t241, _t242, _t243, _t244, _t245, _t246, _t247, _t248, _t249, _t250, _t251, _t252, _t253, _t254, _t255, _t256, _t257, _t258, _t259, _t260, _t261, _t262, _t263, _t264, _t265, _t266, _t267, _t268, _t269, _t270, _t271, _t272, _t273, _t274, _t275, _t276, _t277, _t278, _t279, _t280, _t281, _t282, _t283, _t284, _t285, _t286, _t287, _t288, _t289, _t290, _t291, _t292, _t293, _t294, _t295, _t296, _t297, _t298, _t299, _t300, _t301, _t302, _t303, _t304, _t305, _t306, _t307, _t308, _t309, _t310, _t311, _t312, _t313, _t314, _t315, _t316, _t317, _t318, _t319, _t320, _t321, _t322, _t323, _t324, _t325, _t326, _t327, _t328, _t329, _t330, _t331, _t332, _t333, _t334, _t335, _t336, _t337, _t338, _t339, _t340, _t341, _t342, _t343, _t344, _t345, _t346, _t347, _t348, _t349, _t350, _t351, _t352, _t353, _t354, _t355, _t356, _t357, _t358, _t359, _t360, _t361, _t362, _t363, _t364, _t365, _t366, _t367, _t368, _t369, _t370, _t371, _t372, _t373, _t374, _t375, _t376, _t377, _t378, _t379, _t380, _t381, _t382, _t383, _t384, _t385, _t386, _t387, _t388, _t389, _t390, _t391, _t392, _t393, _t394, _t395, _t396, _t397, _t398, _t399, _t400, _t401, _t402, _t403, _t404, _t405, _t406, _t407, _t408, _t409, _t410, _t411, _t412, _t413, _t414, _t415, _t416, _t417, _t418, _t419, _t420, _t421, _t422, _t423, _t424, _t425, _t426;
|
|
|
|
L_02989F6C: ; // 0x2989f6c
|
|
/* 02989F6C */ _t0 = cpu->r[1] + 0xFFFFEFA8u;
|
|
/* 02989F6C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02989F6C */ cpu->r[1] = _t0;
|
|
/* 02989F70 */ /* nop */
|
|
/* 02989F74 */ cpu->r[0] = cpu->lr;
|
|
/* 02989F78 */ _t1 = cpu->r[1] + 0x0000105Cu;
|
|
/* 02989F78 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02989F7C */ cpu->r[29] = cpu->r[4];
|
|
/* 02989F80 */ _t2 = cpu->r[5] + 0x00000004u;
|
|
/* 02989F80 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02989F80 */ cpu->r[5] = _t2;
|
|
/* 02989F84 */ cpu->r[28] = cpu->r[3];
|
|
/* 02989F88 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02989F8C */ cpu->r[31] = 0x00000000u;
|
|
/* 02989F90 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02989F90 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02989F90 */ if (_t4) goto L_02989F98; else goto L_02989F94;
|
|
L_02989F94: ; // 0x2989f94
|
|
/* 02989F94 */ cpu->r[31] = cpu->r[5] + cpu->r[7];
|
|
L_02989F98: ; // 0x2989f98
|
|
/* 02989F98 */ cpu->r[4] = 0x10150000u;
|
|
/* 02989F9C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02989FA0 */ cpu->r[5] = cpu->r[31];
|
|
/* 02989FA4 */ cpu->r[4] = cpu->r[4] + 0xFFFFEF80u;
|
|
/* 02989FA8 */ _t5 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 02989FA8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02989FA8 */ if (_t6) goto L_02989FAC; // else: addr-0 trap, fall-through
|
|
L_02989FAC: ; // 0x2989fac
|
|
/* 02989FAC */ Gambit_fn_0298ABE4(cpu);
|
|
/* 02989FB0 */ cpu->r[4] = 0x10150000u;
|
|
/* 02989FB4 */ cpu->r[3] = cpu->r[1] + 0x00000414u;
|
|
/* 02989FB8 */ cpu->r[5] = cpu->r[31];
|
|
/* 02989FBC */ cpu->r[4] = cpu->r[4] + 0xFFFFEF88u;
|
|
/* 02989FC0 */ _t7 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 02989FC0 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02989FC0 */ if (_t8) goto L_02989FC4; // else: addr-0 trap, fall-through
|
|
L_02989FC4: ; // 0x2989fc4
|
|
/* 02989FC4 */ Gambit_fn_0298ABE4(cpu);
|
|
/* 02989FC8 */ cpu->r[4] = 0x10150000u;
|
|
/* 02989FCC */ cpu->r[3] = cpu->r[1] + 0x00000820u;
|
|
/* 02989FD0 */ cpu->r[5] = cpu->r[31];
|
|
/* 02989FD4 */ cpu->r[4] = cpu->r[4] + 0xFFFFEF90u;
|
|
/* 02989FD8 */ _t9 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 02989FD8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02989FD8 */ if (_t10) goto L_02989FDC; // else: addr-0 trap, fall-through
|
|
L_02989FDC: ; // 0x2989fdc
|
|
/* 02989FDC */ Gambit_fn_0298ABE4(cpu);
|
|
/* 02989FE0 */ cpu->r[4] = 0x10150000u;
|
|
/* 02989FE4 */ cpu->r[3] = cpu->r[1] + 0x00000C2Cu;
|
|
/* 02989FE8 */ cpu->r[5] = cpu->r[31];
|
|
/* 02989FEC */ cpu->r[4] = cpu->r[4] + 0xFFFFEF9Cu;
|
|
/* 02989FF0 */ _t11 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 02989FF0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02989FF0 */ if (_t12) goto L_02989FF4; // else: addr-0 trap, fall-through
|
|
L_02989FF4: ; // 0x2989ff4
|
|
/* 02989FF4 */ Gambit_fn_0298ABE4(cpu);
|
|
/* 02989FF8 */ _t13 = cpu->r[29] + 0x00000054u;
|
|
/* 02989FF8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t13);
|
|
/* 02989FFC */ cpu->r[25] = 0x00000000u;
|
|
/* 0298A000 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[0]);
|
|
/* 0298A004 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A004 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298A004 */ if (_t15) goto L_0298A008; else goto L_0298A198;
|
|
L_0298A008: ; // 0x298a008
|
|
/* 0298A008 */ cpu->r[26] = 0x00000000u;
|
|
L_0298A00C: ; // 0x298a00c
|
|
/* 0298A00C */ _t16 = cpu->r[29] + 0x00000028u;
|
|
/* 0298A00C */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298A010 */ cpu->r[12] = 0x00000000u;
|
|
/* 0298A014 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 0298A018 */ cpu->r[10] = cpu->r[29] + 0x00000028u;
|
|
/* 0298A01C */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A01C */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298A01C */ if (_t18) goto L_0298A024; else goto L_0298A020;
|
|
L_0298A020: ; // 0x298a020
|
|
/* 0298A020 */ cpu->r[12] = cpu->r[10] + cpu->r[9];
|
|
L_0298A024: ; // 0x298a024
|
|
/* 0298A024 */ cpu->r[4] = cpu->r[12] + cpu->r[26];
|
|
/* 0298A028 */ _t19 = cpu->r[1] + 0x00000824u;
|
|
/* 0298A028 */ cpu->r[6] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298A02C */ _t20 = cpu->r[4] + 0x00000024u;
|
|
/* 0298A02C */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298A030 */ cpu->r[10] = cpu->r[4] + 0x00000024u;
|
|
/* 0298A034 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298A038 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298A03C */ _t21 = cpu->r[6] + 0x00000014u;
|
|
/* 0298A03C */ cpu->r[7] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298A040 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A040 */ _t23 = _t22 & 0x00000001u;
|
|
/* 0298A040 */ if (_t23) goto L_0298A048; else goto L_0298A044;
|
|
L_0298A044: ; // 0x298a044
|
|
/* 0298A044 */ cpu->r[30] = cpu->r[10] + cpu->r[11];
|
|
L_0298A048: ; // 0x298a048
|
|
/* 0298A048 */ cpu->ctr = cpu->r[7];
|
|
/* 0298A04C */ cpu->r[31] = 0x00000001u;
|
|
/* 0298A050 */ cpu->r[3] = cpu->r[1] + 0x00000820u;
|
|
/* 0298A054 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A058 */ cpu->r[27] = cpu->r[30] + 0x00000004u;
|
|
/* 0298A05C */ cpu->r[9] = cpu->r[27];
|
|
/* 0298A060 */ _t24 = cpu->r[9] + 0x00000000u;
|
|
/* 0298A060 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298A064 */ _t25 = cpu->r[1] + 0x00000820u;
|
|
/* 0298A064 */ cpu->r[3] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298A068 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298A06C */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A070 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A070 */ _t27 = _t26 & 0x00000001u;
|
|
/* 0298A070 */ if (_t27) goto L_0298A078; else goto L_0298A074;
|
|
L_0298A074: ; // 0x298a074
|
|
/* 0298A074 */ cpu->r[4] = cpu->r[9] + cpu->r[0];
|
|
L_0298A078: ; // 0x298a078
|
|
/* 0298A078 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A07C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A080 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A080 */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298A080 */ if (_t29) goto L_0298A084; else goto L_0298A0C0;
|
|
L_0298A084: ; // 0x298a084
|
|
/* 0298A084 */ _t30 = cpu->r[1] + 0x00000C30u;
|
|
/* 0298A084 */ cpu->r[9] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298A088 */ _t31 = cpu->r[9] + 0x00000014u;
|
|
/* 0298A088 */ cpu->r[10] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298A08C */ cpu->ctr = cpu->r[10];
|
|
/* 0298A090 */ cpu->r[3] = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A094 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A098 */ _t32 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A098 */ cpu->r[5] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298A09C */ _t33 = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A09C */ cpu->r[3] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298A0A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 0298A0A4 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A0A8 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A0A8 */ _t35 = _t34 & 0x00000001u;
|
|
/* 0298A0A8 */ if (_t35) goto L_0298A0B0; else goto L_0298A0AC;
|
|
L_0298A0AC: ; // 0x298a0ac
|
|
/* 0298A0AC */ cpu->r[4] = cpu->r[27] + cpu->r[5];
|
|
L_0298A0B0: ; // 0x298a0b0
|
|
/* 0298A0B0 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A0B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A0B8 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A0B8 */ _t37 = _t36 & 0x00000001u;
|
|
/* 0298A0B8 */ if (_t37) goto L_0298A0BC; else goto L_0298A0C0;
|
|
L_0298A0BC: ; // 0x298a0bc
|
|
/* 0298A0BC */ cpu->r[31] = 0x00000000u;
|
|
L_0298A0C0: ; // 0x298a0c0
|
|
/* 0298A0C0 */ _t38 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298A0C0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t38);
|
|
/* 0298A0C4 */ _t39 = cpu->r[11] + 0x00000014u;
|
|
/* 0298A0C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 0298A0C8 */ cpu->ctr = cpu->r[12];
|
|
/* 0298A0CC */ cpu->r[31] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298A0D0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298A0D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A0D8 */ _t40 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A0D8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298A0DC */ _t41 = cpu->r[1] + 0x00000008u;
|
|
/* 0298A0DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t41);
|
|
/* 0298A0E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298A0E4 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A0E8 */ _t42 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A0E8 */ _t43 = _t42 & 0x00000001u;
|
|
/* 0298A0E8 */ if (_t43) goto L_0298A0F0; else goto L_0298A0EC;
|
|
L_0298A0EC: ; // 0x298a0ec
|
|
/* 0298A0EC */ cpu->r[4] = cpu->r[27] + cpu->r[8];
|
|
L_0298A0F0: ; // 0x298a0f0
|
|
/* 0298A0F0 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A0F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A0F8 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A0F8 */ _t45 = _t44 & 0x00000001u;
|
|
/* 0298A0F8 */ if (_t45) goto L_0298A0FC; else goto L_0298A13C;
|
|
L_0298A0FC: ; // 0x298a0fc
|
|
/* 0298A0FC */ _t46 = cpu->r[1] + 0x00000418u;
|
|
/* 0298A0FC */ cpu->r[4] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298A100 */ _t47 = cpu->r[4] + 0x00000014u;
|
|
/* 0298A100 */ cpu->r[6] = rbrew_read32(cpu->mem, _t47);
|
|
/* 0298A104 */ cpu->ctr = cpu->r[6];
|
|
/* 0298A108 */ cpu->r[3] = cpu->r[1] + 0x00000414u;
|
|
/* 0298A10C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A110 */ _t48 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A110 */ cpu->r[10] = rbrew_read32(cpu->mem, _t48);
|
|
/* 0298A114 */ _t49 = cpu->r[1] + 0x00000414u;
|
|
/* 0298A114 */ cpu->r[3] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298A118 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298A11C */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A120 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A120 */ _t51 = _t50 & 0x00000001u;
|
|
/* 0298A120 */ if (_t51) goto L_0298A128; else goto L_0298A124;
|
|
L_0298A124: ; // 0x298a124
|
|
/* 0298A124 */ cpu->r[4] = cpu->r[27] + cpu->r[10];
|
|
L_0298A128: ; // 0x298a128
|
|
/* 0298A128 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A12C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A130 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A130 */ _t53 = _t52 & 0x00000001u;
|
|
/* 0298A130 */ if (_t53) goto L_0298A134; else goto L_0298A13C;
|
|
L_0298A134: ; // 0x298a134
|
|
/* 0298A134 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298A138 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A138 */ _t55 = _t54 & 0x00000001u;
|
|
/* 0298A138 */ if (_t55) goto L_0298A184; else goto L_0298A13C;
|
|
L_0298A13C: ; // 0x298a13c
|
|
/* 0298A13C */ _t56 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A13C */ cpu->r[7] = rbrew_read32(cpu->mem, _t56);
|
|
/* 0298A140 */ cpu->r[9] = cpu->r[28] + 0x00000230u;
|
|
/* 0298A144 */ cpu->r[8] = cpu->r[7] + 0x00000001u;
|
|
/* 0298A148 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], 0x00000080u);
|
|
/* 0298A14C */ _t57 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A14C */ rbrew_write32(cpu->mem, _t57, cpu->r[8]);
|
|
/* 0298A150 */ _t58 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A150 */ _t59 = _t58 & 0x00000001u;
|
|
/* 0298A150 */ if (_t59) goto L_0298A154; else goto L_0298A158;
|
|
L_0298A154: ; // 0x298a154
|
|
/* 0298A154 */ cpu->r[9] = cpu->r[9] + cpu->r[7];
|
|
L_0298A158: ; // 0x298a158
|
|
/* 0298A158 */ _t60 = cpu->r[9] + 0x00000000u;
|
|
/* 0298A158 */ rbrew_write8(cpu->mem, _t60, (uint8_t)cpu->r[31]);
|
|
/* 0298A15C */ _t61 = cpu->r[28] + 0x00000000u;
|
|
/* 0298A15C */ cpu->r[12] = rbrew_read32(cpu->mem, _t61);
|
|
/* 0298A160 */ _t62 = cpu->r[28] + 0x00000004u;
|
|
/* 0298A160 */ cpu->r[9] = rbrew_read32(cpu->mem, _t62);
|
|
/* 0298A164 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[9]);
|
|
/* 0298A168 */ _t63 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A168 */ _t64 = _t63 & 0x00000001u;
|
|
/* 0298A168 */ if (_t64) goto L_0298A16C; else goto L_0298A184;
|
|
L_0298A16C: ; // 0x298a16c
|
|
/* 0298A16C */ _t65 = cpu->r[28] + 0x00000008u;
|
|
/* 0298A16C */ cpu->r[0] = rbrew_read32(cpu->mem, _t65);
|
|
/* 0298A170 */ cpu->r[10] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298A174 */ _t66 = cpu->r[10] + cpu->r[0];
|
|
/* 0298A174 */ rbrew_write32(cpu->mem, _t66, cpu->r[30]);
|
|
/* 0298A178 */ _t67 = cpu->r[28] + 0x00000000u;
|
|
/* 0298A178 */ cpu->r[4] = rbrew_read32(cpu->mem, _t67);
|
|
/* 0298A17C */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 0298A180 */ _t68 = cpu->r[28] + 0x00000000u;
|
|
/* 0298A180 */ rbrew_write32(cpu->mem, _t68, cpu->r[4]);
|
|
L_0298A184: ; // 0x298a184
|
|
/* 0298A184 */ _t69 = cpu->r[29] + 0x00000054u;
|
|
/* 0298A184 */ cpu->r[5] = rbrew_read16(cpu->mem, _t69);
|
|
/* 0298A188 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 0298A18C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[5]);
|
|
/* 0298A190 */ cpu->r[26] = cpu->r[26] + 0x00000010u;
|
|
/* 0298A194 */ _t70 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A194 */ _t71 = _t70 & 0x00000001u;
|
|
/* 0298A194 */ if (_t71) goto L_0298A00C; else goto L_0298A198;
|
|
L_0298A198: ; // 0x298a198
|
|
/* 0298A198 */ _t72 = cpu->r[29] + 0x00000056u;
|
|
/* 0298A198 */ cpu->r[6] = rbrew_read16(cpu->mem, _t72);
|
|
/* 0298A19C */ cpu->r[26] = 0x00000000u;
|
|
/* 0298A1A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[6]);
|
|
/* 0298A1A4 */ _t73 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A1A4 */ _t74 = _t73 & 0x00000001u;
|
|
/* 0298A1A4 */ if (_t74) goto L_0298A1A8; else goto L_0298A338;
|
|
L_0298A1A8: ; // 0x298a1a8
|
|
/* 0298A1A8 */ cpu->r[25] = 0x00000000u;
|
|
L_0298A1AC: ; // 0x298a1ac
|
|
/* 0298A1AC */ _t75 = cpu->r[29] + 0x0000002Cu;
|
|
/* 0298A1AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 0298A1B0 */ cpu->r[11] = 0x00000000u;
|
|
/* 0298A1B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298A1B8 */ cpu->r[12] = cpu->r[29] + 0x0000002Cu;
|
|
/* 0298A1BC */ _t76 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A1BC */ _t77 = _t76 & 0x00000001u;
|
|
/* 0298A1BC */ if (_t77) goto L_0298A1C4; else goto L_0298A1C0;
|
|
L_0298A1C0: ; // 0x298a1c0
|
|
/* 0298A1C0 */ cpu->r[11] = cpu->r[12] + cpu->r[0];
|
|
L_0298A1C4: ; // 0x298a1c4
|
|
/* 0298A1C4 */ cpu->r[8] = cpu->r[11] + cpu->r[25];
|
|
/* 0298A1C8 */ _t78 = cpu->r[1] + 0x00000824u;
|
|
/* 0298A1C8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t78);
|
|
/* 0298A1CC */ _t79 = cpu->r[8] + 0x00000024u;
|
|
/* 0298A1CC */ cpu->r[5] = rbrew_read32(cpu->mem, _t79);
|
|
/* 0298A1D0 */ cpu->r[6] = cpu->r[8] + 0x00000024u;
|
|
/* 0298A1D4 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298A1D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 0298A1DC */ _t80 = cpu->r[9] + 0x00000014u;
|
|
/* 0298A1DC */ cpu->r[10] = rbrew_read32(cpu->mem, _t80);
|
|
/* 0298A1E0 */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A1E0 */ _t82 = _t81 & 0x00000001u;
|
|
/* 0298A1E0 */ if (_t82) goto L_0298A1E8; else goto L_0298A1E4;
|
|
L_0298A1E4: ; // 0x298a1e4
|
|
/* 0298A1E4 */ cpu->r[30] = cpu->r[6] + cpu->r[5];
|
|
L_0298A1E8: ; // 0x298a1e8
|
|
/* 0298A1E8 */ cpu->ctr = cpu->r[10];
|
|
/* 0298A1EC */ cpu->r[31] = 0x00000001u;
|
|
/* 0298A1F0 */ cpu->r[3] = cpu->r[1] + 0x00000820u;
|
|
/* 0298A1F4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A1F8 */ cpu->r[27] = cpu->r[30] + 0x00000004u;
|
|
/* 0298A1FC */ cpu->r[12] = cpu->r[27];
|
|
/* 0298A200 */ _t83 = cpu->r[12] + 0x00000000u;
|
|
/* 0298A200 */ cpu->r[8] = rbrew_read32(cpu->mem, _t83);
|
|
/* 0298A204 */ _t84 = cpu->r[1] + 0x00000820u;
|
|
/* 0298A204 */ cpu->r[3] = rbrew_read32(cpu->mem, _t84);
|
|
/* 0298A208 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298A20C */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A210 */ _t85 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A210 */ _t86 = _t85 & 0x00000001u;
|
|
/* 0298A210 */ if (_t86) goto L_0298A218; else goto L_0298A214;
|
|
L_0298A214: ; // 0x298a214
|
|
/* 0298A214 */ cpu->r[4] = cpu->r[12] + cpu->r[8];
|
|
L_0298A218: ; // 0x298a218
|
|
/* 0298A218 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A21C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A220 */ _t87 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A220 */ _t88 = _t87 & 0x00000001u;
|
|
/* 0298A220 */ if (_t88) goto L_0298A224; else goto L_0298A260;
|
|
L_0298A224: ; // 0x298a224
|
|
/* 0298A224 */ _t89 = cpu->r[1] + 0x00000C30u;
|
|
/* 0298A224 */ cpu->r[12] = rbrew_read32(cpu->mem, _t89);
|
|
/* 0298A228 */ _t90 = cpu->r[12] + 0x00000014u;
|
|
/* 0298A228 */ cpu->r[0] = rbrew_read32(cpu->mem, _t90);
|
|
/* 0298A22C */ cpu->ctr = cpu->r[0];
|
|
/* 0298A230 */ cpu->r[3] = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A234 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A238 */ _t91 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A238 */ cpu->r[10] = rbrew_read32(cpu->mem, _t91);
|
|
/* 0298A23C */ _t92 = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A23C */ cpu->r[3] = rbrew_read32(cpu->mem, _t92);
|
|
/* 0298A240 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298A244 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A248 */ _t93 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A248 */ _t94 = _t93 & 0x00000001u;
|
|
/* 0298A248 */ if (_t94) goto L_0298A250; else goto L_0298A24C;
|
|
L_0298A24C: ; // 0x298a24c
|
|
/* 0298A24C */ cpu->r[4] = cpu->r[27] + cpu->r[10];
|
|
L_0298A250: ; // 0x298a250
|
|
/* 0298A250 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A254 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A258 */ _t95 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A258 */ _t96 = _t95 & 0x00000001u;
|
|
/* 0298A258 */ if (_t96) goto L_0298A25C; else goto L_0298A260;
|
|
L_0298A25C: ; // 0x298a25c
|
|
/* 0298A25C */ cpu->r[31] = 0x00000000u;
|
|
L_0298A260: ; // 0x298a260
|
|
/* 0298A260 */ _t97 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298A260 */ cpu->r[4] = rbrew_read32(cpu->mem, _t97);
|
|
/* 0298A264 */ _t98 = cpu->r[4] + 0x00000014u;
|
|
/* 0298A264 */ cpu->r[5] = rbrew_read32(cpu->mem, _t98);
|
|
/* 0298A268 */ cpu->ctr = cpu->r[5];
|
|
/* 0298A26C */ cpu->r[31] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298A270 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298A274 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A278 */ _t99 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A278 */ cpu->r[0] = rbrew_read32(cpu->mem, _t99);
|
|
/* 0298A27C */ _t100 = cpu->r[1] + 0x00000008u;
|
|
/* 0298A27C */ cpu->r[3] = rbrew_read32(cpu->mem, _t100);
|
|
/* 0298A280 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298A284 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A288 */ _t101 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A288 */ _t102 = _t101 & 0x00000001u;
|
|
/* 0298A288 */ if (_t102) goto L_0298A290; else goto L_0298A28C;
|
|
L_0298A28C: ; // 0x298a28c
|
|
/* 0298A28C */ cpu->r[4] = cpu->r[27] + cpu->r[0];
|
|
L_0298A290: ; // 0x298a290
|
|
/* 0298A290 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A294 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A298 */ _t103 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A298 */ _t104 = _t103 & 0x00000001u;
|
|
/* 0298A298 */ if (_t104) goto L_0298A29C; else goto L_0298A2DC;
|
|
L_0298A29C: ; // 0x298a29c
|
|
/* 0298A29C */ _t105 = cpu->r[1] + 0x00000418u;
|
|
/* 0298A29C */ cpu->r[8] = rbrew_read32(cpu->mem, _t105);
|
|
/* 0298A2A0 */ _t106 = cpu->r[8] + 0x00000014u;
|
|
/* 0298A2A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t106);
|
|
/* 0298A2A4 */ cpu->ctr = cpu->r[10];
|
|
/* 0298A2A8 */ cpu->r[3] = cpu->r[1] + 0x00000414u;
|
|
/* 0298A2AC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A2B0 */ _t107 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A2B0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t107);
|
|
/* 0298A2B4 */ _t108 = cpu->r[1] + 0x00000414u;
|
|
/* 0298A2B4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t108);
|
|
/* 0298A2B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298A2BC */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A2C0 */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A2C0 */ _t110 = _t109 & 0x00000001u;
|
|
/* 0298A2C0 */ if (_t110) goto L_0298A2C8; else goto L_0298A2C4;
|
|
L_0298A2C4: ; // 0x298a2c4
|
|
/* 0298A2C4 */ cpu->r[4] = cpu->r[27] + cpu->r[6];
|
|
L_0298A2C8: ; // 0x298a2c8
|
|
/* 0298A2C8 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A2CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A2D0 */ _t111 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A2D0 */ _t112 = _t111 & 0x00000001u;
|
|
/* 0298A2D0 */ if (_t112) goto L_0298A2D4; else goto L_0298A2DC;
|
|
L_0298A2D4: ; // 0x298a2d4
|
|
/* 0298A2D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298A2D8 */ _t113 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A2D8 */ _t114 = _t113 & 0x00000001u;
|
|
/* 0298A2D8 */ if (_t114) goto L_0298A324; else goto L_0298A2DC;
|
|
L_0298A2DC: ; // 0x298a2dc
|
|
/* 0298A2DC */ _t115 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A2DC */ cpu->r[10] = rbrew_read32(cpu->mem, _t115);
|
|
/* 0298A2E0 */ cpu->r[11] = cpu->r[28] + 0x00000230u;
|
|
/* 0298A2E4 */ cpu->r[12] = cpu->r[10] + 0x00000001u;
|
|
/* 0298A2E8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], 0x00000080u);
|
|
/* 0298A2EC */ _t116 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A2EC */ rbrew_write32(cpu->mem, _t116, cpu->r[12]);
|
|
/* 0298A2F0 */ _t117 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A2F0 */ _t118 = _t117 & 0x00000001u;
|
|
/* 0298A2F0 */ if (_t118) goto L_0298A2F4; else goto L_0298A2F8;
|
|
L_0298A2F4: ; // 0x298a2f4
|
|
/* 0298A2F4 */ cpu->r[11] = cpu->r[11] + cpu->r[10];
|
|
L_0298A2F8: ; // 0x298a2f8
|
|
/* 0298A2F8 */ _t119 = cpu->r[11] + 0x00000000u;
|
|
/* 0298A2F8 */ rbrew_write8(cpu->mem, _t119, (uint8_t)cpu->r[31]);
|
|
/* 0298A2FC */ _t120 = cpu->r[28] + 0x0000008Cu;
|
|
/* 0298A2FC */ cpu->r[4] = rbrew_read32(cpu->mem, _t120);
|
|
/* 0298A300 */ _t121 = cpu->r[28] + 0x00000090u;
|
|
/* 0298A300 */ cpu->r[0] = rbrew_read32(cpu->mem, _t121);
|
|
/* 0298A304 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[0]);
|
|
/* 0298A308 */ _t122 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A308 */ _t123 = _t122 & 0x00000001u;
|
|
/* 0298A308 */ if (_t123) goto L_0298A30C; else goto L_0298A324;
|
|
L_0298A30C: ; // 0x298a30c
|
|
/* 0298A30C */ _t124 = cpu->r[28] + 0x00000094u;
|
|
/* 0298A30C */ cpu->r[5] = rbrew_read32(cpu->mem, _t124);
|
|
/* 0298A310 */ cpu->r[4] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298A314 */ _t125 = cpu->r[4] + cpu->r[5];
|
|
/* 0298A314 */ rbrew_write32(cpu->mem, _t125, cpu->r[30]);
|
|
/* 0298A318 */ _t126 = cpu->r[28] + 0x0000008Cu;
|
|
/* 0298A318 */ cpu->r[6] = rbrew_read32(cpu->mem, _t126);
|
|
/* 0298A31C */ cpu->r[6] = cpu->r[6] + 0x00000001u;
|
|
/* 0298A320 */ _t127 = cpu->r[28] + 0x0000008Cu;
|
|
/* 0298A320 */ rbrew_write32(cpu->mem, _t127, cpu->r[6]);
|
|
L_0298A324: ; // 0x298a324
|
|
/* 0298A324 */ _t128 = cpu->r[29] + 0x00000056u;
|
|
/* 0298A324 */ cpu->r[7] = rbrew_read16(cpu->mem, _t128);
|
|
/* 0298A328 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 0298A32C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[7]);
|
|
/* 0298A330 */ cpu->r[25] = cpu->r[25] + 0x00000010u;
|
|
/* 0298A334 */ _t129 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A334 */ _t130 = _t129 & 0x00000001u;
|
|
/* 0298A334 */ if (_t130) goto L_0298A1AC; else goto L_0298A338;
|
|
L_0298A338: ; // 0x298a338
|
|
/* 0298A338 */ _t131 = cpu->r[29] + 0x00000058u;
|
|
/* 0298A338 */ cpu->r[8] = rbrew_read16(cpu->mem, _t131);
|
|
/* 0298A33C */ cpu->r[26] = 0x00000000u;
|
|
/* 0298A340 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[8]);
|
|
/* 0298A344 */ _t132 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A344 */ _t133 = _t132 & 0x00000001u;
|
|
/* 0298A344 */ if (_t133) goto L_0298A348; else goto L_0298A4D4;
|
|
L_0298A348: ; // 0x298a348
|
|
/* 0298A348 */ cpu->r[25] = 0x00000000u;
|
|
L_0298A34C: ; // 0x298a34c
|
|
/* 0298A34C */ _t134 = cpu->r[29] + 0x00000030u;
|
|
/* 0298A34C */ cpu->r[8] = rbrew_read32(cpu->mem, _t134);
|
|
/* 0298A350 */ cpu->r[9] = 0x00000000u;
|
|
/* 0298A354 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298A358 */ cpu->r[4] = cpu->r[29] + 0x00000030u;
|
|
/* 0298A35C */ _t135 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A35C */ _t136 = _t135 & 0x00000001u;
|
|
/* 0298A35C */ if (_t136) goto L_0298A364; else goto L_0298A360;
|
|
L_0298A360: ; // 0x298a360
|
|
/* 0298A360 */ cpu->r[9] = cpu->r[4] + cpu->r[8];
|
|
L_0298A364: ; // 0x298a364
|
|
/* 0298A364 */ cpu->r[10] = cpu->r[9] + cpu->r[25];
|
|
/* 0298A368 */ _t137 = cpu->r[10] + 0x00000024u;
|
|
/* 0298A368 */ cpu->r[11] = rbrew_read32(cpu->mem, _t137);
|
|
/* 0298A368 */ cpu->r[10] = _t137;
|
|
/* 0298A36C */ _t138 = cpu->r[1] + 0x00000824u;
|
|
/* 0298A36C */ cpu->r[12] = rbrew_read32(cpu->mem, _t138);
|
|
/* 0298A370 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298A374 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298A378 */ _t139 = cpu->r[12] + 0x00000014u;
|
|
/* 0298A378 */ cpu->r[0] = rbrew_read32(cpu->mem, _t139);
|
|
/* 0298A37C */ _t140 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A37C */ _t141 = _t140 & 0x00000001u;
|
|
/* 0298A37C */ if (_t141) goto L_0298A384; else goto L_0298A380;
|
|
L_0298A380: ; // 0x298a380
|
|
/* 0298A380 */ cpu->r[30] = cpu->r[10] + cpu->r[11];
|
|
L_0298A384: ; // 0x298a384
|
|
/* 0298A384 */ cpu->ctr = cpu->r[0];
|
|
/* 0298A388 */ cpu->r[31] = 0x00000001u;
|
|
/* 0298A38C */ cpu->r[3] = cpu->r[1] + 0x00000820u;
|
|
/* 0298A390 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A394 */ cpu->r[27] = cpu->r[30] + 0x00000004u;
|
|
/* 0298A398 */ cpu->r[11] = cpu->r[27];
|
|
/* 0298A39C */ _t142 = cpu->r[11] + 0x00000000u;
|
|
/* 0298A39C */ cpu->r[0] = rbrew_read32(cpu->mem, _t142);
|
|
/* 0298A3A0 */ _t143 = cpu->r[1] + 0x00000820u;
|
|
/* 0298A3A0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t143);
|
|
/* 0298A3A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298A3A8 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A3AC */ _t144 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A3AC */ _t145 = _t144 & 0x00000001u;
|
|
/* 0298A3AC */ if (_t145) goto L_0298A3B4; else goto L_0298A3B0;
|
|
L_0298A3B0: ; // 0x298a3b0
|
|
/* 0298A3B0 */ cpu->r[4] = cpu->r[11] + cpu->r[0];
|
|
L_0298A3B4: ; // 0x298a3b4
|
|
/* 0298A3B4 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A3B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A3BC */ _t146 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A3BC */ _t147 = _t146 & 0x00000001u;
|
|
/* 0298A3BC */ if (_t147) goto L_0298A3C0; else goto L_0298A3FC;
|
|
L_0298A3C0: ; // 0x298a3c0
|
|
/* 0298A3C0 */ _t148 = cpu->r[1] + 0x00000C30u;
|
|
/* 0298A3C0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t148);
|
|
/* 0298A3C4 */ _t149 = cpu->r[5] + 0x00000014u;
|
|
/* 0298A3C4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t149);
|
|
/* 0298A3C8 */ cpu->ctr = cpu->r[6];
|
|
/* 0298A3CC */ cpu->r[3] = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A3D0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A3D4 */ _t150 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A3D4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t150);
|
|
/* 0298A3D8 */ _t151 = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A3D8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t151);
|
|
/* 0298A3DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298A3E0 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A3E4 */ _t152 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A3E4 */ _t153 = _t152 & 0x00000001u;
|
|
/* 0298A3E4 */ if (_t153) goto L_0298A3EC; else goto L_0298A3E8;
|
|
L_0298A3E8: ; // 0x298a3e8
|
|
/* 0298A3E8 */ cpu->r[4] = cpu->r[27] + cpu->r[6];
|
|
L_0298A3EC: ; // 0x298a3ec
|
|
/* 0298A3EC */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A3F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A3F4 */ _t154 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A3F4 */ _t155 = _t154 & 0x00000001u;
|
|
/* 0298A3F4 */ if (_t155) goto L_0298A3F8; else goto L_0298A3FC;
|
|
L_0298A3F8: ; // 0x298a3f8
|
|
/* 0298A3F8 */ cpu->r[31] = 0x00000000u;
|
|
L_0298A3FC: ; // 0x298a3fc
|
|
/* 0298A3FC */ _t156 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298A3FC */ cpu->r[7] = rbrew_read32(cpu->mem, _t156);
|
|
/* 0298A400 */ _t157 = cpu->r[7] + 0x00000014u;
|
|
/* 0298A400 */ cpu->r[9] = rbrew_read32(cpu->mem, _t157);
|
|
/* 0298A404 */ cpu->ctr = cpu->r[9];
|
|
/* 0298A408 */ cpu->r[31] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298A40C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298A410 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A414 */ _t158 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A414 */ cpu->r[8] = rbrew_read32(cpu->mem, _t158);
|
|
/* 0298A418 */ _t159 = cpu->r[1] + 0x00000008u;
|
|
/* 0298A418 */ cpu->r[3] = rbrew_read32(cpu->mem, _t159);
|
|
/* 0298A41C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298A420 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A424 */ _t160 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A424 */ _t161 = _t160 & 0x00000001u;
|
|
/* 0298A424 */ if (_t161) goto L_0298A42C; else goto L_0298A428;
|
|
L_0298A428: ; // 0x298a428
|
|
/* 0298A428 */ cpu->r[4] = cpu->r[27] + cpu->r[8];
|
|
L_0298A42C: ; // 0x298a42c
|
|
/* 0298A42C */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A430 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A434 */ _t162 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A434 */ _t163 = _t162 & 0x00000001u;
|
|
/* 0298A434 */ if (_t163) goto L_0298A438; else goto L_0298A478;
|
|
L_0298A438: ; // 0x298a438
|
|
/* 0298A438 */ _t164 = cpu->r[1] + 0x00000418u;
|
|
/* 0298A438 */ cpu->r[11] = rbrew_read32(cpu->mem, _t164);
|
|
/* 0298A43C */ _t165 = cpu->r[11] + 0x00000014u;
|
|
/* 0298A43C */ cpu->r[12] = rbrew_read32(cpu->mem, _t165);
|
|
/* 0298A440 */ cpu->ctr = cpu->r[12];
|
|
/* 0298A444 */ cpu->r[3] = cpu->r[1] + 0x00000414u;
|
|
/* 0298A448 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A44C */ _t166 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A44C */ cpu->r[10] = rbrew_read32(cpu->mem, _t166);
|
|
/* 0298A450 */ _t167 = cpu->r[1] + 0x00000414u;
|
|
/* 0298A450 */ cpu->r[3] = rbrew_read32(cpu->mem, _t167);
|
|
/* 0298A454 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298A458 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A45C */ _t168 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A45C */ _t169 = _t168 & 0x00000001u;
|
|
/* 0298A45C */ if (_t169) goto L_0298A464; else goto L_0298A460;
|
|
L_0298A460: ; // 0x298a460
|
|
/* 0298A460 */ cpu->r[4] = cpu->r[27] + cpu->r[10];
|
|
L_0298A464: ; // 0x298a464
|
|
/* 0298A464 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A468 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A46C */ _t170 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A46C */ _t171 = _t170 & 0x00000001u;
|
|
/* 0298A46C */ if (_t171) goto L_0298A470; else goto L_0298A478;
|
|
L_0298A470: ; // 0x298a470
|
|
/* 0298A470 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298A474 */ _t172 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A474 */ _t173 = _t172 & 0x00000001u;
|
|
/* 0298A474 */ if (_t173) goto L_0298A4C0; else goto L_0298A478;
|
|
L_0298A478: ; // 0x298a478
|
|
/* 0298A478 */ _t174 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A478 */ cpu->r[11] = rbrew_read32(cpu->mem, _t174);
|
|
/* 0298A47C */ cpu->r[12] = cpu->r[28] + 0x00000230u;
|
|
/* 0298A480 */ cpu->r[4] = cpu->r[11] + 0x00000001u;
|
|
/* 0298A484 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000080u);
|
|
/* 0298A488 */ _t175 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A488 */ rbrew_write32(cpu->mem, _t175, cpu->r[4]);
|
|
/* 0298A48C */ _t176 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A48C */ _t177 = _t176 & 0x00000001u;
|
|
/* 0298A48C */ if (_t177) goto L_0298A490; else goto L_0298A494;
|
|
L_0298A490: ; // 0x298a490
|
|
/* 0298A490 */ cpu->r[12] = cpu->r[12] + cpu->r[11];
|
|
L_0298A494: ; // 0x298a494
|
|
/* 0298A494 */ _t178 = cpu->r[12] + 0x00000000u;
|
|
/* 0298A494 */ rbrew_write8(cpu->mem, _t178, (uint8_t)cpu->r[31]);
|
|
/* 0298A498 */ _t179 = cpu->r[28] + 0x0000008Cu;
|
|
/* 0298A498 */ cpu->r[4] = rbrew_read32(cpu->mem, _t179);
|
|
/* 0298A49C */ _t180 = cpu->r[28] + 0x00000090u;
|
|
/* 0298A49C */ cpu->r[5] = rbrew_read32(cpu->mem, _t180);
|
|
/* 0298A4A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[5]);
|
|
/* 0298A4A4 */ _t181 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A4A4 */ _t182 = _t181 & 0x00000001u;
|
|
/* 0298A4A4 */ if (_t182) goto L_0298A4A8; else goto L_0298A4C0;
|
|
L_0298A4A8: ; // 0x298a4a8
|
|
/* 0298A4A8 */ _t183 = cpu->r[28] + 0x00000094u;
|
|
/* 0298A4A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t183);
|
|
/* 0298A4AC */ cpu->r[6] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298A4B0 */ _t184 = cpu->r[6] + cpu->r[7];
|
|
/* 0298A4B0 */ rbrew_write32(cpu->mem, _t184, cpu->r[30]);
|
|
/* 0298A4B4 */ _t185 = cpu->r[28] + 0x0000008Cu;
|
|
/* 0298A4B4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t185);
|
|
/* 0298A4B8 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 0298A4BC */ _t186 = cpu->r[28] + 0x0000008Cu;
|
|
/* 0298A4BC */ rbrew_write32(cpu->mem, _t186, cpu->r[8]);
|
|
L_0298A4C0: ; // 0x298a4c0
|
|
/* 0298A4C0 */ _t187 = cpu->r[29] + 0x00000058u;
|
|
/* 0298A4C0 */ cpu->r[9] = rbrew_read16(cpu->mem, _t187);
|
|
/* 0298A4C4 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 0298A4C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[9]);
|
|
/* 0298A4CC */ cpu->r[25] = cpu->r[25] + 0x00000010u;
|
|
/* 0298A4D0 */ _t188 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A4D0 */ _t189 = _t188 & 0x00000001u;
|
|
/* 0298A4D0 */ if (_t189) goto L_0298A34C; else goto L_0298A4D4;
|
|
L_0298A4D4: ; // 0x298a4d4
|
|
/* 0298A4D4 */ _t190 = cpu->r[29] + 0x0000005Au;
|
|
/* 0298A4D4 */ cpu->r[0] = rbrew_read16(cpu->mem, _t190);
|
|
/* 0298A4D8 */ cpu->r[26] = 0x00000000u;
|
|
/* 0298A4DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[0]);
|
|
/* 0298A4E0 */ _t191 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A4E0 */ _t192 = _t191 & 0x00000001u;
|
|
/* 0298A4E0 */ if (_t192) goto L_0298A4E4; else goto L_0298A678;
|
|
L_0298A4E4: ; // 0x298a4e4
|
|
/* 0298A4E4 */ cpu->r[25] = 0x00000000u;
|
|
L_0298A4E8: ; // 0x298a4e8
|
|
/* 0298A4E8 */ _t193 = cpu->r[29] + 0x00000034u;
|
|
/* 0298A4E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t193);
|
|
/* 0298A4EC */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A4F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298A4F4 */ cpu->r[5] = cpu->r[29] + 0x00000034u;
|
|
/* 0298A4F8 */ _t194 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A4F8 */ _t195 = _t194 & 0x00000001u;
|
|
/* 0298A4F8 */ if (_t195) goto L_0298A500; else goto L_0298A4FC;
|
|
L_0298A4FC: ; // 0x298a4fc
|
|
/* 0298A4FC */ cpu->r[4] = cpu->r[5] + cpu->r[12];
|
|
L_0298A500: ; // 0x298a500
|
|
/* 0298A500 */ cpu->r[12] = cpu->r[4] + 0x00000008u;
|
|
/* 0298A504 */ _t196 = cpu->r[1] + 0x00000824u;
|
|
/* 0298A504 */ cpu->r[6] = rbrew_read32(cpu->mem, _t196);
|
|
/* 0298A508 */ cpu->r[4] = cpu->r[12] + cpu->r[25];
|
|
/* 0298A50C */ _t197 = cpu->r[4] + 0x0000001Cu;
|
|
/* 0298A50C */ cpu->r[0] = rbrew_read32(cpu->mem, _t197);
|
|
/* 0298A510 */ cpu->r[5] = cpu->r[4] + 0x0000001Cu;
|
|
/* 0298A514 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298A518 */ _t198 = cpu->r[6] + 0x00000014u;
|
|
/* 0298A518 */ cpu->r[7] = rbrew_read32(cpu->mem, _t198);
|
|
/* 0298A51C */ cpu->r[27] = 0x00000000u;
|
|
/* 0298A520 */ _t199 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A520 */ _t200 = _t199 & 0x00000001u;
|
|
/* 0298A520 */ if (_t200) goto L_0298A528; else goto L_0298A524;
|
|
L_0298A524: ; // 0x298a524
|
|
/* 0298A524 */ cpu->r[27] = cpu->r[5] + cpu->r[0];
|
|
L_0298A528: ; // 0x298a528
|
|
/* 0298A528 */ cpu->ctr = cpu->r[7];
|
|
/* 0298A52C */ cpu->r[30] = 0x00000001u;
|
|
/* 0298A530 */ cpu->r[3] = cpu->r[1] + 0x00000820u;
|
|
/* 0298A534 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A538 */ cpu->r[31] = cpu->r[27] + 0x00000004u;
|
|
/* 0298A53C */ cpu->r[12] = cpu->r[31];
|
|
/* 0298A540 */ _t201 = cpu->r[12] + 0x00000000u;
|
|
/* 0298A540 */ cpu->r[5] = rbrew_read32(cpu->mem, _t201);
|
|
/* 0298A544 */ _t202 = cpu->r[1] + 0x00000820u;
|
|
/* 0298A544 */ cpu->r[3] = rbrew_read32(cpu->mem, _t202);
|
|
/* 0298A548 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 0298A54C */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A550 */ _t203 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A550 */ _t204 = _t203 & 0x00000001u;
|
|
/* 0298A550 */ if (_t204) goto L_0298A558; else goto L_0298A554;
|
|
L_0298A554: ; // 0x298a554
|
|
/* 0298A554 */ cpu->r[4] = cpu->r[12] + cpu->r[5];
|
|
L_0298A558: ; // 0x298a558
|
|
/* 0298A558 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A55C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A560 */ _t205 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A560 */ _t206 = _t205 & 0x00000001u;
|
|
/* 0298A560 */ if (_t206) goto L_0298A564; else goto L_0298A5A0;
|
|
L_0298A564: ; // 0x298a564
|
|
/* 0298A564 */ _t207 = cpu->r[1] + 0x00000C30u;
|
|
/* 0298A564 */ cpu->r[9] = rbrew_read32(cpu->mem, _t207);
|
|
/* 0298A568 */ _t208 = cpu->r[9] + 0x00000014u;
|
|
/* 0298A568 */ cpu->r[10] = rbrew_read32(cpu->mem, _t208);
|
|
/* 0298A56C */ cpu->ctr = cpu->r[10];
|
|
/* 0298A570 */ cpu->r[3] = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A574 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A578 */ _t209 = cpu->r[31] + 0x00000000u;
|
|
/* 0298A578 */ cpu->r[7] = rbrew_read32(cpu->mem, _t209);
|
|
/* 0298A57C */ _t210 = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A57C */ cpu->r[3] = rbrew_read32(cpu->mem, _t210);
|
|
/* 0298A580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298A584 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A588 */ _t211 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A588 */ _t212 = _t211 & 0x00000001u;
|
|
/* 0298A588 */ if (_t212) goto L_0298A590; else goto L_0298A58C;
|
|
L_0298A58C: ; // 0x298a58c
|
|
/* 0298A58C */ cpu->r[4] = cpu->r[31] + cpu->r[7];
|
|
L_0298A590: ; // 0x298a590
|
|
/* 0298A590 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A598 */ _t213 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A598 */ _t214 = _t213 & 0x00000001u;
|
|
/* 0298A598 */ if (_t214) goto L_0298A59C; else goto L_0298A5A0;
|
|
L_0298A59C: ; // 0x298a59c
|
|
/* 0298A59C */ cpu->r[30] = 0x00000000u;
|
|
L_0298A5A0: ; // 0x298a5a0
|
|
/* 0298A5A0 */ _t215 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298A5A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t215);
|
|
/* 0298A5A4 */ _t216 = cpu->r[11] + 0x00000014u;
|
|
/* 0298A5A4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t216);
|
|
/* 0298A5A8 */ cpu->ctr = cpu->r[12];
|
|
/* 0298A5AC */ cpu->r[30] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298A5B0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298A5B4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A5B8 */ _t217 = cpu->r[31] + 0x00000000u;
|
|
/* 0298A5B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t217);
|
|
/* 0298A5BC */ _t218 = cpu->r[1] + 0x00000008u;
|
|
/* 0298A5BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t218);
|
|
/* 0298A5C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 0298A5C4 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A5C8 */ _t219 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A5C8 */ _t220 = _t219 & 0x00000001u;
|
|
/* 0298A5C8 */ if (_t220) goto L_0298A5D0; else goto L_0298A5CC;
|
|
L_0298A5CC: ; // 0x298a5cc
|
|
/* 0298A5CC */ cpu->r[4] = cpu->r[31] + cpu->r[9];
|
|
L_0298A5D0: ; // 0x298a5d0
|
|
/* 0298A5D0 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A5D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A5D8 */ _t221 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A5D8 */ _t222 = _t221 & 0x00000001u;
|
|
/* 0298A5D8 */ if (_t222) goto L_0298A5DC; else goto L_0298A61C;
|
|
L_0298A5DC: ; // 0x298a5dc
|
|
/* 0298A5DC */ _t223 = cpu->r[1] + 0x00000418u;
|
|
/* 0298A5DC */ cpu->r[4] = rbrew_read32(cpu->mem, _t223);
|
|
/* 0298A5E0 */ _t224 = cpu->r[4] + 0x00000014u;
|
|
/* 0298A5E0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t224);
|
|
/* 0298A5E4 */ cpu->ctr = cpu->r[5];
|
|
/* 0298A5E8 */ cpu->r[3] = cpu->r[1] + 0x00000414u;
|
|
/* 0298A5EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A5F0 */ _t225 = cpu->r[31] + 0x00000000u;
|
|
/* 0298A5F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t225);
|
|
/* 0298A5F4 */ _t226 = cpu->r[1] + 0x00000414u;
|
|
/* 0298A5F4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t226);
|
|
/* 0298A5F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298A5FC */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A600 */ _t227 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A600 */ _t228 = _t227 & 0x00000001u;
|
|
/* 0298A600 */ if (_t228) goto L_0298A608; else goto L_0298A604;
|
|
L_0298A604: ; // 0x298a604
|
|
/* 0298A604 */ cpu->r[4] = cpu->r[31] + cpu->r[0];
|
|
L_0298A608: ; // 0x298a608
|
|
/* 0298A608 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A60C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A610 */ _t229 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A610 */ _t230 = _t229 & 0x00000001u;
|
|
/* 0298A610 */ if (_t230) goto L_0298A614; else goto L_0298A61C;
|
|
L_0298A614: ; // 0x298a614
|
|
/* 0298A614 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298A618 */ _t231 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A618 */ _t232 = _t231 & 0x00000001u;
|
|
/* 0298A618 */ if (_t232) goto L_0298A664; else goto L_0298A61C;
|
|
L_0298A61C: ; // 0x298a61c
|
|
/* 0298A61C */ _t233 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A61C */ cpu->r[6] = rbrew_read32(cpu->mem, _t233);
|
|
/* 0298A620 */ cpu->r[7] = cpu->r[28] + 0x00000230u;
|
|
/* 0298A624 */ cpu->r[8] = cpu->r[6] + 0x00000001u;
|
|
/* 0298A628 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], 0x00000080u);
|
|
/* 0298A62C */ _t234 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A62C */ rbrew_write32(cpu->mem, _t234, cpu->r[8]);
|
|
/* 0298A630 */ _t235 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A630 */ _t236 = _t235 & 0x00000001u;
|
|
/* 0298A630 */ if (_t236) goto L_0298A634; else goto L_0298A638;
|
|
L_0298A634: ; // 0x298a634
|
|
/* 0298A634 */ cpu->r[7] = cpu->r[7] + cpu->r[6];
|
|
L_0298A638: ; // 0x298a638
|
|
/* 0298A638 */ _t237 = cpu->r[7] + 0x00000000u;
|
|
/* 0298A638 */ rbrew_write8(cpu->mem, _t237, (uint8_t)cpu->r[30]);
|
|
/* 0298A63C */ _t238 = cpu->r[28] + 0x0000008Cu;
|
|
/* 0298A63C */ cpu->r[4] = rbrew_read32(cpu->mem, _t238);
|
|
/* 0298A640 */ _t239 = cpu->r[28] + 0x00000090u;
|
|
/* 0298A640 */ cpu->r[9] = rbrew_read32(cpu->mem, _t239);
|
|
/* 0298A644 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[9]);
|
|
/* 0298A648 */ _t240 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A648 */ _t241 = _t240 & 0x00000001u;
|
|
/* 0298A648 */ if (_t241) goto L_0298A64C; else goto L_0298A664;
|
|
L_0298A64C: ; // 0x298a64c
|
|
/* 0298A64C */ _t242 = cpu->r[28] + 0x00000094u;
|
|
/* 0298A64C */ cpu->r[11] = rbrew_read32(cpu->mem, _t242);
|
|
/* 0298A650 */ cpu->r[10] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298A654 */ _t243 = cpu->r[10] + cpu->r[11];
|
|
/* 0298A654 */ rbrew_write32(cpu->mem, _t243, cpu->r[27]);
|
|
/* 0298A658 */ _t244 = cpu->r[28] + 0x0000008Cu;
|
|
/* 0298A658 */ cpu->r[12] = rbrew_read32(cpu->mem, _t244);
|
|
/* 0298A65C */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 0298A660 */ _t245 = cpu->r[28] + 0x0000008Cu;
|
|
/* 0298A660 */ rbrew_write32(cpu->mem, _t245, cpu->r[12]);
|
|
L_0298A664: ; // 0x298a664
|
|
/* 0298A664 */ _t246 = cpu->r[29] + 0x0000005Au;
|
|
/* 0298A664 */ cpu->r[0] = rbrew_read16(cpu->mem, _t246);
|
|
/* 0298A668 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 0298A66C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[0]);
|
|
/* 0298A670 */ cpu->r[25] = cpu->r[25] + 0x00000010u;
|
|
/* 0298A674 */ _t247 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A674 */ _t248 = _t247 & 0x00000001u;
|
|
/* 0298A674 */ if (_t248) goto L_0298A4E8; else goto L_0298A678;
|
|
L_0298A678: ; // 0x298a678
|
|
/* 0298A678 */ _t249 = cpu->r[29] + 0x0000005Cu;
|
|
/* 0298A678 */ cpu->r[0] = rbrew_read16(cpu->mem, _t249);
|
|
/* 0298A67C */ cpu->r[26] = 0x00000000u;
|
|
/* 0298A680 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[0]);
|
|
/* 0298A684 */ _t250 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A684 */ _t251 = _t250 & 0x00000001u;
|
|
/* 0298A684 */ if (_t251) goto L_0298A688; else goto L_0298A818;
|
|
L_0298A688: ; // 0x298a688
|
|
/* 0298A688 */ cpu->r[25] = 0x00000000u;
|
|
L_0298A68C: ; // 0x298a68c
|
|
/* 0298A68C */ _t252 = cpu->r[29] + 0x00000038u;
|
|
/* 0298A68C */ cpu->r[5] = rbrew_read32(cpu->mem, _t252);
|
|
/* 0298A690 */ cpu->r[12] = 0x00000000u;
|
|
/* 0298A694 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 0298A698 */ cpu->r[6] = cpu->r[29] + 0x00000038u;
|
|
/* 0298A69C */ _t253 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A69C */ _t254 = _t253 & 0x00000001u;
|
|
/* 0298A69C */ if (_t254) goto L_0298A6A4; else goto L_0298A6A0;
|
|
L_0298A6A0: ; // 0x298a6a0
|
|
/* 0298A6A0 */ cpu->r[12] = cpu->r[6] + cpu->r[5];
|
|
L_0298A6A4: ; // 0x298a6a4
|
|
/* 0298A6A4 */ cpu->r[4] = cpu->r[12] + cpu->r[25];
|
|
/* 0298A6A8 */ _t255 = cpu->r[4] + 0x00000024u;
|
|
/* 0298A6A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t255);
|
|
/* 0298A6AC */ cpu->r[5] = cpu->r[4] + 0x00000024u;
|
|
/* 0298A6B0 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298A6B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298A6B8 */ _t256 = cpu->r[1] + 0x00000824u;
|
|
/* 0298A6B8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t256);
|
|
/* 0298A6BC */ _t257 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A6BC */ _t258 = _t257 & 0x00000001u;
|
|
/* 0298A6BC */ if (_t258) goto L_0298A6C4; else goto L_0298A6C0;
|
|
L_0298A6C0: ; // 0x298a6c0
|
|
/* 0298A6C0 */ cpu->r[30] = cpu->r[5] + cpu->r[7];
|
|
L_0298A6C4: ; // 0x298a6c4
|
|
/* 0298A6C4 */ _t259 = cpu->r[6] + 0x00000014u;
|
|
/* 0298A6C4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t259);
|
|
/* 0298A6C8 */ cpu->ctr = cpu->r[7];
|
|
/* 0298A6CC */ cpu->r[31] = 0x00000001u;
|
|
/* 0298A6D0 */ cpu->r[3] = cpu->r[1] + 0x00000820u;
|
|
/* 0298A6D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A6D8 */ cpu->r[27] = cpu->r[30] + 0x00000004u;
|
|
/* 0298A6DC */ cpu->r[9] = cpu->r[27];
|
|
/* 0298A6E0 */ _t260 = cpu->r[9] + 0x00000000u;
|
|
/* 0298A6E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t260);
|
|
/* 0298A6E4 */ _t261 = cpu->r[1] + 0x00000820u;
|
|
/* 0298A6E4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t261);
|
|
/* 0298A6E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298A6EC */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A6F0 */ _t262 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A6F0 */ _t263 = _t262 & 0x00000001u;
|
|
/* 0298A6F0 */ if (_t263) goto L_0298A6F8; else goto L_0298A6F4;
|
|
L_0298A6F4: ; // 0x298a6f4
|
|
/* 0298A6F4 */ cpu->r[4] = cpu->r[9] + cpu->r[8];
|
|
L_0298A6F8: ; // 0x298a6f8
|
|
/* 0298A6F8 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A6FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A700 */ _t264 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A700 */ _t265 = _t264 & 0x00000001u;
|
|
/* 0298A700 */ if (_t265) goto L_0298A704; else goto L_0298A740;
|
|
L_0298A704: ; // 0x298a704
|
|
/* 0298A704 */ _t266 = cpu->r[1] + 0x00000C30u;
|
|
/* 0298A704 */ cpu->r[9] = rbrew_read32(cpu->mem, _t266);
|
|
/* 0298A708 */ _t267 = cpu->r[9] + 0x00000014u;
|
|
/* 0298A708 */ cpu->r[10] = rbrew_read32(cpu->mem, _t267);
|
|
/* 0298A70C */ cpu->ctr = cpu->r[10];
|
|
/* 0298A710 */ cpu->r[3] = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A714 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A718 */ _t268 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A718 */ cpu->r[10] = rbrew_read32(cpu->mem, _t268);
|
|
/* 0298A71C */ _t269 = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A71C */ cpu->r[3] = rbrew_read32(cpu->mem, _t269);
|
|
/* 0298A720 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298A724 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A728 */ _t270 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A728 */ _t271 = _t270 & 0x00000001u;
|
|
/* 0298A728 */ if (_t271) goto L_0298A730; else goto L_0298A72C;
|
|
L_0298A72C: ; // 0x298a72c
|
|
/* 0298A72C */ cpu->r[4] = cpu->r[27] + cpu->r[10];
|
|
L_0298A730: ; // 0x298a730
|
|
/* 0298A730 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A734 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A738 */ _t272 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A738 */ _t273 = _t272 & 0x00000001u;
|
|
/* 0298A738 */ if (_t273) goto L_0298A73C; else goto L_0298A740;
|
|
L_0298A73C: ; // 0x298a73c
|
|
/* 0298A73C */ cpu->r[31] = 0x00000000u;
|
|
L_0298A740: ; // 0x298a740
|
|
/* 0298A740 */ _t274 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298A740 */ cpu->r[11] = rbrew_read32(cpu->mem, _t274);
|
|
/* 0298A744 */ _t275 = cpu->r[11] + 0x00000014u;
|
|
/* 0298A744 */ cpu->r[12] = rbrew_read32(cpu->mem, _t275);
|
|
/* 0298A748 */ cpu->ctr = cpu->r[12];
|
|
/* 0298A74C */ cpu->r[31] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298A750 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298A754 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A758 */ _t276 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A758 */ cpu->r[11] = rbrew_read32(cpu->mem, _t276);
|
|
/* 0298A75C */ _t277 = cpu->r[1] + 0x00000008u;
|
|
/* 0298A75C */ cpu->r[3] = rbrew_read32(cpu->mem, _t277);
|
|
/* 0298A760 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298A764 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A768 */ _t278 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A768 */ _t279 = _t278 & 0x00000001u;
|
|
/* 0298A768 */ if (_t279) goto L_0298A770; else goto L_0298A76C;
|
|
L_0298A76C: ; // 0x298a76c
|
|
/* 0298A76C */ cpu->r[4] = cpu->r[27] + cpu->r[11];
|
|
L_0298A770: ; // 0x298a770
|
|
/* 0298A770 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A774 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A778 */ _t280 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A778 */ _t281 = _t280 & 0x00000001u;
|
|
/* 0298A778 */ if (_t281) goto L_0298A77C; else goto L_0298A7BC;
|
|
L_0298A77C: ; // 0x298a77c
|
|
/* 0298A77C */ _t282 = cpu->r[1] + 0x00000418u;
|
|
/* 0298A77C */ cpu->r[4] = rbrew_read32(cpu->mem, _t282);
|
|
/* 0298A780 */ _t283 = cpu->r[4] + 0x00000014u;
|
|
/* 0298A780 */ cpu->r[5] = rbrew_read32(cpu->mem, _t283);
|
|
/* 0298A784 */ cpu->ctr = cpu->r[5];
|
|
/* 0298A788 */ cpu->r[3] = cpu->r[1] + 0x00000414u;
|
|
/* 0298A78C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A790 */ _t284 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A790 */ cpu->r[12] = rbrew_read32(cpu->mem, _t284);
|
|
/* 0298A794 */ _t285 = cpu->r[1] + 0x00000414u;
|
|
/* 0298A794 */ cpu->r[3] = rbrew_read32(cpu->mem, _t285);
|
|
/* 0298A798 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298A79C */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A7A0 */ _t286 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A7A0 */ _t287 = _t286 & 0x00000001u;
|
|
/* 0298A7A0 */ if (_t287) goto L_0298A7A8; else goto L_0298A7A4;
|
|
L_0298A7A4: ; // 0x298a7a4
|
|
/* 0298A7A4 */ cpu->r[4] = cpu->r[27] + cpu->r[12];
|
|
L_0298A7A8: ; // 0x298a7a8
|
|
/* 0298A7A8 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A7AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A7B0 */ _t288 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A7B0 */ _t289 = _t288 & 0x00000001u;
|
|
/* 0298A7B0 */ if (_t289) goto L_0298A7B4; else goto L_0298A7BC;
|
|
L_0298A7B4: ; // 0x298a7b4
|
|
/* 0298A7B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298A7B8 */ _t290 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A7B8 */ _t291 = _t290 & 0x00000001u;
|
|
/* 0298A7B8 */ if (_t291) goto L_0298A804; else goto L_0298A7BC;
|
|
L_0298A7BC: ; // 0x298a7bc
|
|
/* 0298A7BC */ _t292 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A7BC */ cpu->r[5] = rbrew_read32(cpu->mem, _t292);
|
|
/* 0298A7C0 */ cpu->r[6] = cpu->r[28] + 0x00000230u;
|
|
/* 0298A7C4 */ cpu->r[7] = cpu->r[5] + 0x00000001u;
|
|
/* 0298A7C8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x00000080u);
|
|
/* 0298A7CC */ _t293 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A7CC */ rbrew_write32(cpu->mem, _t293, cpu->r[7]);
|
|
/* 0298A7D0 */ _t294 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A7D0 */ _t295 = _t294 & 0x00000001u;
|
|
/* 0298A7D0 */ if (_t295) goto L_0298A7D4; else goto L_0298A7D8;
|
|
L_0298A7D4: ; // 0x298a7d4
|
|
/* 0298A7D4 */ cpu->r[6] = cpu->r[6] + cpu->r[5];
|
|
L_0298A7D8: ; // 0x298a7d8
|
|
/* 0298A7D8 */ _t296 = cpu->r[6] + 0x00000000u;
|
|
/* 0298A7D8 */ rbrew_write8(cpu->mem, _t296, (uint8_t)cpu->r[31]);
|
|
/* 0298A7DC */ _t297 = cpu->r[28] + 0x00000118u;
|
|
/* 0298A7DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t297);
|
|
/* 0298A7E0 */ _t298 = cpu->r[28] + 0x0000011Cu;
|
|
/* 0298A7E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t298);
|
|
/* 0298A7E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[8]);
|
|
/* 0298A7E8 */ _t299 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A7E8 */ _t300 = _t299 & 0x00000001u;
|
|
/* 0298A7E8 */ if (_t300) goto L_0298A7EC; else goto L_0298A804;
|
|
L_0298A7EC: ; // 0x298a7ec
|
|
/* 0298A7EC */ _t301 = cpu->r[28] + 0x00000120u;
|
|
/* 0298A7EC */ cpu->r[11] = rbrew_read32(cpu->mem, _t301);
|
|
/* 0298A7F0 */ cpu->r[10] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298A7F4 */ _t302 = cpu->r[10] + cpu->r[11];
|
|
/* 0298A7F4 */ rbrew_write32(cpu->mem, _t302, cpu->r[30]);
|
|
/* 0298A7F8 */ _t303 = cpu->r[28] + 0x00000118u;
|
|
/* 0298A7F8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t303);
|
|
/* 0298A7FC */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 0298A800 */ _t304 = cpu->r[28] + 0x00000118u;
|
|
/* 0298A800 */ rbrew_write32(cpu->mem, _t304, cpu->r[12]);
|
|
L_0298A804: ; // 0x298a804
|
|
/* 0298A804 */ _t305 = cpu->r[29] + 0x0000005Cu;
|
|
/* 0298A804 */ cpu->r[0] = rbrew_read16(cpu->mem, _t305);
|
|
/* 0298A808 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 0298A80C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[0]);
|
|
/* 0298A810 */ cpu->r[25] = cpu->r[25] + 0x00000010u;
|
|
/* 0298A814 */ _t306 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A814 */ _t307 = _t306 & 0x00000001u;
|
|
/* 0298A814 */ if (_t307) goto L_0298A68C; else goto L_0298A818;
|
|
L_0298A818: ; // 0x298a818
|
|
/* 0298A818 */ _t308 = cpu->r[29] + 0x0000005Eu;
|
|
/* 0298A818 */ cpu->r[4] = rbrew_read16(cpu->mem, _t308);
|
|
/* 0298A81C */ cpu->r[26] = 0x00000000u;
|
|
/* 0298A820 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[4]);
|
|
/* 0298A824 */ _t309 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A824 */ _t310 = _t309 & 0x00000001u;
|
|
/* 0298A824 */ if (_t310) goto L_0298A828; else goto L_0298A9BC;
|
|
L_0298A828: ; // 0x298a828
|
|
/* 0298A828 */ cpu->r[25] = 0x00000000u;
|
|
L_0298A82C: ; // 0x298a82c
|
|
/* 0298A82C */ _t311 = cpu->r[29] + 0x0000003Cu;
|
|
/* 0298A82C */ cpu->r[4] = rbrew_read32(cpu->mem, _t311);
|
|
/* 0298A830 */ cpu->r[6] = 0x00000000u;
|
|
/* 0298A834 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298A838 */ cpu->r[7] = cpu->r[29] + 0x0000003Cu;
|
|
/* 0298A83C */ _t312 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A83C */ _t313 = _t312 & 0x00000001u;
|
|
/* 0298A83C */ if (_t313) goto L_0298A844; else goto L_0298A840;
|
|
L_0298A840: ; // 0x298a840
|
|
/* 0298A840 */ cpu->r[6] = cpu->r[7] + cpu->r[4];
|
|
L_0298A844: ; // 0x298a844
|
|
/* 0298A844 */ cpu->r[5] = cpu->r[6] + 0x00000008u;
|
|
/* 0298A848 */ _t314 = cpu->r[1] + 0x00000824u;
|
|
/* 0298A848 */ cpu->r[7] = rbrew_read32(cpu->mem, _t314);
|
|
/* 0298A84C */ cpu->r[6] = cpu->r[5] + cpu->r[25];
|
|
/* 0298A850 */ _t315 = cpu->r[6] + 0x0000001Cu;
|
|
/* 0298A850 */ cpu->r[5] = rbrew_read32(cpu->mem, _t315);
|
|
/* 0298A854 */ cpu->r[9] = cpu->r[6] + 0x0000001Cu;
|
|
/* 0298A858 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 0298A85C */ _t316 = cpu->r[7] + 0x00000014u;
|
|
/* 0298A85C */ cpu->r[8] = rbrew_read32(cpu->mem, _t316);
|
|
/* 0298A860 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298A864 */ _t317 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A864 */ _t318 = _t317 & 0x00000001u;
|
|
/* 0298A864 */ if (_t318) goto L_0298A86C; else goto L_0298A868;
|
|
L_0298A868: ; // 0x298a868
|
|
/* 0298A868 */ cpu->r[30] = cpu->r[9] + cpu->r[5];
|
|
L_0298A86C: ; // 0x298a86c
|
|
/* 0298A86C */ cpu->ctr = cpu->r[8];
|
|
/* 0298A870 */ cpu->r[31] = 0x00000001u;
|
|
/* 0298A874 */ cpu->r[3] = cpu->r[1] + 0x00000820u;
|
|
/* 0298A878 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A87C */ cpu->r[27] = cpu->r[30] + 0x00000004u;
|
|
/* 0298A880 */ cpu->r[12] = cpu->r[27];
|
|
/* 0298A884 */ _t319 = cpu->r[12] + 0x00000000u;
|
|
/* 0298A884 */ cpu->r[6] = rbrew_read32(cpu->mem, _t319);
|
|
/* 0298A888 */ _t320 = cpu->r[1] + 0x00000820u;
|
|
/* 0298A888 */ cpu->r[3] = rbrew_read32(cpu->mem, _t320);
|
|
/* 0298A88C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298A890 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A894 */ _t321 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A894 */ _t322 = _t321 & 0x00000001u;
|
|
/* 0298A894 */ if (_t322) goto L_0298A89C; else goto L_0298A898;
|
|
L_0298A898: ; // 0x298a898
|
|
/* 0298A898 */ cpu->r[4] = cpu->r[12] + cpu->r[6];
|
|
L_0298A89C: ; // 0x298a89c
|
|
/* 0298A89C */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A8A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A8A4 */ _t323 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A8A4 */ _t324 = _t323 & 0x00000001u;
|
|
/* 0298A8A4 */ if (_t324) goto L_0298A8A8; else goto L_0298A8E4;
|
|
L_0298A8A8: ; // 0x298a8a8
|
|
/* 0298A8A8 */ _t325 = cpu->r[1] + 0x00000C30u;
|
|
/* 0298A8A8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t325);
|
|
/* 0298A8AC */ _t326 = cpu->r[10] + 0x00000014u;
|
|
/* 0298A8AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t326);
|
|
/* 0298A8B0 */ cpu->ctr = cpu->r[0];
|
|
/* 0298A8B4 */ cpu->r[3] = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A8B8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A8BC */ _t327 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A8BC */ cpu->r[7] = rbrew_read32(cpu->mem, _t327);
|
|
/* 0298A8C0 */ _t328 = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298A8C0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t328);
|
|
/* 0298A8C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298A8C8 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A8CC */ _t329 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A8CC */ _t330 = _t329 & 0x00000001u;
|
|
/* 0298A8CC */ if (_t330) goto L_0298A8D4; else goto L_0298A8D0;
|
|
L_0298A8D0: ; // 0x298a8d0
|
|
/* 0298A8D0 */ cpu->r[4] = cpu->r[27] + cpu->r[7];
|
|
L_0298A8D4: ; // 0x298a8d4
|
|
/* 0298A8D4 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A8D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A8DC */ _t331 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A8DC */ _t332 = _t331 & 0x00000001u;
|
|
/* 0298A8DC */ if (_t332) goto L_0298A8E0; else goto L_0298A8E4;
|
|
L_0298A8E0: ; // 0x298a8e0
|
|
/* 0298A8E0 */ cpu->r[31] = 0x00000000u;
|
|
L_0298A8E4: ; // 0x298a8e4
|
|
/* 0298A8E4 */ _t333 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298A8E4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t333);
|
|
/* 0298A8E8 */ _t334 = cpu->r[6] + 0x00000014u;
|
|
/* 0298A8E8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t334);
|
|
/* 0298A8EC */ cpu->ctr = cpu->r[9];
|
|
/* 0298A8F0 */ cpu->r[31] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298A8F4 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298A8F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A8FC */ _t335 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A8FC */ cpu->r[8] = rbrew_read32(cpu->mem, _t335);
|
|
/* 0298A900 */ _t336 = cpu->r[1] + 0x00000008u;
|
|
/* 0298A900 */ cpu->r[3] = rbrew_read32(cpu->mem, _t336);
|
|
/* 0298A904 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298A908 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A90C */ _t337 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A90C */ _t338 = _t337 & 0x00000001u;
|
|
/* 0298A90C */ if (_t338) goto L_0298A914; else goto L_0298A910;
|
|
L_0298A910: ; // 0x298a910
|
|
/* 0298A910 */ cpu->r[4] = cpu->r[27] + cpu->r[8];
|
|
L_0298A914: ; // 0x298a914
|
|
/* 0298A914 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A91C */ _t339 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A91C */ _t340 = _t339 & 0x00000001u;
|
|
/* 0298A91C */ if (_t340) goto L_0298A920; else goto L_0298A960;
|
|
L_0298A920: ; // 0x298a920
|
|
/* 0298A920 */ _t341 = cpu->r[1] + 0x00000418u;
|
|
/* 0298A920 */ cpu->r[12] = rbrew_read32(cpu->mem, _t341);
|
|
/* 0298A924 */ _t342 = cpu->r[12] + 0x00000014u;
|
|
/* 0298A924 */ cpu->r[0] = rbrew_read32(cpu->mem, _t342);
|
|
/* 0298A928 */ cpu->ctr = cpu->r[0];
|
|
/* 0298A92C */ cpu->r[3] = cpu->r[1] + 0x00000414u;
|
|
/* 0298A930 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298A934 */ _t343 = cpu->r[27] + 0x00000000u;
|
|
/* 0298A934 */ cpu->r[9] = rbrew_read32(cpu->mem, _t343);
|
|
/* 0298A938 */ _t344 = cpu->r[1] + 0x00000414u;
|
|
/* 0298A938 */ cpu->r[3] = rbrew_read32(cpu->mem, _t344);
|
|
/* 0298A93C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 0298A940 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298A944 */ _t345 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A944 */ _t346 = _t345 & 0x00000001u;
|
|
/* 0298A944 */ if (_t346) goto L_0298A94C; else goto L_0298A948;
|
|
L_0298A948: ; // 0x298a948
|
|
/* 0298A948 */ cpu->r[4] = cpu->r[27] + cpu->r[9];
|
|
L_0298A94C: ; // 0x298a94c
|
|
/* 0298A94C */ Gambit_fn_02989F34(cpu);
|
|
/* 0298A950 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298A954 */ _t347 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A954 */ _t348 = _t347 & 0x00000001u;
|
|
/* 0298A954 */ if (_t348) goto L_0298A958; else goto L_0298A960;
|
|
L_0298A958: ; // 0x298a958
|
|
/* 0298A958 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298A95C */ _t349 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A95C */ _t350 = _t349 & 0x00000001u;
|
|
/* 0298A95C */ if (_t350) goto L_0298A9A8; else goto L_0298A960;
|
|
L_0298A960: ; // 0x298a960
|
|
/* 0298A960 */ _t351 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A960 */ cpu->r[11] = rbrew_read32(cpu->mem, _t351);
|
|
/* 0298A964 */ cpu->r[8] = cpu->r[28] + 0x00000230u;
|
|
/* 0298A968 */ cpu->r[5] = cpu->r[11] + 0x00000001u;
|
|
/* 0298A96C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], 0x00000080u);
|
|
/* 0298A970 */ _t352 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298A970 */ rbrew_write32(cpu->mem, _t352, cpu->r[5]);
|
|
/* 0298A974 */ _t353 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A974 */ _t354 = _t353 & 0x00000001u;
|
|
/* 0298A974 */ if (_t354) goto L_0298A978; else goto L_0298A97C;
|
|
L_0298A978: ; // 0x298a978
|
|
/* 0298A978 */ cpu->r[8] = cpu->r[8] + cpu->r[11];
|
|
L_0298A97C: ; // 0x298a97c
|
|
/* 0298A97C */ _t355 = cpu->r[8] + 0x00000000u;
|
|
/* 0298A97C */ rbrew_write8(cpu->mem, _t355, (uint8_t)cpu->r[31]);
|
|
/* 0298A980 */ _t356 = cpu->r[28] + 0x000001A4u;
|
|
/* 0298A980 */ cpu->r[7] = rbrew_read32(cpu->mem, _t356);
|
|
/* 0298A984 */ _t357 = cpu->r[28] + 0x000001A8u;
|
|
/* 0298A984 */ cpu->r[6] = rbrew_read32(cpu->mem, _t357);
|
|
/* 0298A988 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[6]);
|
|
/* 0298A98C */ _t358 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A98C */ _t359 = _t358 & 0x00000001u;
|
|
/* 0298A98C */ if (_t359) goto L_0298A990; else goto L_0298A9A8;
|
|
L_0298A990: ; // 0x298a990
|
|
/* 0298A990 */ _t360 = cpu->r[28] + 0x000001ACu;
|
|
/* 0298A990 */ cpu->r[10] = rbrew_read32(cpu->mem, _t360);
|
|
/* 0298A994 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298A998 */ _t361 = cpu->r[8] + cpu->r[10];
|
|
/* 0298A998 */ rbrew_write32(cpu->mem, _t361, cpu->r[30]);
|
|
/* 0298A99C */ _t362 = cpu->r[28] + 0x000001A4u;
|
|
/* 0298A99C */ cpu->r[12] = rbrew_read32(cpu->mem, _t362);
|
|
/* 0298A9A0 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 0298A9A4 */ _t363 = cpu->r[28] + 0x000001A4u;
|
|
/* 0298A9A4 */ rbrew_write32(cpu->mem, _t363, cpu->r[12]);
|
|
L_0298A9A8: ; // 0x298a9a8
|
|
/* 0298A9A8 */ _t364 = cpu->r[29] + 0x0000005Eu;
|
|
/* 0298A9A8 */ cpu->r[4] = rbrew_read16(cpu->mem, _t364);
|
|
/* 0298A9AC */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 0298A9B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[4]);
|
|
/* 0298A9B4 */ cpu->r[25] = cpu->r[25] + 0x00000010u;
|
|
/* 0298A9B8 */ _t365 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A9B8 */ _t366 = _t365 & 0x00000001u;
|
|
/* 0298A9B8 */ if (_t366) goto L_0298A82C; else goto L_0298A9BC;
|
|
L_0298A9BC: ; // 0x298a9bc
|
|
/* 0298A9BC */ _t367 = cpu->r[29] + 0x00000060u;
|
|
/* 0298A9BC */ cpu->r[6] = rbrew_read16(cpu->mem, _t367);
|
|
/* 0298A9C0 */ cpu->r[26] = 0x00000000u;
|
|
/* 0298A9C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[6]);
|
|
/* 0298A9C8 */ _t368 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298A9C8 */ _t369 = _t368 & 0x00000001u;
|
|
/* 0298A9C8 */ if (_t369) goto L_0298A9CC; else goto L_0298AB60;
|
|
L_0298A9CC: ; // 0x298a9cc
|
|
/* 0298A9CC */ cpu->r[25] = 0x00000000u;
|
|
L_0298A9D0: ; // 0x298a9d0
|
|
/* 0298A9D0 */ _t370 = cpu->r[29] + 0x00000040u;
|
|
/* 0298A9D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t370);
|
|
/* 0298A9D4 */ cpu->r[11] = 0x00000000u;
|
|
/* 0298A9D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298A9DC */ cpu->r[8] = cpu->r[29] + 0x00000040u;
|
|
/* 0298A9E0 */ _t371 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298A9E0 */ _t372 = _t371 & 0x00000001u;
|
|
/* 0298A9E0 */ if (_t372) goto L_0298A9E8; else goto L_0298A9E4;
|
|
L_0298A9E4: ; // 0x298a9e4
|
|
/* 0298A9E4 */ cpu->r[11] = cpu->r[8] + cpu->r[0];
|
|
L_0298A9E8: ; // 0x298a9e8
|
|
/* 0298A9E8 */ cpu->r[9] = cpu->r[11] + 0x00000008u;
|
|
/* 0298A9EC */ cpu->r[11] = cpu->r[9] + cpu->r[25];
|
|
/* 0298A9F0 */ _t373 = cpu->r[11] + 0x0000001Cu;
|
|
/* 0298A9F0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t373);
|
|
/* 0298A9F4 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298A9F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298A9FC */ cpu->r[5] = cpu->r[11] + 0x0000001Cu;
|
|
/* 0298AA00 */ _t374 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AA00 */ _t375 = _t374 & 0x00000001u;
|
|
/* 0298AA00 */ if (_t375) goto L_0298AA08; else goto L_0298AA04;
|
|
L_0298AA04: ; // 0x298aa04
|
|
/* 0298AA04 */ cpu->r[30] = cpu->r[5] + cpu->r[4];
|
|
L_0298AA08: ; // 0x298aa08
|
|
/* 0298AA08 */ _t376 = cpu->r[1] + 0x00000824u;
|
|
/* 0298AA08 */ cpu->r[4] = rbrew_read32(cpu->mem, _t376);
|
|
/* 0298AA0C */ _t377 = cpu->r[4] + 0x00000014u;
|
|
/* 0298AA0C */ cpu->r[7] = rbrew_read32(cpu->mem, _t377);
|
|
/* 0298AA10 */ cpu->ctr = cpu->r[7];
|
|
/* 0298AA14 */ cpu->r[31] = 0x00000001u;
|
|
/* 0298AA18 */ cpu->r[3] = cpu->r[1] + 0x00000820u;
|
|
/* 0298AA1C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298AA20 */ cpu->r[27] = cpu->r[30] + 0x00000004u;
|
|
/* 0298AA24 */ cpu->r[8] = cpu->r[27];
|
|
/* 0298AA28 */ _t378 = cpu->r[8] + 0x00000000u;
|
|
/* 0298AA28 */ cpu->r[6] = rbrew_read32(cpu->mem, _t378);
|
|
/* 0298AA2C */ _t379 = cpu->r[1] + 0x00000820u;
|
|
/* 0298AA2C */ cpu->r[3] = rbrew_read32(cpu->mem, _t379);
|
|
/* 0298AA30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298AA34 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298AA38 */ _t380 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AA38 */ _t381 = _t380 & 0x00000001u;
|
|
/* 0298AA38 */ if (_t381) goto L_0298AA40; else goto L_0298AA3C;
|
|
L_0298AA3C: ; // 0x298aa3c
|
|
/* 0298AA3C */ cpu->r[4] = cpu->r[8] + cpu->r[6];
|
|
L_0298AA40: ; // 0x298aa40
|
|
/* 0298AA40 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298AA44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AA48 */ _t382 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AA48 */ _t383 = _t382 & 0x00000001u;
|
|
/* 0298AA48 */ if (_t383) goto L_0298AA4C; else goto L_0298AA88;
|
|
L_0298AA4C: ; // 0x298aa4c
|
|
/* 0298AA4C */ _t384 = cpu->r[1] + 0x00000C30u;
|
|
/* 0298AA4C */ cpu->r[11] = rbrew_read32(cpu->mem, _t384);
|
|
/* 0298AA50 */ _t385 = cpu->r[11] + 0x00000014u;
|
|
/* 0298AA50 */ cpu->r[5] = rbrew_read32(cpu->mem, _t385);
|
|
/* 0298AA54 */ cpu->ctr = cpu->r[5];
|
|
/* 0298AA58 */ cpu->r[3] = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298AA5C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298AA60 */ _t386 = cpu->r[27] + 0x00000000u;
|
|
/* 0298AA60 */ cpu->r[7] = rbrew_read32(cpu->mem, _t386);
|
|
/* 0298AA64 */ _t387 = cpu->r[1] + 0x00000C2Cu;
|
|
/* 0298AA64 */ cpu->r[3] = rbrew_read32(cpu->mem, _t387);
|
|
/* 0298AA68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298AA6C */ cpu->r[4] = 0x00000000u;
|
|
/* 0298AA70 */ _t388 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AA70 */ _t389 = _t388 & 0x00000001u;
|
|
/* 0298AA70 */ if (_t389) goto L_0298AA78; else goto L_0298AA74;
|
|
L_0298AA74: ; // 0x298aa74
|
|
/* 0298AA74 */ cpu->r[4] = cpu->r[27] + cpu->r[7];
|
|
L_0298AA78: ; // 0x298aa78
|
|
/* 0298AA78 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298AA7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AA80 */ _t390 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AA80 */ _t391 = _t390 & 0x00000001u;
|
|
/* 0298AA80 */ if (_t391) goto L_0298AA84; else goto L_0298AA88;
|
|
L_0298AA84: ; // 0x298aa84
|
|
/* 0298AA84 */ cpu->r[31] = 0x00000000u;
|
|
L_0298AA88: ; // 0x298aa88
|
|
/* 0298AA88 */ _t392 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298AA88 */ cpu->r[7] = rbrew_read32(cpu->mem, _t392);
|
|
/* 0298AA8C */ _t393 = cpu->r[7] + 0x00000014u;
|
|
/* 0298AA8C */ cpu->r[10] = rbrew_read32(cpu->mem, _t393);
|
|
/* 0298AA90 */ cpu->ctr = cpu->r[10];
|
|
/* 0298AA94 */ cpu->r[31] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298AA98 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298AA9C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298AAA0 */ _t394 = cpu->r[27] + 0x00000000u;
|
|
/* 0298AAA0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t394);
|
|
/* 0298AAA4 */ _t395 = cpu->r[1] + 0x00000008u;
|
|
/* 0298AAA4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t395);
|
|
/* 0298AAA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298AAAC */ cpu->r[4] = 0x00000000u;
|
|
/* 0298AAB0 */ _t396 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AAB0 */ _t397 = _t396 & 0x00000001u;
|
|
/* 0298AAB0 */ if (_t397) goto L_0298AAB8; else goto L_0298AAB4;
|
|
L_0298AAB4: ; // 0x298aab4
|
|
/* 0298AAB4 */ cpu->r[4] = cpu->r[27] + cpu->r[8];
|
|
L_0298AAB8: ; // 0x298aab8
|
|
/* 0298AAB8 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298AABC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AAC0 */ _t398 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AAC0 */ _t399 = _t398 & 0x00000001u;
|
|
/* 0298AAC0 */ if (_t399) goto L_0298AAC4; else goto L_0298AB04;
|
|
L_0298AAC4: ; // 0x298aac4
|
|
/* 0298AAC4 */ _t400 = cpu->r[1] + 0x00000418u;
|
|
/* 0298AAC4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t400);
|
|
/* 0298AAC8 */ _t401 = cpu->r[5] + 0x00000014u;
|
|
/* 0298AAC8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t401);
|
|
/* 0298AACC */ cpu->ctr = cpu->r[7];
|
|
/* 0298AAD0 */ cpu->r[3] = cpu->r[1] + 0x00000414u;
|
|
/* 0298AAD4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298AAD8 */ _t402 = cpu->r[27] + 0x00000000u;
|
|
/* 0298AAD8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t402);
|
|
/* 0298AADC */ _t403 = cpu->r[1] + 0x00000414u;
|
|
/* 0298AADC */ cpu->r[3] = rbrew_read32(cpu->mem, _t403);
|
|
/* 0298AAE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298AAE4 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298AAE8 */ _t404 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AAE8 */ _t405 = _t404 & 0x00000001u;
|
|
/* 0298AAE8 */ if (_t405) goto L_0298AAF0; else goto L_0298AAEC;
|
|
L_0298AAEC: ; // 0x298aaec
|
|
/* 0298AAEC */ cpu->r[4] = cpu->r[27] + cpu->r[0];
|
|
L_0298AAF0: ; // 0x298aaf0
|
|
/* 0298AAF0 */ Gambit_fn_02989F34(cpu);
|
|
/* 0298AAF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AAF8 */ _t406 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AAF8 */ _t407 = _t406 & 0x00000001u;
|
|
/* 0298AAF8 */ if (_t407) goto L_0298AAFC; else goto L_0298AB04;
|
|
L_0298AAFC: ; // 0x298aafc
|
|
/* 0298AAFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298AB00 */ _t408 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AB00 */ _t409 = _t408 & 0x00000001u;
|
|
/* 0298AB00 */ if (_t409) goto L_0298AB4C; else goto L_0298AB04;
|
|
L_0298AB04: ; // 0x298ab04
|
|
/* 0298AB04 */ _t410 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298AB04 */ cpu->r[7] = rbrew_read32(cpu->mem, _t410);
|
|
/* 0298AB08 */ cpu->r[10] = cpu->r[28] + 0x00000230u;
|
|
/* 0298AB0C */ cpu->r[11] = cpu->r[7] + 0x00000001u;
|
|
/* 0298AB10 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], 0x00000080u);
|
|
/* 0298AB14 */ _t411 = cpu->r[28] + 0x000002B0u;
|
|
/* 0298AB14 */ rbrew_write32(cpu->mem, _t411, cpu->r[11]);
|
|
/* 0298AB18 */ _t412 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298AB18 */ _t413 = _t412 & 0x00000001u;
|
|
/* 0298AB18 */ if (_t413) goto L_0298AB1C; else goto L_0298AB20;
|
|
L_0298AB1C: ; // 0x298ab1c
|
|
/* 0298AB1C */ cpu->r[10] = cpu->r[10] + cpu->r[7];
|
|
L_0298AB20: ; // 0x298ab20
|
|
/* 0298AB20 */ _t414 = cpu->r[10] + 0x00000000u;
|
|
/* 0298AB20 */ rbrew_write8(cpu->mem, _t414, (uint8_t)cpu->r[31]);
|
|
/* 0298AB24 */ _t415 = cpu->r[28] + 0x000001A4u;
|
|
/* 0298AB24 */ cpu->r[7] = rbrew_read32(cpu->mem, _t415);
|
|
/* 0298AB28 */ _t416 = cpu->r[28] + 0x000001A8u;
|
|
/* 0298AB28 */ cpu->r[4] = rbrew_read32(cpu->mem, _t416);
|
|
/* 0298AB2C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[4]);
|
|
/* 0298AB30 */ _t417 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298AB30 */ _t418 = _t417 & 0x00000001u;
|
|
/* 0298AB30 */ if (_t418) goto L_0298AB34; else goto L_0298AB4C;
|
|
L_0298AB34: ; // 0x298ab34
|
|
/* 0298AB34 */ _t419 = cpu->r[28] + 0x000001ACu;
|
|
/* 0298AB34 */ cpu->r[8] = rbrew_read32(cpu->mem, _t419);
|
|
/* 0298AB38 */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298AB3C */ _t420 = cpu->r[6] + cpu->r[8];
|
|
/* 0298AB3C */ rbrew_write32(cpu->mem, _t420, cpu->r[30]);
|
|
/* 0298AB40 */ _t421 = cpu->r[28] + 0x000001A4u;
|
|
/* 0298AB40 */ cpu->r[10] = rbrew_read32(cpu->mem, _t421);
|
|
/* 0298AB44 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 0298AB48 */ _t422 = cpu->r[28] + 0x000001A4u;
|
|
/* 0298AB48 */ rbrew_write32(cpu->mem, _t422, cpu->r[10]);
|
|
L_0298AB4C: ; // 0x298ab4c
|
|
/* 0298AB4C */ _t423 = cpu->r[29] + 0x00000060u;
|
|
/* 0298AB4C */ cpu->r[4] = rbrew_read16(cpu->mem, _t423);
|
|
/* 0298AB50 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 0298AB54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[4]);
|
|
/* 0298AB58 */ cpu->r[25] = cpu->r[25] + 0x00000010u;
|
|
/* 0298AB5C */ _t424 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298AB5C */ _t425 = _t424 & 0x00000001u;
|
|
/* 0298AB5C */ if (_t425) goto L_0298A9D0; else goto L_0298AB60;
|
|
L_0298AB60: ; // 0x298ab60
|
|
/* 0298AB60 */ /* nop */
|
|
/* 0298AB64 */ _t426 = cpu->r[1] + 0x0000105Cu;
|
|
/* 0298AB64 */ cpu->r[0] = rbrew_read32(cpu->mem, _t426);
|
|
/* 0298AB68 */ cpu->lr = cpu->r[0];
|
|
/* 0298AB6C */ cpu->r[1] = cpu->r[1] + 0x00001058u;
|
|
/* 0298AB70 */ return;
|
|
}
|
|
|
|
// fn_0298AB74 @ 0x298ab74
|
|
void Gambit_fn_0298AB74(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_0298AB74: ; // 0x298ab74
|
|
/* 0298AB74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AB78 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AB78 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298AB78 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298AB78 */ goto L_0298AB7C;
|
|
L_0298AB7C: ; // 0x298ab7c
|
|
/* 0298AB7C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298AB7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298AB80 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AB80 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298AB80 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298AB80 */ goto L_0298AB84;
|
|
L_0298AB84: ; // 0x298ab84
|
|
/* 0298AB84 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298AB88 @ 0x298ab88
|
|
void Gambit_fn_0298AB88(CPUState* cpu) {
|
|
L_0298AB88: ; // 0x298ab88
|
|
/* 0298AB88 */ return;
|
|
}
|
|
|
|
// fn_0298AB8C @ 0x298ab8c
|
|
void Gambit_fn_0298AB8C(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_0298AB8C: ; // 0x298ab8c
|
|
/* 0298AB8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AB90 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AB90 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298AB90 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298AB90 */ goto L_0298AB94;
|
|
L_0298AB94: ; // 0x298ab94
|
|
/* 0298AB94 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298AB94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298AB98 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AB98 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298AB98 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298AB98 */ goto L_0298AB9C;
|
|
L_0298AB9C: ; // 0x298ab9c
|
|
/* 0298AB9C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298ABA0 @ 0x298aba0
|
|
void Gambit_fn_0298ABA0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_0298ABA0: ; // 0x298aba0
|
|
/* 0298ABA0 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 0298ABA0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298ABA4 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 0298ABA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298ABA8 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 0298ABAC */ cpu->r[11] = 0x10110000u;
|
|
/* 0298ABB0 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 0298ABB0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 0298ABB4 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 0298ABB4 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 0298ABB8 */ return;
|
|
}
|
|
|
|
// fn_0298ABBC @ 0x298abbc
|
|
void Gambit_fn_0298ABBC(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_0298ABBC: ; // 0x298abbc
|
|
/* 0298ABBC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ABC0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ABC0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298ABC0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298ABC0 */ goto L_0298ABC4;
|
|
L_0298ABC4: ; // 0x298abc4
|
|
/* 0298ABC4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298ABC4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298ABC8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ABC8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298ABC8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298ABC8 */ goto L_0298ABCC;
|
|
L_0298ABCC: ; // 0x298abcc
|
|
/* 0298ABCC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298ABD0 @ 0x298abd0
|
|
void Gambit_fn_0298ABD0(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_0298ABD0: ; // 0x298abd0
|
|
/* 0298ABD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ABD4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ABD4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298ABD4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298ABD4 */ goto L_0298ABD8;
|
|
L_0298ABD8: ; // 0x298abd8
|
|
/* 0298ABD8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298ABD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298ABDC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ABDC */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298ABDC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298ABDC */ goto L_0298ABE0;
|
|
L_0298ABE0: ; // 0x298abe0
|
|
/* 0298ABE0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298ABE4 @ 0x298abe4
|
|
void Gambit_fn_0298ABE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57;
|
|
|
|
L_0298ABE4: ; // 0x298abe4
|
|
/* 0298ABE4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298ABE8 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 0298ABE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298ABE8 */ cpu->r[1] = _t0;
|
|
/* 0298ABEC */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 0298ABEC */ rbrew_write32(cpu->mem, _t1, cpu->r[10]);
|
|
/* 0298ABF0 */ _t2 = cpu->r[1] + 0x00000084u;
|
|
/* 0298ABF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298ABF4 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298ABF4 */ rbrew_write32(cpu->mem, _t3, cpu->r[8]);
|
|
/* 0298ABF8 */ _t4 = cpu->r[1] + 0x00000020u;
|
|
/* 0298ABF8 */ rbrew_write32(cpu->mem, _t4, cpu->r[5]);
|
|
/* 0298ABFC */ _t5 = cpu->r[1] + 0x00000018u;
|
|
/* 0298ABFC */ rbrew_write32(cpu->mem, _t5, cpu->r[3]);
|
|
/* 0298AC00 */ _t6 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298AC00 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298AC04 */ _t7 = cpu->r[1] + 0x00000078u;
|
|
/* 0298AC04 */ rbrew_write32(cpu->mem, _t7, cpu->r[28]);
|
|
/* 0298AC08 */ _t8 = cpu->r[1] + 0x00000080u;
|
|
/* 0298AC08 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 0298AC0C */ _t9 = cpu->r[1] + 0x00000024u;
|
|
/* 0298AC0C */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 0298AC10 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 0298AC10 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 0298AC14 */ _t11 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298AC14 */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 0298AC18 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298AC18 */ rbrew_write32(cpu->mem, _t12, cpu->r[4]);
|
|
/* 0298AC1C */ _t13 = cpu->r[1] + 0x00000028u;
|
|
/* 0298AC1C */ rbrew_write32(cpu->mem, _t13, cpu->r[7]);
|
|
/* 0298AC20 */ _t14 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 0298AC20 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298AC20 */ if (_t15) goto L_0298AC24; else goto L_0298AC44;
|
|
L_0298AC24: ; // 0x298ac24
|
|
/* 0298AC24 */ _t16 = cpu->r[1] + 0x00000048u;
|
|
/* 0298AC24 */ rbrew_write_f64(cpu->mem, _t16, cpu->f[3]);
|
|
/* 0298AC28 */ _t17 = cpu->r[1] + 0x00000068u;
|
|
/* 0298AC28 */ rbrew_write_f64(cpu->mem, _t17, cpu->f[7]);
|
|
/* 0298AC2C */ _t18 = cpu->r[1] + 0x00000060u;
|
|
/* 0298AC2C */ rbrew_write_f64(cpu->mem, _t18, cpu->f[6]);
|
|
/* 0298AC30 */ _t19 = cpu->r[1] + 0x00000040u;
|
|
/* 0298AC30 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[2]);
|
|
/* 0298AC34 */ _t20 = cpu->r[1] + 0x00000050u;
|
|
/* 0298AC34 */ rbrew_write_f64(cpu->mem, _t20, cpu->f[4]);
|
|
/* 0298AC38 */ _t21 = cpu->r[1] + 0x00000070u;
|
|
/* 0298AC38 */ rbrew_write_f64(cpu->mem, _t21, cpu->f[8]);
|
|
/* 0298AC3C */ _t22 = cpu->r[1] + 0x00000058u;
|
|
/* 0298AC3C */ rbrew_write_f64(cpu->mem, _t22, cpu->f[5]);
|
|
/* 0298AC40 */ _t23 = cpu->r[1] + 0x00000038u;
|
|
/* 0298AC40 */ rbrew_write_f64(cpu->mem, _t23, cpu->f[1]);
|
|
L_0298AC44: ; // 0x298ac44
|
|
/* 0298AC44 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298AC44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298AC48 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298AC4C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC4C */ _t25 = _t24 & 0x00000001u;
|
|
/* 0298AC4C */ if (_t25) goto L_0298AC50; else goto L_0298AC60;
|
|
L_0298AC50: ; // 0x298ac50
|
|
/* 0298AC50 */ cpu->r[3] = 0x0000040Cu;
|
|
/* 0298AC54 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298AC58 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298AC58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298AC5C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC5C */ _t27 = _t26 & 0x00000001u;
|
|
/* 0298AC5C */ if (_t27) goto L_0298AD24; else goto L_0298AC60;
|
|
L_0298AC60: ; // 0x298ac60
|
|
/* 0298AC60 */ cpu->r[29] = cpu->r[31];
|
|
/* 0298AC60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298AC64 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC64 */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298AC64 */ if (_t29) goto L_0298AC68; else goto L_0298AC78;
|
|
L_0298AC68: ; // 0x298ac68
|
|
/* 0298AC68 */ cpu->r[3] = 0x0000040Cu;
|
|
/* 0298AC6C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298AC70 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298AC70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298AC74 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC74 */ _t31 = _t30 & 0x00000001u;
|
|
/* 0298AC74 */ if (_t31) goto L_0298ACE8; else goto L_0298AC78;
|
|
L_0298AC78: ; // 0x298ac78
|
|
/* 0298AC78 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298AC78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AC7C */ cpu->r[28] = 0x10110000u;
|
|
/* 0298AC80 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC80 */ _t33 = _t32 & 0x00000001u;
|
|
/* 0298AC80 */ if (_t33) goto L_0298AC84; else goto L_0298ACB0;
|
|
L_0298AC84: ; // 0x298ac84
|
|
/* 0298AC84 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298AC88 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298AC8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AC90 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC90 */ _t35 = _t34 & 0x00000001u;
|
|
/* 0298AC90 */ if (_t35) goto L_0298AC94; else goto L_0298ACB0;
|
|
L_0298AC94: ; // 0x298ac94
|
|
/* 0298AC94 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298AC98 */ _t36 = cpu->r[28] + 0x00007399u;
|
|
/* 0298AC98 */ cpu->r[0] = rbrew_read8(cpu->mem, _t36);
|
|
/* 0298AC9C */ cpu->r[7] = cpu->r[7] + 0xFFFFEF2Cu;
|
|
/* 0298ACA0 */ _t37 = cpu->r[29] + 0x00000000u;
|
|
/* 0298ACA0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 0298ACA4 */ _t38 = cpu->r[29] + 0x00000004u;
|
|
/* 0298ACA4 */ rbrew_write32(cpu->mem, _t38, cpu->r[7]);
|
|
/* 0298ACA8 */ _t39 = cpu->r[8] + 0x00000000u;
|
|
/* 0298ACA8 */ rbrew_write8(cpu->mem, _t39, (uint8_t)cpu->r[0]);
|
|
/* 0298ACAC */ goto L_0298ACE8;
|
|
L_0298ACB0: ; // 0x298acb0
|
|
/* 0298ACB0 */ cpu->r[5] = 0x10150000u;
|
|
/* 0298ACB4 */ cpu->r[0] = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298ACB8 */ cpu->r[5] = cpu->r[5] + 0xFFFFEF14u;
|
|
/* 0298ACBC */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 0298ACBC */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
/* 0298ACC0 */ cpu->r[6] = 0x00000400u;
|
|
/* 0298ACC4 */ _t41 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ACC4 */ rbrew_write32(cpu->mem, _t41, cpu->r[5]);
|
|
/* 0298ACC8 */ _t42 = cpu->r[3] + 0x00000008u;
|
|
/* 0298ACC8 */ rbrew_write32(cpu->mem, _t42, cpu->r[6]);
|
|
/* 0298ACCC */ _t43 = cpu->r[28] + 0x00007399u;
|
|
/* 0298ACCC */ cpu->r[0] = rbrew_read8(cpu->mem, _t43);
|
|
/* 0298ACD0 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298ACD4 */ _t44 = cpu->r[29] + 0x00000000u;
|
|
/* 0298ACD4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t44);
|
|
/* 0298ACD8 */ cpu->r[7] = cpu->r[7] + 0xFFFFEF2Cu;
|
|
/* 0298ACDC */ _t45 = cpu->r[29] + 0x0000040Bu;
|
|
/* 0298ACDC */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[0]);
|
|
/* 0298ACE0 */ _t46 = cpu->r[29] + 0x00000004u;
|
|
/* 0298ACE0 */ rbrew_write32(cpu->mem, _t46, cpu->r[7]);
|
|
/* 0298ACE4 */ _t47 = cpu->r[8] + 0x00000000u;
|
|
/* 0298ACE4 */ rbrew_write8(cpu->mem, _t47, (uint8_t)cpu->r[0]);
|
|
L_0298ACE8: ; // 0x298ace8
|
|
/* 0298ACE8 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298ACEC */ cpu->r[12] = 0x00000002u;
|
|
/* 0298ACF0 */ cpu->r[9] = cpu->r[9] + 0xFFFFEF5Cu;
|
|
/* 0298ACF4 */ cpu->r[0] = cpu->r[1] + 0x00000090u;
|
|
/* 0298ACF8 */ _t48 = cpu->r[31] + 0x00000004u;
|
|
/* 0298ACF8 */ rbrew_write32(cpu->mem, _t48, cpu->r[9]);
|
|
/* 0298ACFC */ cpu->r[11] = cpu->r[1] + 0x00000018u;
|
|
/* 0298AD00 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298AD00 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 0298AD04 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298AD08 */ _t50 = cpu->r[1] + 0x00000010u;
|
|
/* 0298AD08 */ rbrew_write32(cpu->mem, _t50, cpu->r[11]);
|
|
/* 0298AD0C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AD10 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298AD14 */ _t51 = cpu->r[1] + 0x00000009u;
|
|
/* 0298AD14 */ rbrew_write8(cpu->mem, _t51, (uint8_t)cpu->r[0]);
|
|
/* 0298AD18 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298AD1C */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 0298AD1C */ rbrew_write8(cpu->mem, _t52, (uint8_t)cpu->r[12]);
|
|
/* 0298AD20 */ Gambit_fn_0282A5DC(cpu);
|
|
L_0298AD24: ; // 0x298ad24
|
|
/* 0298AD24 */ _t53 = cpu->r[1] + 0x00000078u;
|
|
/* 0298AD24 */ cpu->r[28] = rbrew_read32(cpu->mem, _t53);
|
|
/* 0298AD28 */ _t54 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298AD28 */ cpu->r[29] = rbrew_read32(cpu->mem, _t54);
|
|
/* 0298AD2C */ _t55 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298AD2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 0298AD30 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AD34 */ _t56 = cpu->r[1] + 0x00000080u;
|
|
/* 0298AD34 */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 0298AD38 */ cpu->lr = cpu->r[0];
|
|
/* 0298AD3C */ _t57 = cpu->r[1] + 0x00000084u;
|
|
/* 0298AD3C */ cpu->r[31] = rbrew_read32(cpu->mem, _t57);
|
|
/* 0298AD40 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 0298AD44 */ return;
|
|
}
|
|
|
|
// fn_0298ABE8 @ 0x298abe8
|
|
void Gambit_fn_0298ABE8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57;
|
|
|
|
L_0298ABE8: ; // 0x298abe8
|
|
/* 0298ABE8 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 0298ABE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298ABE8 */ cpu->r[1] = _t0;
|
|
/* 0298ABEC */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 0298ABEC */ rbrew_write32(cpu->mem, _t1, cpu->r[10]);
|
|
/* 0298ABF0 */ _t2 = cpu->r[1] + 0x00000084u;
|
|
/* 0298ABF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298ABF4 */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298ABF4 */ rbrew_write32(cpu->mem, _t3, cpu->r[8]);
|
|
/* 0298ABF8 */ _t4 = cpu->r[1] + 0x00000020u;
|
|
/* 0298ABF8 */ rbrew_write32(cpu->mem, _t4, cpu->r[5]);
|
|
/* 0298ABFC */ _t5 = cpu->r[1] + 0x00000018u;
|
|
/* 0298ABFC */ rbrew_write32(cpu->mem, _t5, cpu->r[3]);
|
|
/* 0298AC00 */ _t6 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298AC00 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298AC04 */ _t7 = cpu->r[1] + 0x00000078u;
|
|
/* 0298AC04 */ rbrew_write32(cpu->mem, _t7, cpu->r[28]);
|
|
/* 0298AC08 */ _t8 = cpu->r[1] + 0x00000080u;
|
|
/* 0298AC08 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 0298AC0C */ _t9 = cpu->r[1] + 0x00000024u;
|
|
/* 0298AC0C */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 0298AC10 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 0298AC10 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 0298AC14 */ _t11 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298AC14 */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 0298AC18 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298AC18 */ rbrew_write32(cpu->mem, _t12, cpu->r[4]);
|
|
/* 0298AC1C */ _t13 = cpu->r[1] + 0x00000028u;
|
|
/* 0298AC1C */ rbrew_write32(cpu->mem, _t13, cpu->r[7]);
|
|
/* 0298AC20 */ _t14 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 0298AC20 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298AC20 */ if (_t15) goto L_0298AC24; else goto L_0298AC44;
|
|
L_0298AC24: ; // 0x298ac24
|
|
/* 0298AC24 */ _t16 = cpu->r[1] + 0x00000048u;
|
|
/* 0298AC24 */ rbrew_write_f64(cpu->mem, _t16, cpu->f[3]);
|
|
/* 0298AC28 */ _t17 = cpu->r[1] + 0x00000068u;
|
|
/* 0298AC28 */ rbrew_write_f64(cpu->mem, _t17, cpu->f[7]);
|
|
/* 0298AC2C */ _t18 = cpu->r[1] + 0x00000060u;
|
|
/* 0298AC2C */ rbrew_write_f64(cpu->mem, _t18, cpu->f[6]);
|
|
/* 0298AC30 */ _t19 = cpu->r[1] + 0x00000040u;
|
|
/* 0298AC30 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[2]);
|
|
/* 0298AC34 */ _t20 = cpu->r[1] + 0x00000050u;
|
|
/* 0298AC34 */ rbrew_write_f64(cpu->mem, _t20, cpu->f[4]);
|
|
/* 0298AC38 */ _t21 = cpu->r[1] + 0x00000070u;
|
|
/* 0298AC38 */ rbrew_write_f64(cpu->mem, _t21, cpu->f[8]);
|
|
/* 0298AC3C */ _t22 = cpu->r[1] + 0x00000058u;
|
|
/* 0298AC3C */ rbrew_write_f64(cpu->mem, _t22, cpu->f[5]);
|
|
/* 0298AC40 */ _t23 = cpu->r[1] + 0x00000038u;
|
|
/* 0298AC40 */ rbrew_write_f64(cpu->mem, _t23, cpu->f[1]);
|
|
L_0298AC44: ; // 0x298ac44
|
|
/* 0298AC44 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298AC44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298AC48 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298AC4C */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC4C */ _t25 = _t24 & 0x00000001u;
|
|
/* 0298AC4C */ if (_t25) goto L_0298AC50; else goto L_0298AC60;
|
|
L_0298AC50: ; // 0x298ac50
|
|
/* 0298AC50 */ cpu->r[3] = 0x0000040Cu;
|
|
/* 0298AC54 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298AC58 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298AC58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298AC5C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC5C */ _t27 = _t26 & 0x00000001u;
|
|
/* 0298AC5C */ if (_t27) goto L_0298AD24; else goto L_0298AC60;
|
|
L_0298AC60: ; // 0x298ac60
|
|
/* 0298AC60 */ cpu->r[29] = cpu->r[31];
|
|
/* 0298AC60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298AC64 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC64 */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298AC64 */ if (_t29) goto L_0298AC68; else goto L_0298AC78;
|
|
L_0298AC68: ; // 0x298ac68
|
|
/* 0298AC68 */ cpu->r[3] = 0x0000040Cu;
|
|
/* 0298AC6C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298AC70 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298AC70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298AC74 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC74 */ _t31 = _t30 & 0x00000001u;
|
|
/* 0298AC74 */ if (_t31) goto L_0298ACE8; else goto L_0298AC78;
|
|
L_0298AC78: ; // 0x298ac78
|
|
/* 0298AC78 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298AC78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AC7C */ cpu->r[28] = 0x10110000u;
|
|
/* 0298AC80 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC80 */ _t33 = _t32 & 0x00000001u;
|
|
/* 0298AC80 */ if (_t33) goto L_0298AC84; else goto L_0298ACB0;
|
|
L_0298AC84: ; // 0x298ac84
|
|
/* 0298AC84 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298AC88 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298AC8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AC90 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AC90 */ _t35 = _t34 & 0x00000001u;
|
|
/* 0298AC90 */ if (_t35) goto L_0298AC94; else goto L_0298ACB0;
|
|
L_0298AC94: ; // 0x298ac94
|
|
/* 0298AC94 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298AC98 */ _t36 = cpu->r[28] + 0x00007399u;
|
|
/* 0298AC98 */ cpu->r[0] = rbrew_read8(cpu->mem, _t36);
|
|
/* 0298AC9C */ cpu->r[7] = cpu->r[7] + 0xFFFFEF2Cu;
|
|
/* 0298ACA0 */ _t37 = cpu->r[29] + 0x00000000u;
|
|
/* 0298ACA0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 0298ACA4 */ _t38 = cpu->r[29] + 0x00000004u;
|
|
/* 0298ACA4 */ rbrew_write32(cpu->mem, _t38, cpu->r[7]);
|
|
/* 0298ACA8 */ _t39 = cpu->r[8] + 0x00000000u;
|
|
/* 0298ACA8 */ rbrew_write8(cpu->mem, _t39, (uint8_t)cpu->r[0]);
|
|
/* 0298ACAC */ goto L_0298ACE8;
|
|
L_0298ACB0: ; // 0x298acb0
|
|
/* 0298ACB0 */ cpu->r[5] = 0x10150000u;
|
|
/* 0298ACB4 */ cpu->r[0] = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298ACB8 */ cpu->r[5] = cpu->r[5] + 0xFFFFEF14u;
|
|
/* 0298ACBC */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 0298ACBC */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
/* 0298ACC0 */ cpu->r[6] = 0x00000400u;
|
|
/* 0298ACC4 */ _t41 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ACC4 */ rbrew_write32(cpu->mem, _t41, cpu->r[5]);
|
|
/* 0298ACC8 */ _t42 = cpu->r[3] + 0x00000008u;
|
|
/* 0298ACC8 */ rbrew_write32(cpu->mem, _t42, cpu->r[6]);
|
|
/* 0298ACCC */ _t43 = cpu->r[28] + 0x00007399u;
|
|
/* 0298ACCC */ cpu->r[0] = rbrew_read8(cpu->mem, _t43);
|
|
/* 0298ACD0 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298ACD4 */ _t44 = cpu->r[29] + 0x00000000u;
|
|
/* 0298ACD4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t44);
|
|
/* 0298ACD8 */ cpu->r[7] = cpu->r[7] + 0xFFFFEF2Cu;
|
|
/* 0298ACDC */ _t45 = cpu->r[29] + 0x0000040Bu;
|
|
/* 0298ACDC */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[0]);
|
|
/* 0298ACE0 */ _t46 = cpu->r[29] + 0x00000004u;
|
|
/* 0298ACE0 */ rbrew_write32(cpu->mem, _t46, cpu->r[7]);
|
|
/* 0298ACE4 */ _t47 = cpu->r[8] + 0x00000000u;
|
|
/* 0298ACE4 */ rbrew_write8(cpu->mem, _t47, (uint8_t)cpu->r[0]);
|
|
L_0298ACE8: ; // 0x298ace8
|
|
/* 0298ACE8 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298ACEC */ cpu->r[12] = 0x00000002u;
|
|
/* 0298ACF0 */ cpu->r[9] = cpu->r[9] + 0xFFFFEF5Cu;
|
|
/* 0298ACF4 */ cpu->r[0] = cpu->r[1] + 0x00000090u;
|
|
/* 0298ACF8 */ _t48 = cpu->r[31] + 0x00000004u;
|
|
/* 0298ACF8 */ rbrew_write32(cpu->mem, _t48, cpu->r[9]);
|
|
/* 0298ACFC */ cpu->r[11] = cpu->r[1] + 0x00000018u;
|
|
/* 0298AD00 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298AD00 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 0298AD04 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298AD08 */ _t50 = cpu->r[1] + 0x00000010u;
|
|
/* 0298AD08 */ rbrew_write32(cpu->mem, _t50, cpu->r[11]);
|
|
/* 0298AD0C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AD10 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298AD14 */ _t51 = cpu->r[1] + 0x00000009u;
|
|
/* 0298AD14 */ rbrew_write8(cpu->mem, _t51, (uint8_t)cpu->r[0]);
|
|
/* 0298AD18 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298AD1C */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 0298AD1C */ rbrew_write8(cpu->mem, _t52, (uint8_t)cpu->r[12]);
|
|
/* 0298AD20 */ Gambit_fn_0282A5DC(cpu);
|
|
L_0298AD24: ; // 0x298ad24
|
|
/* 0298AD24 */ _t53 = cpu->r[1] + 0x00000078u;
|
|
/* 0298AD24 */ cpu->r[28] = rbrew_read32(cpu->mem, _t53);
|
|
/* 0298AD28 */ _t54 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298AD28 */ cpu->r[29] = rbrew_read32(cpu->mem, _t54);
|
|
/* 0298AD2C */ _t55 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298AD2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 0298AD30 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AD34 */ _t56 = cpu->r[1] + 0x00000080u;
|
|
/* 0298AD34 */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 0298AD38 */ cpu->lr = cpu->r[0];
|
|
/* 0298AD3C */ _t57 = cpu->r[1] + 0x00000084u;
|
|
/* 0298AD3C */ cpu->r[31] = rbrew_read32(cpu->mem, _t57);
|
|
/* 0298AD40 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 0298AD44 */ return;
|
|
}
|
|
|
|
// fn_0298AD48 @ 0x298ad48
|
|
void Gambit_fn_0298AD48(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_0298AD48: ; // 0x298ad48
|
|
/* 0298AD48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298AD4C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AD4C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298AD4C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298AD4C */ goto L_0298AD50;
|
|
L_0298AD50: ; // 0x298ad50
|
|
/* 0298AD50 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298AD50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298AD54 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AD54 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298AD54 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298AD54 */ goto L_0298AD58;
|
|
L_0298AD58: ; // 0x298ad58
|
|
/* 0298AD58 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298AD5C @ 0x298ad5c
|
|
void Gambit_fn_0298AD5C(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298AD5C: ; // 0x298ad5c
|
|
/* 0298AD5C */ cpu->r[0] = cpu->lr;
|
|
/* 0298AD60 */ _t0 = cpu->r[1] + 0xFFFFFF88u;
|
|
/* 0298AD60 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298AD60 */ cpu->r[1] = _t0;
|
|
/* 0298AD64 */ _t1 = cpu->r[1] + 0x00000068u;
|
|
/* 0298AD64 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298AD68 */ /* nop */
|
|
/* 0298AD6C */ _t2 = cpu->r[1] + 0x00000070u;
|
|
/* 0298AD6C */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 0298AD70 */ _t3 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298AD70 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298AD74 */ /* nop */
|
|
/* 0298AD78 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298AD7C */ cpu->r[27] = cpu->r[4];
|
|
/* 0298AD80 */ cpu->r[28] = cpu->r[5];
|
|
/* 0298AD84 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298AD88 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298AD8C */ cpu->r[26] = cpu->r[3];
|
|
/* 0298AD90 */ cpu->r[3] = 0x0000005Cu;
|
|
/* 0298AD94 */ cpu->r[29] = cpu->r[6];
|
|
/* 0298AD98 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298AD9C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298AD9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298ADA0 */ cpu->r[25] = 0x00000000u;
|
|
/* 0298ADA4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ADA4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298ADA4 */ if (_t5) goto L_0298AE10; else goto L_0298ADA8;
|
|
L_0298ADA8: ; // 0x298ada8
|
|
/* 0298ADA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298ADAC */ Gambit_fn_02C4F040(cpu);
|
|
/* 0298ADB0 */ cpu->r[0] = 0x101B0000u;
|
|
/* 0298ADB4 */ _t6 = cpu->r[31] + 0x00000044u;
|
|
/* 0298ADB4 */ rbrew_write32(cpu->mem, _t6, cpu->r[25]);
|
|
/* 0298ADB8 */ cpu->r[0] = cpu->r[0] + 0xFFFFEF08u;
|
|
/* 0298ADBC */ _t7 = cpu->r[31] + 0x00000058u;
|
|
/* 0298ADBC */ rbrew_write32(cpu->mem, _t7, cpu->r[25]);
|
|
/* 0298ADC0 */ _t8 = cpu->r[31] + 0x00000034u;
|
|
/* 0298ADC0 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 0298ADC4 */ _t9 = cpu->r[26] + 0x00000000u;
|
|
/* 0298ADC4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298ADC8 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 0298ADCC */ _t10 = cpu->r[1] + 0x00000024u;
|
|
/* 0298ADCC */ rbrew_write32(cpu->mem, _t10, cpu->r[25]);
|
|
/* 0298ADD0 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298ADD4 */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 0298ADD4 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 0298ADD8 */ _t12 = cpu->r[1] + 0x00000020u;
|
|
/* 0298ADD8 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
/* 0298ADDC */ cpu->r[9] = 0x00000000u;
|
|
/* 0298ADE0 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298ADE0 */ rbrew_write32(cpu->mem, _t13, cpu->r[10]);
|
|
/* 0298ADE4 */ _t14 = cpu->r[1] + 0x00000021u;
|
|
/* 0298ADE4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[9]);
|
|
/* 0298ADE8 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 0298ADE8 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 0298ADEC */ _t16 = cpu->r[1] + 0x00000028u;
|
|
/* 0298ADEC */ rbrew_write32(cpu->mem, _t16, cpu->r[25]);
|
|
/* 0298ADF0 */ _t17 = cpu->r[1] + 0x00000022u;
|
|
/* 0298ADF0 */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[9]);
|
|
/* 0298ADF4 */ _t18 = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298ADF4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298ADF8 */ cpu->r[12] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298ADFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298AE00 */ cpu->r[10] = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298AE04 */ cpu->r[11] = cpu->r[1] + 0x00000018u;
|
|
/* 0298AE08 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AE08 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298AE08 */ if (_t20) goto L_0298AE60; else goto L_0298AE0C;
|
|
L_0298AE0C: ; // 0x298ae0c
|
|
/* 0298AE0C */ goto L_0298AE5C;
|
|
L_0298AE10: ; // 0x298ae10
|
|
/* 0298AE10 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 0298AE10 */ rbrew_write32(cpu->mem, _t21, cpu->r[25]);
|
|
/* 0298AE14 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298AE18 */ _t22 = cpu->r[26] + 0x00000000u;
|
|
/* 0298AE18 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298AE1C */ cpu->r[31] = 0x00000000u;
|
|
/* 0298AE20 */ _t23 = cpu->r[1] + 0x00000020u;
|
|
/* 0298AE20 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[0]);
|
|
/* 0298AE24 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 0298AE28 */ _t24 = cpu->r[1] + 0x00000021u;
|
|
/* 0298AE28 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[31]);
|
|
/* 0298AE2C */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298AE2C */ rbrew_write32(cpu->mem, _t25, cpu->r[10]);
|
|
/* 0298AE30 */ _t26 = cpu->r[1] + 0x00000018u;
|
|
/* 0298AE30 */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 0298AE34 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 0298AE34 */ rbrew_write32(cpu->mem, _t27, cpu->r[10]);
|
|
/* 0298AE38 */ _t28 = cpu->r[1] + 0x00000022u;
|
|
/* 0298AE38 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[31]);
|
|
/* 0298AE3C */ _t29 = cpu->r[1] + 0x00000028u;
|
|
/* 0298AE3C */ rbrew_write32(cpu->mem, _t29, cpu->r[25]);
|
|
/* 0298AE40 */ _t30 = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298AE40 */ cpu->r[6] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298AE44 */ cpu->r[11] = cpu->r[1] + 0x00000018u;
|
|
/* 0298AE48 */ cpu->r[12] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298AE4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298AE50 */ cpu->r[10] = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298AE54 */ cpu->r[9] = cpu->r[31];
|
|
/* 0298AE58 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AE58 */ _t32 = _t31 & 0x00000001u;
|
|
/* 0298AE58 */ if (_t32) goto L_0298AE60; else goto L_0298AE5C;
|
|
L_0298AE5C: ; // 0x298ae5c
|
|
/* 0298AE5C */ cpu->r[9] = cpu->r[10] + cpu->r[6];
|
|
L_0298AE60: ; // 0x298ae60
|
|
/* 0298AE60 */ _t33 = cpu->r[9] + 0x00000008u;
|
|
/* 0298AE60 */ cpu->r[10] = rbrew_read16(cpu->mem, _t33);
|
|
/* 0298AE64 */ _t34 = cpu->r[27] + 0x00000018u;
|
|
/* 0298AE64 */ cpu->r[8] = rbrew_read32(cpu->mem, _t34);
|
|
/* 0298AE68 */ _t35 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298AE68 */ rbrew_write32(cpu->mem, _t35, cpu->r[10]);
|
|
/* 0298AE6C */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 0298AE6C */ rbrew_write32(cpu->mem, _t36, cpu->r[8]);
|
|
/* 0298AE70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298AE74 */ _t37 = cpu->r[27] + 0x00000014u;
|
|
/* 0298AE74 */ cpu->r[0] = rbrew_read16(cpu->mem, _t37);
|
|
/* 0298AE78 */ _t38 = cpu->r[1] + 0x00000014u;
|
|
/* 0298AE78 */ rbrew_write32(cpu->mem, _t38, cpu->r[10]);
|
|
/* 0298AE7C */ _t39 = cpu->r[11] + 0x00000000u;
|
|
/* 0298AE7C */ rbrew_write32(cpu->mem, _t39, cpu->r[0]);
|
|
/* 0298AE80 */ _t40 = cpu->r[27] + 0x0000000Cu;
|
|
/* 0298AE80 */ cpu->r[5] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298AE84 */ _t41 = cpu->r[1] + 0x00000024u;
|
|
/* 0298AE84 */ rbrew_write32(cpu->mem, _t41, cpu->r[25]);
|
|
/* 0298AE88 */ cpu->r[10] = cpu->r[12];
|
|
/* 0298AE8C */ _t42 = cpu->r[1] + 0x00000028u;
|
|
/* 0298AE8C */ rbrew_write32(cpu->mem, _t42, cpu->r[25]);
|
|
/* 0298AE90 */ _t43 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298AE90 */ _t44 = _t43 & 0x00000001u;
|
|
/* 0298AE90 */ if (_t44) goto L_0298AE98; else goto L_0298AE94;
|
|
L_0298AE94: ; // 0x298ae94
|
|
/* 0298AE94 */ cpu->r[10] = cpu->r[1] + 0x00000008u;
|
|
L_0298AE98: ; // 0x298ae98
|
|
/* 0298AE98 */ _t45 = cpu->r[10] + 0x00000000u;
|
|
/* 0298AE98 */ cpu->r[11] = rbrew_read32(cpu->mem, _t45);
|
|
/* 0298AE9C */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298AEA0 */ _t46 = cpu->r[1] + 0x00000024u;
|
|
/* 0298AEA0 */ rbrew_write32(cpu->mem, _t46, cpu->r[25]);
|
|
/* 0298AEA4 */ cpu->r[0] = cpu->r[0] ^ 0x00000001u;
|
|
/* 0298AEA8 */ _t47 = cpu->r[12] + 0x00000000u;
|
|
/* 0298AEA8 */ rbrew_write32(cpu->mem, _t47, cpu->r[11]);
|
|
/* 0298AEAC */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 0298AEB0 */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 0298AEB0 */ rbrew_write32(cpu->mem, _t48, cpu->r[25]);
|
|
/* 0298AEB4 */ _t49 = cpu->r[1] + 0x00000021u;
|
|
/* 0298AEB4 */ rbrew_write8(cpu->mem, _t49, (uint8_t)cpu->r[0]);
|
|
/* 0298AEB8 */ Gambit_fn_02C53FC4(cpu);
|
|
/* 0298AEBC */ cpu->r[5] = cpu->r[28];
|
|
/* 0298AEC0 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298AEC4 */ cpu->r[25] = cpu->r[3];
|
|
/* 0298AEC8 */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298AECC */ cpu->r[5] = cpu->r[3];
|
|
/* 0298AED0 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AED4 */ cpu->r[6] = cpu->r[25];
|
|
/* 0298AED8 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 0298AEDC */ Gambit_fn_02C53E8C(cpu);
|
|
/* 0298AEE0 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298AEE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AEE8 */ Gambit_fn_02C54BFC(cpu);
|
|
/* 0298AEEC */ _t50 = cpu->r[31] + 0x00000034u;
|
|
/* 0298AEEC */ cpu->r[6] = rbrew_read32(cpu->mem, _t50);
|
|
/* 0298AEF0 */ _t51 = cpu->r[6] + 0x0000002Cu;
|
|
/* 0298AEF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 0298AEF4 */ cpu->ctr = cpu->r[0];
|
|
/* 0298AEF8 */ cpu->r[4] = cpu->r[26];
|
|
/* 0298AEFC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AF00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298AF04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298AF08 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AF08 */ _t53 = _t52 & 0x00000001u;
|
|
/* 0298AF08 */ if (_t53) goto L_0298AF74; else goto L_0298AF0C;
|
|
L_0298AF0C: ; // 0x298af0c
|
|
/* 0298AF0C */ _t54 = cpu->r[31] + 0x00000000u;
|
|
/* 0298AF0C */ cpu->r[12] = rbrew_read32(cpu->mem, _t54);
|
|
/* 0298AF10 */ cpu->r[5] = 0x10150000u;
|
|
/* 0298AF14 */ _t55 = cpu->r[5] + 0xFFFFEF78u;
|
|
/* 0298AF14 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 0298AF18 */ _t56 = cpu->r[12] + 0x00000008u;
|
|
/* 0298AF18 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 0298AF1C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[0]);
|
|
/* 0298AF20 */ _t57 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298AF20 */ _t58 = _t57 & 0x00000001u;
|
|
/* 0298AF20 */ if (_t58) goto L_0298AF24; else goto L_0298AF28;
|
|
L_0298AF24: ; // 0x298af24
|
|
/* 0298AF24 */ cpu->f[31] = cpu->f[0];
|
|
L_0298AF28: ; // 0x298af28
|
|
/* 0298AF28 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298AF2C */ _t59 = cpu->r[3] + 0xFFFF9918u;
|
|
/* 0298AF2C */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
/* 0298AF30 */ Gambit_fn_02830138(cpu);
|
|
/* 0298AF34 */ cpu->r[11] = rbrew_rlwinm(cpu->r[3], 0x00000017u, 0x00000009u, 0x0000001Fu);
|
|
/* 0298AF38 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298AF3C */ cpu->r[0] = cpu->r[11] | 0x3F800000u;
|
|
/* 0298AF40 */ _t60 = cpu->r[9] + 0xFFFFEF74u;
|
|
/* 0298AF40 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 0298AF44 */ _t61 = cpu->r[1] + 0x00000010u;
|
|
/* 0298AF44 */ rbrew_write32(cpu->mem, _t61, cpu->r[0]);
|
|
/* 0298AF48 */ _t62 = cpu->r[1] + 0x00000010u;
|
|
/* 0298AF48 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 0298AF4C */ _t63 = cpu->r[31] + 0x00000000u;
|
|
/* 0298AF4C */ cpu->r[30] = rbrew_read32(cpu->mem, _t63);
|
|
/* 0298AF50 */ cpu->f[12] = cpu->f[11] - cpu->f[13];
|
|
/* 0298AF54 */ _t64 = cpu->r[30] + 0x00000010u;
|
|
/* 0298AF54 */ cpu->r[8] = rbrew_read32(cpu->mem, _t64);
|
|
/* 0298AF58 */ _t65 = cpu->r[30] + 0x00000004u;
|
|
/* 0298AF58 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 0298AF5C */ cpu->ctr = cpu->r[8];
|
|
/* 0298AF60 */ _t66 = cpu->r[30] + 0x00000008u;
|
|
/* 0298AF60 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 0298AF64 */ cpu->f[1] = cpu->f[31] * cpu->f[12];
|
|
/* 0298AF68 */ _t67 = cpu->r[30] + 0x00000014u;
|
|
/* 0298AF68 */ cpu->r[3] = rbrew_read32(cpu->mem, _t67);
|
|
/* 0298AF6C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298AF70 */ _t68 = cpu->r[30] + 0x00000000u;
|
|
/* 0298AF70 */ rbrew_write_f32(cpu->mem, _t68, cpu->f[1]);
|
|
L_0298AF74: ; // 0x298af74
|
|
/* 0298AF74 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AF78 */ /* nop */
|
|
/* 0298AF7C */ _t69 = cpu->r[1] + 0x00000070u;
|
|
/* 0298AF7C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 0298AF80 */ _t70 = cpu->r[1] + 0x00000068u;
|
|
/* 0298AF80 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t70);
|
|
/* 0298AF84 */ _t71 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298AF84 */ _t72 = _t71 & 0x00000001u;
|
|
/* 0298AF84 */ if (_t72) goto L_0298AF88; // else: addr-0 trap, fall-through
|
|
L_0298AF88: ; // 0x298af88
|
|
/* 0298AF88 */ _t73 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298AF88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 0298AF8C */ cpu->lr = cpu->r[0];
|
|
/* 0298AF90 */ cpu->r[1] = cpu->r[1] + 0x00000078u;
|
|
/* 0298AF94 */ return;
|
|
}
|
|
|
|
// fn_0298AD60 @ 0x298ad60
|
|
void Gambit_fn_0298AD60(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298AD60: ; // 0x298ad60
|
|
/* 0298AD60 */ _t0 = cpu->r[1] + 0xFFFFFF88u;
|
|
/* 0298AD60 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298AD60 */ cpu->r[1] = _t0;
|
|
/* 0298AD64 */ _t1 = cpu->r[1] + 0x00000068u;
|
|
/* 0298AD64 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298AD68 */ /* nop */
|
|
/* 0298AD6C */ _t2 = cpu->r[1] + 0x00000070u;
|
|
/* 0298AD6C */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 0298AD70 */ _t3 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298AD70 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298AD74 */ /* nop */
|
|
/* 0298AD78 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298AD7C */ cpu->r[27] = cpu->r[4];
|
|
/* 0298AD80 */ cpu->r[28] = cpu->r[5];
|
|
/* 0298AD84 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298AD88 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298AD8C */ cpu->r[26] = cpu->r[3];
|
|
/* 0298AD90 */ cpu->r[3] = 0x0000005Cu;
|
|
/* 0298AD94 */ cpu->r[29] = cpu->r[6];
|
|
/* 0298AD98 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298AD9C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298AD9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298ADA0 */ cpu->r[25] = 0x00000000u;
|
|
/* 0298ADA4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ADA4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298ADA4 */ if (_t5) goto L_0298AE10; else goto L_0298ADA8;
|
|
L_0298ADA8: ; // 0x298ada8
|
|
/* 0298ADA8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298ADAC */ Gambit_fn_02C4F040(cpu);
|
|
/* 0298ADB0 */ cpu->r[0] = 0x101B0000u;
|
|
/* 0298ADB4 */ _t6 = cpu->r[31] + 0x00000044u;
|
|
/* 0298ADB4 */ rbrew_write32(cpu->mem, _t6, cpu->r[25]);
|
|
/* 0298ADB8 */ cpu->r[0] = cpu->r[0] + 0xFFFFEF08u;
|
|
/* 0298ADBC */ _t7 = cpu->r[31] + 0x00000058u;
|
|
/* 0298ADBC */ rbrew_write32(cpu->mem, _t7, cpu->r[25]);
|
|
/* 0298ADC0 */ _t8 = cpu->r[31] + 0x00000034u;
|
|
/* 0298ADC0 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 0298ADC4 */ _t9 = cpu->r[26] + 0x00000000u;
|
|
/* 0298ADC4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298ADC8 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 0298ADCC */ _t10 = cpu->r[1] + 0x00000024u;
|
|
/* 0298ADCC */ rbrew_write32(cpu->mem, _t10, cpu->r[25]);
|
|
/* 0298ADD0 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298ADD4 */ _t11 = cpu->r[1] + 0x00000018u;
|
|
/* 0298ADD4 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 0298ADD8 */ _t12 = cpu->r[1] + 0x00000020u;
|
|
/* 0298ADD8 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
/* 0298ADDC */ cpu->r[9] = 0x00000000u;
|
|
/* 0298ADE0 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298ADE0 */ rbrew_write32(cpu->mem, _t13, cpu->r[10]);
|
|
/* 0298ADE4 */ _t14 = cpu->r[1] + 0x00000021u;
|
|
/* 0298ADE4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[9]);
|
|
/* 0298ADE8 */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 0298ADE8 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 0298ADEC */ _t16 = cpu->r[1] + 0x00000028u;
|
|
/* 0298ADEC */ rbrew_write32(cpu->mem, _t16, cpu->r[25]);
|
|
/* 0298ADF0 */ _t17 = cpu->r[1] + 0x00000022u;
|
|
/* 0298ADF0 */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[9]);
|
|
/* 0298ADF4 */ _t18 = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298ADF4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298ADF8 */ cpu->r[12] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298ADFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298AE00 */ cpu->r[10] = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298AE04 */ cpu->r[11] = cpu->r[1] + 0x00000018u;
|
|
/* 0298AE08 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AE08 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298AE08 */ if (_t20) goto L_0298AE60; else goto L_0298AE0C;
|
|
L_0298AE0C: ; // 0x298ae0c
|
|
/* 0298AE0C */ goto L_0298AE5C;
|
|
L_0298AE10: ; // 0x298ae10
|
|
/* 0298AE10 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 0298AE10 */ rbrew_write32(cpu->mem, _t21, cpu->r[25]);
|
|
/* 0298AE14 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298AE18 */ _t22 = cpu->r[26] + 0x00000000u;
|
|
/* 0298AE18 */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298AE1C */ cpu->r[31] = 0x00000000u;
|
|
/* 0298AE20 */ _t23 = cpu->r[1] + 0x00000020u;
|
|
/* 0298AE20 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[0]);
|
|
/* 0298AE24 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 0298AE28 */ _t24 = cpu->r[1] + 0x00000021u;
|
|
/* 0298AE28 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[31]);
|
|
/* 0298AE2C */ _t25 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298AE2C */ rbrew_write32(cpu->mem, _t25, cpu->r[10]);
|
|
/* 0298AE30 */ _t26 = cpu->r[1] + 0x00000018u;
|
|
/* 0298AE30 */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 0298AE34 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 0298AE34 */ rbrew_write32(cpu->mem, _t27, cpu->r[10]);
|
|
/* 0298AE38 */ _t28 = cpu->r[1] + 0x00000022u;
|
|
/* 0298AE38 */ rbrew_write8(cpu->mem, _t28, (uint8_t)cpu->r[31]);
|
|
/* 0298AE3C */ _t29 = cpu->r[1] + 0x00000028u;
|
|
/* 0298AE3C */ rbrew_write32(cpu->mem, _t29, cpu->r[25]);
|
|
/* 0298AE40 */ _t30 = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298AE40 */ cpu->r[6] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298AE44 */ cpu->r[11] = cpu->r[1] + 0x00000018u;
|
|
/* 0298AE48 */ cpu->r[12] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298AE4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 0298AE50 */ cpu->r[10] = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298AE54 */ cpu->r[9] = cpu->r[31];
|
|
/* 0298AE58 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AE58 */ _t32 = _t31 & 0x00000001u;
|
|
/* 0298AE58 */ if (_t32) goto L_0298AE60; else goto L_0298AE5C;
|
|
L_0298AE5C: ; // 0x298ae5c
|
|
/* 0298AE5C */ cpu->r[9] = cpu->r[10] + cpu->r[6];
|
|
L_0298AE60: ; // 0x298ae60
|
|
/* 0298AE60 */ _t33 = cpu->r[9] + 0x00000008u;
|
|
/* 0298AE60 */ cpu->r[10] = rbrew_read16(cpu->mem, _t33);
|
|
/* 0298AE64 */ _t34 = cpu->r[27] + 0x00000018u;
|
|
/* 0298AE64 */ cpu->r[8] = rbrew_read32(cpu->mem, _t34);
|
|
/* 0298AE68 */ _t35 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298AE68 */ rbrew_write32(cpu->mem, _t35, cpu->r[10]);
|
|
/* 0298AE6C */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 0298AE6C */ rbrew_write32(cpu->mem, _t36, cpu->r[8]);
|
|
/* 0298AE70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298AE74 */ _t37 = cpu->r[27] + 0x00000014u;
|
|
/* 0298AE74 */ cpu->r[0] = rbrew_read16(cpu->mem, _t37);
|
|
/* 0298AE78 */ _t38 = cpu->r[1] + 0x00000014u;
|
|
/* 0298AE78 */ rbrew_write32(cpu->mem, _t38, cpu->r[10]);
|
|
/* 0298AE7C */ _t39 = cpu->r[11] + 0x00000000u;
|
|
/* 0298AE7C */ rbrew_write32(cpu->mem, _t39, cpu->r[0]);
|
|
/* 0298AE80 */ _t40 = cpu->r[27] + 0x0000000Cu;
|
|
/* 0298AE80 */ cpu->r[5] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298AE84 */ _t41 = cpu->r[1] + 0x00000024u;
|
|
/* 0298AE84 */ rbrew_write32(cpu->mem, _t41, cpu->r[25]);
|
|
/* 0298AE88 */ cpu->r[10] = cpu->r[12];
|
|
/* 0298AE8C */ _t42 = cpu->r[1] + 0x00000028u;
|
|
/* 0298AE8C */ rbrew_write32(cpu->mem, _t42, cpu->r[25]);
|
|
/* 0298AE90 */ _t43 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298AE90 */ _t44 = _t43 & 0x00000001u;
|
|
/* 0298AE90 */ if (_t44) goto L_0298AE98; else goto L_0298AE94;
|
|
L_0298AE94: ; // 0x298ae94
|
|
/* 0298AE94 */ cpu->r[10] = cpu->r[1] + 0x00000008u;
|
|
L_0298AE98: ; // 0x298ae98
|
|
/* 0298AE98 */ _t45 = cpu->r[10] + 0x00000000u;
|
|
/* 0298AE98 */ cpu->r[11] = rbrew_read32(cpu->mem, _t45);
|
|
/* 0298AE9C */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298AEA0 */ _t46 = cpu->r[1] + 0x00000024u;
|
|
/* 0298AEA0 */ rbrew_write32(cpu->mem, _t46, cpu->r[25]);
|
|
/* 0298AEA4 */ cpu->r[0] = cpu->r[0] ^ 0x00000001u;
|
|
/* 0298AEA8 */ _t47 = cpu->r[12] + 0x00000000u;
|
|
/* 0298AEA8 */ rbrew_write32(cpu->mem, _t47, cpu->r[11]);
|
|
/* 0298AEAC */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 0298AEB0 */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 0298AEB0 */ rbrew_write32(cpu->mem, _t48, cpu->r[25]);
|
|
/* 0298AEB4 */ _t49 = cpu->r[1] + 0x00000021u;
|
|
/* 0298AEB4 */ rbrew_write8(cpu->mem, _t49, (uint8_t)cpu->r[0]);
|
|
/* 0298AEB8 */ Gambit_fn_02C53FC4(cpu);
|
|
/* 0298AEBC */ cpu->r[5] = cpu->r[28];
|
|
/* 0298AEC0 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298AEC4 */ cpu->r[25] = cpu->r[3];
|
|
/* 0298AEC8 */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298AECC */ cpu->r[5] = cpu->r[3];
|
|
/* 0298AED0 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AED4 */ cpu->r[6] = cpu->r[25];
|
|
/* 0298AED8 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 0298AEDC */ Gambit_fn_02C53E8C(cpu);
|
|
/* 0298AEE0 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298AEE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AEE8 */ Gambit_fn_02C54BFC(cpu);
|
|
/* 0298AEEC */ _t50 = cpu->r[31] + 0x00000034u;
|
|
/* 0298AEEC */ cpu->r[6] = rbrew_read32(cpu->mem, _t50);
|
|
/* 0298AEF0 */ _t51 = cpu->r[6] + 0x0000002Cu;
|
|
/* 0298AEF0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 0298AEF4 */ cpu->ctr = cpu->r[0];
|
|
/* 0298AEF8 */ cpu->r[4] = cpu->r[26];
|
|
/* 0298AEFC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AF00 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298AF04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298AF08 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AF08 */ _t53 = _t52 & 0x00000001u;
|
|
/* 0298AF08 */ if (_t53) goto L_0298AF74; else goto L_0298AF0C;
|
|
L_0298AF0C: ; // 0x298af0c
|
|
/* 0298AF0C */ _t54 = cpu->r[31] + 0x00000000u;
|
|
/* 0298AF0C */ cpu->r[12] = rbrew_read32(cpu->mem, _t54);
|
|
/* 0298AF10 */ cpu->r[5] = 0x10150000u;
|
|
/* 0298AF14 */ _t55 = cpu->r[5] + 0xFFFFEF78u;
|
|
/* 0298AF14 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t55);
|
|
/* 0298AF18 */ _t56 = cpu->r[12] + 0x00000008u;
|
|
/* 0298AF18 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 0298AF1C */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[0]);
|
|
/* 0298AF20 */ _t57 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298AF20 */ _t58 = _t57 & 0x00000001u;
|
|
/* 0298AF20 */ if (_t58) goto L_0298AF24; else goto L_0298AF28;
|
|
L_0298AF24: ; // 0x298af24
|
|
/* 0298AF24 */ cpu->f[31] = cpu->f[0];
|
|
L_0298AF28: ; // 0x298af28
|
|
/* 0298AF28 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298AF2C */ _t59 = cpu->r[3] + 0xFFFF9918u;
|
|
/* 0298AF2C */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
/* 0298AF30 */ Gambit_fn_02830138(cpu);
|
|
/* 0298AF34 */ cpu->r[11] = rbrew_rlwinm(cpu->r[3], 0x00000017u, 0x00000009u, 0x0000001Fu);
|
|
/* 0298AF38 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298AF3C */ cpu->r[0] = cpu->r[11] | 0x3F800000u;
|
|
/* 0298AF40 */ _t60 = cpu->r[9] + 0xFFFFEF74u;
|
|
/* 0298AF40 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 0298AF44 */ _t61 = cpu->r[1] + 0x00000010u;
|
|
/* 0298AF44 */ rbrew_write32(cpu->mem, _t61, cpu->r[0]);
|
|
/* 0298AF48 */ _t62 = cpu->r[1] + 0x00000010u;
|
|
/* 0298AF48 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 0298AF4C */ _t63 = cpu->r[31] + 0x00000000u;
|
|
/* 0298AF4C */ cpu->r[30] = rbrew_read32(cpu->mem, _t63);
|
|
/* 0298AF50 */ cpu->f[12] = cpu->f[11] - cpu->f[13];
|
|
/* 0298AF54 */ _t64 = cpu->r[30] + 0x00000010u;
|
|
/* 0298AF54 */ cpu->r[8] = rbrew_read32(cpu->mem, _t64);
|
|
/* 0298AF58 */ _t65 = cpu->r[30] + 0x00000004u;
|
|
/* 0298AF58 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 0298AF5C */ cpu->ctr = cpu->r[8];
|
|
/* 0298AF60 */ _t66 = cpu->r[30] + 0x00000008u;
|
|
/* 0298AF60 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 0298AF64 */ cpu->f[1] = cpu->f[31] * cpu->f[12];
|
|
/* 0298AF68 */ _t67 = cpu->r[30] + 0x00000014u;
|
|
/* 0298AF68 */ cpu->r[3] = rbrew_read32(cpu->mem, _t67);
|
|
/* 0298AF6C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298AF70 */ _t68 = cpu->r[30] + 0x00000000u;
|
|
/* 0298AF70 */ rbrew_write_f32(cpu->mem, _t68, cpu->f[1]);
|
|
L_0298AF74: ; // 0x298af74
|
|
/* 0298AF74 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AF78 */ /* nop */
|
|
/* 0298AF7C */ _t69 = cpu->r[1] + 0x00000070u;
|
|
/* 0298AF7C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 0298AF80 */ _t70 = cpu->r[1] + 0x00000068u;
|
|
/* 0298AF80 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t70);
|
|
/* 0298AF84 */ _t71 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298AF84 */ _t72 = _t71 & 0x00000001u;
|
|
/* 0298AF84 */ if (_t72) goto L_0298AF88; // else: addr-0 trap, fall-through
|
|
L_0298AF88: ; // 0x298af88
|
|
/* 0298AF88 */ _t73 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298AF88 */ cpu->r[0] = rbrew_read32(cpu->mem, _t73);
|
|
/* 0298AF8C */ cpu->lr = cpu->r[0];
|
|
/* 0298AF90 */ cpu->r[1] = cpu->r[1] + 0x00000078u;
|
|
/* 0298AF94 */ return;
|
|
}
|
|
|
|
// fn_0298AF98 @ 0x298af98
|
|
void Gambit_fn_0298AF98(CPUState* cpu) {
|
|
uint32_t _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_0298AF98: ; // 0x298af98
|
|
/* 0298AF98 */ cpu->r[0] = cpu->lr;
|
|
/* 0298AF9C */ _t0 = cpu->r[1] + 0xFFFFFF80u;
|
|
/* 0298AF9C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298AF9C */ cpu->r[1] = _t0;
|
|
/* 0298AFA0 */ _t1 = cpu->r[1] + 0x00000070u;
|
|
/* 0298AFA0 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298AFA4 */ /* nop */
|
|
/* 0298AFA8 */ _t2 = cpu->r[1] + 0x00000078u;
|
|
/* 0298AFA8 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 0298AFAC */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 0298AFAC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298AFB0 */ /* nop */
|
|
/* 0298AFB4 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298AFB8 */ cpu->r[27] = cpu->r[4];
|
|
/* 0298AFBC */ cpu->r[28] = cpu->r[5];
|
|
/* 0298AFC0 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298AFC4 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298AFC8 */ cpu->r[26] = cpu->r[3];
|
|
/* 0298AFCC */ cpu->r[3] = 0x00000058u;
|
|
/* 0298AFD0 */ cpu->r[29] = cpu->r[6];
|
|
/* 0298AFD4 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298AFD8 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298AFD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298AFDC */ cpu->r[25] = 0x00000000u;
|
|
/* 0298AFE0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AFE0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298AFE0 */ if (_t5) goto L_0298B044; else goto L_0298AFE4;
|
|
L_0298AFE4: ; // 0x298afe4
|
|
/* 0298AFE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AFE8 */ Gambit_fn_02C4F040(cpu);
|
|
/* 0298AFEC */ cpu->r[9] = 0x101B0000u;
|
|
/* 0298AFF0 */ _t6 = cpu->r[31] + 0x00000044u;
|
|
/* 0298AFF0 */ rbrew_write32(cpu->mem, _t6, cpu->r[25]);
|
|
/* 0298AFF4 */ cpu->r[9] = cpu->r[9] + 0xFFFFED88u;
|
|
/* 0298AFF8 */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 0298AFF8 */ rbrew_write32(cpu->mem, _t7, cpu->r[9]);
|
|
/* 0298AFFC */ _t8 = cpu->r[26] + 0x00000000u;
|
|
/* 0298AFFC */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298B000 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298B004 */ _t9 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B004 */ rbrew_write32(cpu->mem, _t9, cpu->r[25]);
|
|
/* 0298B008 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 0298B00C */ _t10 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B00C */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[0]);
|
|
/* 0298B010 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298B014 */ _t11 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B014 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 0298B018 */ _t12 = cpu->r[1] + 0x00000025u;
|
|
/* 0298B018 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
/* 0298B01C */ _t13 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B01C */ rbrew_write32(cpu->mem, _t13, cpu->r[10]);
|
|
/* 0298B020 */ _t14 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B020 */ rbrew_write32(cpu->mem, _t14, cpu->r[25]);
|
|
/* 0298B024 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B024 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 0298B028 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B028 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 0298B02C */ _t17 = cpu->r[11] + 0x00000024u;
|
|
/* 0298B02C */ cpu->r[11] = rbrew_read16(cpu->mem, _t17);
|
|
/* 0298B030 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 0298B034 */ cpu->r[7] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B038 */ cpu->r[8] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B03C */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B03C */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 0298B040 */ goto L_0298B088;
|
|
L_0298B044: ; // 0x298b044
|
|
/* 0298B044 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B044 */ rbrew_write32(cpu->mem, _t19, cpu->r[25]);
|
|
/* 0298B048 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298B04C */ _t20 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B04C */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298B050 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 0298B054 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B054 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[0]);
|
|
/* 0298B058 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298B05C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B05C */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
/* 0298B060 */ _t23 = cpu->r[1] + 0x00000025u;
|
|
/* 0298B060 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[31]);
|
|
/* 0298B064 */ _t24 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B064 */ rbrew_write32(cpu->mem, _t24, cpu->r[25]);
|
|
/* 0298B068 */ _t25 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B068 */ rbrew_write32(cpu->mem, _t25, cpu->r[10]);
|
|
/* 0298B06C */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B06C */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 0298B070 */ _t27 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B070 */ rbrew_write32(cpu->mem, _t27, cpu->r[10]);
|
|
/* 0298B074 */ _t28 = cpu->r[11] + 0x00000024u;
|
|
/* 0298B074 */ cpu->r[11] = rbrew_read16(cpu->mem, _t28);
|
|
/* 0298B078 */ cpu->r[8] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B07C */ cpu->r[7] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B080 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 0298B084 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B084 */ rbrew_write32(cpu->mem, _t29, cpu->r[11]);
|
|
L_0298B088: ; // 0x298b088
|
|
/* 0298B088 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B088 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298B08C */ _t31 = cpu->r[27] + 0x00000014u;
|
|
/* 0298B08C */ cpu->r[0] = rbrew_read16(cpu->mem, _t31);
|
|
/* 0298B090 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B090 */ rbrew_write32(cpu->mem, _t32, cpu->r[12]);
|
|
/* 0298B094 */ _t33 = cpu->r[27] + 0x00000018u;
|
|
/* 0298B094 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298B098 */ _t34 = cpu->r[6] + 0x00000000u;
|
|
/* 0298B098 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 0298B09C */ _t35 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B09C */ rbrew_write32(cpu->mem, _t35, cpu->r[12]);
|
|
/* 0298B0A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B0A4 */ _t36 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B0A4 */ rbrew_write32(cpu->mem, _t36, cpu->r[25]);
|
|
/* 0298B0A8 */ cpu->r[9] = cpu->r[7];
|
|
/* 0298B0AC */ _t37 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B0AC */ rbrew_write32(cpu->mem, _t37, cpu->r[25]);
|
|
/* 0298B0B0 */ _t38 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B0B0 */ _t39 = _t38 & 0x00000001u;
|
|
/* 0298B0B0 */ if (_t39) goto L_0298B0B8; else goto L_0298B0B4;
|
|
L_0298B0B4: ; // 0x298b0b4
|
|
/* 0298B0B4 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
L_0298B0B8: ; // 0x298b0b8
|
|
/* 0298B0B8 */ _t40 = cpu->r[9] + 0x00000000u;
|
|
/* 0298B0B8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298B0BC */ _t41 = cpu->r[27] + 0x0000001Cu;
|
|
/* 0298B0BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 0298B0C0 */ _t42 = cpu->r[7] + 0x00000000u;
|
|
/* 0298B0C0 */ rbrew_write32(cpu->mem, _t42, cpu->r[6]);
|
|
/* 0298B0C4 */ cpu->r[10] = cpu->r[8];
|
|
/* 0298B0C8 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B0C8 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 0298B0CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B0D0 */ _t44 = cpu->r[27] + 0x0000000Cu;
|
|
/* 0298B0D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 0298B0D4 */ _t45 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B0D4 */ _t46 = _t45 & 0x00000001u;
|
|
/* 0298B0D4 */ if (_t46) goto L_0298B0DC; else goto L_0298B0D8;
|
|
L_0298B0D8: ; // 0x298b0d8
|
|
/* 0298B0D8 */ cpu->r[10] = cpu->r[1] + 0x00000008u;
|
|
L_0298B0DC: ; // 0x298b0dc
|
|
/* 0298B0DC */ _t47 = cpu->r[10] + 0x00000000u;
|
|
/* 0298B0DC */ cpu->r[7] = rbrew_read32(cpu->mem, _t47);
|
|
/* 0298B0E0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B0E4 */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B0E4 */ rbrew_write32(cpu->mem, _t48, cpu->r[25]);
|
|
/* 0298B0E8 */ cpu->r[0] = cpu->r[9] ^ 0x00000001u;
|
|
/* 0298B0EC */ _t49 = cpu->r[8] + 0x00000000u;
|
|
/* 0298B0EC */ rbrew_write32(cpu->mem, _t49, cpu->r[7]);
|
|
/* 0298B0F0 */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 0298B0F4 */ _t50 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B0F4 */ rbrew_write32(cpu->mem, _t50, cpu->r[25]);
|
|
/* 0298B0F8 */ _t51 = cpu->r[1] + 0x00000025u;
|
|
/* 0298B0F8 */ rbrew_write8(cpu->mem, _t51, (uint8_t)cpu->r[0]);
|
|
/* 0298B0FC */ Gambit_fn_02C51884(cpu);
|
|
/* 0298B100 */ cpu->r[5] = cpu->r[28];
|
|
/* 0298B104 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B108 */ cpu->r[25] = cpu->r[3];
|
|
/* 0298B10C */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298B110 */ cpu->r[5] = cpu->r[3];
|
|
/* 0298B114 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B118 */ cpu->r[6] = cpu->r[25];
|
|
/* 0298B11C */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 0298B120 */ Gambit_fn_02C51750(cpu);
|
|
/* 0298B124 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298B128 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B12C */ Gambit_fn_02C520EC(cpu);
|
|
/* 0298B130 */ _t52 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B130 */ cpu->r[8] = rbrew_read32(cpu->mem, _t52);
|
|
/* 0298B134 */ _t53 = cpu->r[8] + 0x0000002Cu;
|
|
/* 0298B134 */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 0298B138 */ cpu->ctr = cpu->r[0];
|
|
/* 0298B13C */ cpu->r[4] = cpu->r[26];
|
|
/* 0298B140 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B144 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B148 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298B14C */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B14C */ _t55 = _t54 & 0x00000001u;
|
|
/* 0298B14C */ if (_t55) goto L_0298B1B8; else goto L_0298B150;
|
|
L_0298B150: ; // 0x298b150
|
|
/* 0298B150 */ _t56 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B150 */ cpu->r[5] = rbrew_read32(cpu->mem, _t56);
|
|
/* 0298B154 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298B158 */ _t57 = cpu->r[7] + 0xFFFFEF78u;
|
|
/* 0298B158 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 0298B15C */ _t58 = cpu->r[5] + 0x00000008u;
|
|
/* 0298B15C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 0298B160 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[0]);
|
|
/* 0298B164 */ _t59 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298B164 */ _t60 = _t59 & 0x00000001u;
|
|
/* 0298B164 */ if (_t60) goto L_0298B168; else goto L_0298B16C;
|
|
L_0298B168: ; // 0x298b168
|
|
/* 0298B168 */ cpu->f[31] = cpu->f[0];
|
|
L_0298B16C: ; // 0x298b16c
|
|
/* 0298B16C */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298B170 */ _t61 = cpu->r[3] + 0xFFFF9918u;
|
|
/* 0298B170 */ cpu->r[3] = rbrew_read32(cpu->mem, _t61);
|
|
/* 0298B174 */ Gambit_fn_02830138(cpu);
|
|
/* 0298B178 */ cpu->r[6] = rbrew_rlwinm(cpu->r[3], 0x00000017u, 0x00000009u, 0x0000001Fu);
|
|
/* 0298B17C */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B180 */ cpu->r[8] = cpu->r[6] | 0x3F800000u;
|
|
/* 0298B184 */ _t62 = cpu->r[12] + 0xFFFFEF74u;
|
|
/* 0298B184 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 0298B188 */ _t63 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B188 */ rbrew_write32(cpu->mem, _t63, cpu->r[8]);
|
|
/* 0298B18C */ _t64 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B18C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t64);
|
|
/* 0298B190 */ _t65 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B190 */ cpu->r[30] = rbrew_read32(cpu->mem, _t65);
|
|
/* 0298B194 */ cpu->f[11] = cpu->f[12] - cpu->f[13];
|
|
/* 0298B198 */ _t66 = cpu->r[30] + 0x00000010u;
|
|
/* 0298B198 */ cpu->r[10] = rbrew_read32(cpu->mem, _t66);
|
|
/* 0298B19C */ _t67 = cpu->r[30] + 0x00000004u;
|
|
/* 0298B19C */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 0298B1A0 */ cpu->ctr = cpu->r[10];
|
|
/* 0298B1A4 */ _t68 = cpu->r[30] + 0x00000008u;
|
|
/* 0298B1A4 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 0298B1A8 */ cpu->f[1] = cpu->f[31] * cpu->f[11];
|
|
/* 0298B1AC */ _t69 = cpu->r[30] + 0x00000014u;
|
|
/* 0298B1AC */ cpu->r[3] = rbrew_read32(cpu->mem, _t69);
|
|
/* 0298B1B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B1B4 */ _t70 = cpu->r[30] + 0x00000000u;
|
|
/* 0298B1B4 */ rbrew_write_f32(cpu->mem, _t70, cpu->f[1]);
|
|
L_0298B1B8: ; // 0x298b1b8
|
|
/* 0298B1B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B1BC */ /* nop */
|
|
/* 0298B1C0 */ _t71 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B1C0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 0298B1C4 */ _t72 = cpu->r[1] + 0x00000070u;
|
|
/* 0298B1C4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t72);
|
|
/* 0298B1C8 */ _t73 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B1C8 */ _t74 = _t73 & 0x00000001u;
|
|
/* 0298B1C8 */ if (_t74) goto L_0298B1CC; // else: addr-0 trap, fall-through
|
|
L_0298B1CC: ; // 0x298b1cc
|
|
/* 0298B1CC */ _t75 = cpu->r[1] + 0x00000084u;
|
|
/* 0298B1CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 0298B1D0 */ cpu->lr = cpu->r[0];
|
|
/* 0298B1D4 */ cpu->r[1] = cpu->r[1] + 0x00000080u;
|
|
/* 0298B1D8 */ return;
|
|
}
|
|
|
|
// fn_0298AF9C @ 0x298af9c
|
|
void Gambit_fn_0298AF9C(CPUState* cpu) {
|
|
uint32_t _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_0298AF9C: ; // 0x298af9c
|
|
/* 0298AF9C */ _t0 = cpu->r[1] + 0xFFFFFF80u;
|
|
/* 0298AF9C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298AF9C */ cpu->r[1] = _t0;
|
|
/* 0298AFA0 */ _t1 = cpu->r[1] + 0x00000070u;
|
|
/* 0298AFA0 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298AFA4 */ /* nop */
|
|
/* 0298AFA8 */ _t2 = cpu->r[1] + 0x00000078u;
|
|
/* 0298AFA8 */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 0298AFAC */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 0298AFAC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298AFB0 */ /* nop */
|
|
/* 0298AFB4 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298AFB8 */ cpu->r[27] = cpu->r[4];
|
|
/* 0298AFBC */ cpu->r[28] = cpu->r[5];
|
|
/* 0298AFC0 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298AFC4 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298AFC8 */ cpu->r[26] = cpu->r[3];
|
|
/* 0298AFCC */ cpu->r[3] = 0x00000058u;
|
|
/* 0298AFD0 */ cpu->r[29] = cpu->r[6];
|
|
/* 0298AFD4 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298AFD8 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298AFD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298AFDC */ cpu->r[25] = 0x00000000u;
|
|
/* 0298AFE0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298AFE0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298AFE0 */ if (_t5) goto L_0298B044; else goto L_0298AFE4;
|
|
L_0298AFE4: ; // 0x298afe4
|
|
/* 0298AFE4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298AFE8 */ Gambit_fn_02C4F040(cpu);
|
|
/* 0298AFEC */ cpu->r[9] = 0x101B0000u;
|
|
/* 0298AFF0 */ _t6 = cpu->r[31] + 0x00000044u;
|
|
/* 0298AFF0 */ rbrew_write32(cpu->mem, _t6, cpu->r[25]);
|
|
/* 0298AFF4 */ cpu->r[9] = cpu->r[9] + 0xFFFFED88u;
|
|
/* 0298AFF8 */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 0298AFF8 */ rbrew_write32(cpu->mem, _t7, cpu->r[9]);
|
|
/* 0298AFFC */ _t8 = cpu->r[26] + 0x00000000u;
|
|
/* 0298AFFC */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298B000 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298B004 */ _t9 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B004 */ rbrew_write32(cpu->mem, _t9, cpu->r[25]);
|
|
/* 0298B008 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 0298B00C */ _t10 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B00C */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[0]);
|
|
/* 0298B010 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298B014 */ _t11 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B014 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 0298B018 */ _t12 = cpu->r[1] + 0x00000025u;
|
|
/* 0298B018 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[0]);
|
|
/* 0298B01C */ _t13 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B01C */ rbrew_write32(cpu->mem, _t13, cpu->r[10]);
|
|
/* 0298B020 */ _t14 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B020 */ rbrew_write32(cpu->mem, _t14, cpu->r[25]);
|
|
/* 0298B024 */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B024 */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 0298B028 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B028 */ rbrew_write32(cpu->mem, _t16, cpu->r[10]);
|
|
/* 0298B02C */ _t17 = cpu->r[11] + 0x00000024u;
|
|
/* 0298B02C */ cpu->r[11] = rbrew_read16(cpu->mem, _t17);
|
|
/* 0298B030 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 0298B034 */ cpu->r[7] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B038 */ cpu->r[8] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B03C */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B03C */ rbrew_write32(cpu->mem, _t18, cpu->r[11]);
|
|
/* 0298B040 */ goto L_0298B088;
|
|
L_0298B044: ; // 0x298b044
|
|
/* 0298B044 */ _t19 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B044 */ rbrew_write32(cpu->mem, _t19, cpu->r[25]);
|
|
/* 0298B048 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298B04C */ _t20 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B04C */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298B050 */ cpu->r[10] = 0xFFFFFFFFu;
|
|
/* 0298B054 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B054 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[0]);
|
|
/* 0298B058 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298B05C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B05C */ rbrew_write32(cpu->mem, _t22, cpu->r[10]);
|
|
/* 0298B060 */ _t23 = cpu->r[1] + 0x00000025u;
|
|
/* 0298B060 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[31]);
|
|
/* 0298B064 */ _t24 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B064 */ rbrew_write32(cpu->mem, _t24, cpu->r[25]);
|
|
/* 0298B068 */ _t25 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B068 */ rbrew_write32(cpu->mem, _t25, cpu->r[10]);
|
|
/* 0298B06C */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B06C */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 0298B070 */ _t27 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B070 */ rbrew_write32(cpu->mem, _t27, cpu->r[10]);
|
|
/* 0298B074 */ _t28 = cpu->r[11] + 0x00000024u;
|
|
/* 0298B074 */ cpu->r[11] = rbrew_read16(cpu->mem, _t28);
|
|
/* 0298B078 */ cpu->r[8] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B07C */ cpu->r[7] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B080 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 0298B084 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B084 */ rbrew_write32(cpu->mem, _t29, cpu->r[11]);
|
|
L_0298B088: ; // 0x298b088
|
|
/* 0298B088 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B088 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298B08C */ _t31 = cpu->r[27] + 0x00000014u;
|
|
/* 0298B08C */ cpu->r[0] = rbrew_read16(cpu->mem, _t31);
|
|
/* 0298B090 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B090 */ rbrew_write32(cpu->mem, _t32, cpu->r[12]);
|
|
/* 0298B094 */ _t33 = cpu->r[27] + 0x00000018u;
|
|
/* 0298B094 */ cpu->r[12] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298B098 */ _t34 = cpu->r[6] + 0x00000000u;
|
|
/* 0298B098 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 0298B09C */ _t35 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B09C */ rbrew_write32(cpu->mem, _t35, cpu->r[12]);
|
|
/* 0298B0A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B0A4 */ _t36 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B0A4 */ rbrew_write32(cpu->mem, _t36, cpu->r[25]);
|
|
/* 0298B0A8 */ cpu->r[9] = cpu->r[7];
|
|
/* 0298B0AC */ _t37 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B0AC */ rbrew_write32(cpu->mem, _t37, cpu->r[25]);
|
|
/* 0298B0B0 */ _t38 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B0B0 */ _t39 = _t38 & 0x00000001u;
|
|
/* 0298B0B0 */ if (_t39) goto L_0298B0B8; else goto L_0298B0B4;
|
|
L_0298B0B4: ; // 0x298b0b4
|
|
/* 0298B0B4 */ cpu->r[9] = cpu->r[1] + 0x00000008u;
|
|
L_0298B0B8: ; // 0x298b0b8
|
|
/* 0298B0B8 */ _t40 = cpu->r[9] + 0x00000000u;
|
|
/* 0298B0B8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298B0BC */ _t41 = cpu->r[27] + 0x0000001Cu;
|
|
/* 0298B0BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 0298B0C0 */ _t42 = cpu->r[7] + 0x00000000u;
|
|
/* 0298B0C0 */ rbrew_write32(cpu->mem, _t42, cpu->r[6]);
|
|
/* 0298B0C4 */ cpu->r[10] = cpu->r[8];
|
|
/* 0298B0C8 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B0C8 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 0298B0CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B0D0 */ _t44 = cpu->r[27] + 0x0000000Cu;
|
|
/* 0298B0D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t44);
|
|
/* 0298B0D4 */ _t45 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B0D4 */ _t46 = _t45 & 0x00000001u;
|
|
/* 0298B0D4 */ if (_t46) goto L_0298B0DC; else goto L_0298B0D8;
|
|
L_0298B0D8: ; // 0x298b0d8
|
|
/* 0298B0D8 */ cpu->r[10] = cpu->r[1] + 0x00000008u;
|
|
L_0298B0DC: ; // 0x298b0dc
|
|
/* 0298B0DC */ _t47 = cpu->r[10] + 0x00000000u;
|
|
/* 0298B0DC */ cpu->r[7] = rbrew_read32(cpu->mem, _t47);
|
|
/* 0298B0E0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B0E4 */ _t48 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B0E4 */ rbrew_write32(cpu->mem, _t48, cpu->r[25]);
|
|
/* 0298B0E8 */ cpu->r[0] = cpu->r[9] ^ 0x00000001u;
|
|
/* 0298B0EC */ _t49 = cpu->r[8] + 0x00000000u;
|
|
/* 0298B0EC */ rbrew_write32(cpu->mem, _t49, cpu->r[7]);
|
|
/* 0298B0F0 */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 0298B0F4 */ _t50 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B0F4 */ rbrew_write32(cpu->mem, _t50, cpu->r[25]);
|
|
/* 0298B0F8 */ _t51 = cpu->r[1] + 0x00000025u;
|
|
/* 0298B0F8 */ rbrew_write8(cpu->mem, _t51, (uint8_t)cpu->r[0]);
|
|
/* 0298B0FC */ Gambit_fn_02C51884(cpu);
|
|
/* 0298B100 */ cpu->r[5] = cpu->r[28];
|
|
/* 0298B104 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B108 */ cpu->r[25] = cpu->r[3];
|
|
/* 0298B10C */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298B110 */ cpu->r[5] = cpu->r[3];
|
|
/* 0298B114 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B118 */ cpu->r[6] = cpu->r[25];
|
|
/* 0298B11C */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 0298B120 */ Gambit_fn_02C51750(cpu);
|
|
/* 0298B124 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298B128 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B12C */ Gambit_fn_02C520EC(cpu);
|
|
/* 0298B130 */ _t52 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B130 */ cpu->r[8] = rbrew_read32(cpu->mem, _t52);
|
|
/* 0298B134 */ _t53 = cpu->r[8] + 0x0000002Cu;
|
|
/* 0298B134 */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 0298B138 */ cpu->ctr = cpu->r[0];
|
|
/* 0298B13C */ cpu->r[4] = cpu->r[26];
|
|
/* 0298B140 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B144 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B148 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298B14C */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B14C */ _t55 = _t54 & 0x00000001u;
|
|
/* 0298B14C */ if (_t55) goto L_0298B1B8; else goto L_0298B150;
|
|
L_0298B150: ; // 0x298b150
|
|
/* 0298B150 */ _t56 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B150 */ cpu->r[5] = rbrew_read32(cpu->mem, _t56);
|
|
/* 0298B154 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298B158 */ _t57 = cpu->r[7] + 0xFFFFEF78u;
|
|
/* 0298B158 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 0298B15C */ _t58 = cpu->r[5] + 0x00000008u;
|
|
/* 0298B15C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 0298B160 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[0]);
|
|
/* 0298B164 */ _t59 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298B164 */ _t60 = _t59 & 0x00000001u;
|
|
/* 0298B164 */ if (_t60) goto L_0298B168; else goto L_0298B16C;
|
|
L_0298B168: ; // 0x298b168
|
|
/* 0298B168 */ cpu->f[31] = cpu->f[0];
|
|
L_0298B16C: ; // 0x298b16c
|
|
/* 0298B16C */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298B170 */ _t61 = cpu->r[3] + 0xFFFF9918u;
|
|
/* 0298B170 */ cpu->r[3] = rbrew_read32(cpu->mem, _t61);
|
|
/* 0298B174 */ Gambit_fn_02830138(cpu);
|
|
/* 0298B178 */ cpu->r[6] = rbrew_rlwinm(cpu->r[3], 0x00000017u, 0x00000009u, 0x0000001Fu);
|
|
/* 0298B17C */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B180 */ cpu->r[8] = cpu->r[6] | 0x3F800000u;
|
|
/* 0298B184 */ _t62 = cpu->r[12] + 0xFFFFEF74u;
|
|
/* 0298B184 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 0298B188 */ _t63 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B188 */ rbrew_write32(cpu->mem, _t63, cpu->r[8]);
|
|
/* 0298B18C */ _t64 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B18C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t64);
|
|
/* 0298B190 */ _t65 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B190 */ cpu->r[30] = rbrew_read32(cpu->mem, _t65);
|
|
/* 0298B194 */ cpu->f[11] = cpu->f[12] - cpu->f[13];
|
|
/* 0298B198 */ _t66 = cpu->r[30] + 0x00000010u;
|
|
/* 0298B198 */ cpu->r[10] = rbrew_read32(cpu->mem, _t66);
|
|
/* 0298B19C */ _t67 = cpu->r[30] + 0x00000004u;
|
|
/* 0298B19C */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 0298B1A0 */ cpu->ctr = cpu->r[10];
|
|
/* 0298B1A4 */ _t68 = cpu->r[30] + 0x00000008u;
|
|
/* 0298B1A4 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t68);
|
|
/* 0298B1A8 */ cpu->f[1] = cpu->f[31] * cpu->f[11];
|
|
/* 0298B1AC */ _t69 = cpu->r[30] + 0x00000014u;
|
|
/* 0298B1AC */ cpu->r[3] = rbrew_read32(cpu->mem, _t69);
|
|
/* 0298B1B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B1B4 */ _t70 = cpu->r[30] + 0x00000000u;
|
|
/* 0298B1B4 */ rbrew_write_f32(cpu->mem, _t70, cpu->f[1]);
|
|
L_0298B1B8: ; // 0x298b1b8
|
|
/* 0298B1B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B1BC */ /* nop */
|
|
/* 0298B1C0 */ _t71 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B1C0 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 0298B1C4 */ _t72 = cpu->r[1] + 0x00000070u;
|
|
/* 0298B1C4 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t72);
|
|
/* 0298B1C8 */ _t73 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B1C8 */ _t74 = _t73 & 0x00000001u;
|
|
/* 0298B1C8 */ if (_t74) goto L_0298B1CC; // else: addr-0 trap, fall-through
|
|
L_0298B1CC: ; // 0x298b1cc
|
|
/* 0298B1CC */ _t75 = cpu->r[1] + 0x00000084u;
|
|
/* 0298B1CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t75);
|
|
/* 0298B1D0 */ cpu->lr = cpu->r[0];
|
|
/* 0298B1D4 */ cpu->r[1] = cpu->r[1] + 0x00000080u;
|
|
/* 0298B1D8 */ return;
|
|
}
|
|
|
|
// fn_0298B1DC @ 0x298b1dc
|
|
void Gambit_fn_0298B1DC(CPUState* cpu) {
|
|
uint32_t _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_0298B1DC: ; // 0x298b1dc
|
|
/* 0298B1DC */ cpu->r[0] = cpu->lr;
|
|
/* 0298B1E0 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 0298B1E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B1E0 */ cpu->r[1] = _t0;
|
|
/* 0298B1E4 */ _t1 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B1E4 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298B1E8 */ /* nop */
|
|
/* 0298B1EC */ _t2 = cpu->r[1] + 0x00000080u;
|
|
/* 0298B1EC */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 0298B1F0 */ _t3 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298B1F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298B1F4 */ /* nop */
|
|
/* 0298B1F8 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298B1FC */ cpu->r[27] = cpu->r[4];
|
|
/* 0298B200 */ cpu->r[28] = cpu->r[5];
|
|
/* 0298B204 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B208 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298B20C */ cpu->r[26] = cpu->r[3];
|
|
/* 0298B210 */ cpu->r[3] = 0x00000060u;
|
|
/* 0298B214 */ cpu->r[29] = cpu->r[6];
|
|
/* 0298B218 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298B21C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B21C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298B220 */ cpu->r[25] = 0x00000000u;
|
|
/* 0298B224 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B224 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B224 */ if (_t5) goto L_0298B290; else goto L_0298B228;
|
|
L_0298B228: ; // 0x298b228
|
|
/* 0298B228 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B22C */ Gambit_fn_02C4F040(cpu);
|
|
/* 0298B230 */ cpu->r[10] = 0x101B0000u;
|
|
/* 0298B234 */ _t6 = cpu->r[31] + 0x00000044u;
|
|
/* 0298B234 */ rbrew_write32(cpu->mem, _t6, cpu->r[25]);
|
|
/* 0298B238 */ cpu->r[10] = cpu->r[10] + 0xFFFFEFC4u;
|
|
/* 0298B23C */ cpu->r[5] = 0x00000000u;
|
|
/* 0298B240 */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B240 */ rbrew_write32(cpu->mem, _t7, cpu->r[10]);
|
|
/* 0298B244 */ _t8 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B244 */ rbrew_write32(cpu->mem, _t8, cpu->r[25]);
|
|
/* 0298B248 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 0298B24C */ _t9 = cpu->r[1] + 0x00000029u;
|
|
/* 0298B24C */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[5]);
|
|
/* 0298B250 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 0298B254 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B254 */ rbrew_write32(cpu->mem, _t10, cpu->r[25]);
|
|
/* 0298B258 */ _t11 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B258 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 0298B25C */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B25C */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 0298B260 */ cpu->r[12] = 0x00000001u;
|
|
/* 0298B264 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B264 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 0298B268 */ _t14 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B268 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[12]);
|
|
/* 0298B26C */ _t15 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B26C */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298B270 */ _t16 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B270 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 0298B274 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B274 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 0298B278 */ _t18 = cpu->r[12] + 0x00000024u;
|
|
/* 0298B278 */ cpu->r[12] = rbrew_read16(cpu->mem, _t18);
|
|
/* 0298B27C */ cpu->r[9] = cpu->r[1] + 0x00000024u;
|
|
/* 0298B280 */ cpu->r[8] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B284 */ cpu->r[7] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B288 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B288 */ rbrew_write32(cpu->mem, _t19, cpu->r[12]);
|
|
/* 0298B28C */ goto L_0298B2DC;
|
|
L_0298B290: ; // 0x298b290
|
|
/* 0298B290 */ _t20 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B290 */ rbrew_write32(cpu->mem, _t20, cpu->r[25]);
|
|
/* 0298B294 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 0298B298 */ _t21 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B298 */ rbrew_write32(cpu->mem, _t21, cpu->r[25]);
|
|
/* 0298B29C */ _t22 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B29C */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 0298B2A0 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298B2A4 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B2A4 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 0298B2A8 */ _t24 = cpu->r[1] + 0x00000029u;
|
|
/* 0298B2A8 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[31]);
|
|
/* 0298B2AC */ cpu->r[12] = 0x00000001u;
|
|
/* 0298B2B0 */ _t25 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B2B0 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 0298B2B4 */ _t26 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B2B4 */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[12]);
|
|
/* 0298B2B8 */ _t27 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B2B8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298B2BC */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B2BC */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 0298B2C0 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 0298B2C4 */ _t29 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B2C4 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 0298B2C8 */ _t30 = cpu->r[12] + 0x00000024u;
|
|
/* 0298B2C8 */ cpu->r[12] = rbrew_read16(cpu->mem, _t30);
|
|
/* 0298B2CC */ cpu->r[7] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B2D0 */ cpu->r[8] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B2D4 */ cpu->r[9] = cpu->r[1] + 0x00000024u;
|
|
/* 0298B2D8 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B2D8 */ rbrew_write32(cpu->mem, _t31, cpu->r[12]);
|
|
L_0298B2DC: ; // 0x298b2dc
|
|
/* 0298B2DC */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B2DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298B2E0 */ _t33 = cpu->r[27] + 0x00000016u;
|
|
/* 0298B2E0 */ cpu->r[11] = rbrew_read16(cpu->mem, _t33);
|
|
/* 0298B2E4 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B2E4 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 0298B2E8 */ _t35 = cpu->r[27] + 0x00000018u;
|
|
/* 0298B2E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298B2EC */ _t36 = cpu->r[6] + 0x00000000u;
|
|
/* 0298B2EC */ rbrew_write32(cpu->mem, _t36, cpu->r[11]);
|
|
/* 0298B2F0 */ _t37 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B2F0 */ rbrew_write32(cpu->mem, _t37, cpu->r[0]);
|
|
/* 0298B2F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B2F8 */ _t38 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B2F8 */ rbrew_write32(cpu->mem, _t38, cpu->r[25]);
|
|
/* 0298B2FC */ cpu->r[12] = cpu->r[7];
|
|
/* 0298B300 */ _t39 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B300 */ rbrew_write32(cpu->mem, _t39, cpu->r[25]);
|
|
/* 0298B304 */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B304 */ _t41 = _t40 & 0x00000001u;
|
|
/* 0298B304 */ if (_t41) goto L_0298B30C; else goto L_0298B308;
|
|
L_0298B308: ; // 0x298b308
|
|
/* 0298B308 */ cpu->r[12] = cpu->r[1] + 0x00000008u;
|
|
L_0298B30C: ; // 0x298b30c
|
|
/* 0298B30C */ _t42 = cpu->r[12] + 0x00000000u;
|
|
/* 0298B30C */ cpu->r[6] = rbrew_read32(cpu->mem, _t42);
|
|
/* 0298B310 */ _t43 = cpu->r[27] + 0x0000001Cu;
|
|
/* 0298B310 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 0298B314 */ cpu->r[5] = cpu->r[8];
|
|
/* 0298B318 */ _t44 = cpu->r[7] + 0x00000000u;
|
|
/* 0298B318 */ rbrew_write32(cpu->mem, _t44, cpu->r[6]);
|
|
/* 0298B31C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B320 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B320 */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
/* 0298B324 */ _t46 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B324 */ _t47 = _t46 & 0x00000001u;
|
|
/* 0298B324 */ if (_t47) goto L_0298B32C; else goto L_0298B328;
|
|
L_0298B328: ; // 0x298b328
|
|
/* 0298B328 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
L_0298B32C: ; // 0x298b32c
|
|
/* 0298B32C */ _t48 = cpu->r[5] + 0x00000000u;
|
|
/* 0298B32C */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 0298B330 */ _t49 = cpu->r[27] + 0x00000014u;
|
|
/* 0298B330 */ cpu->r[11] = rbrew_read16(cpu->mem, _t49);
|
|
/* 0298B334 */ _t50 = cpu->r[8] + 0x00000000u;
|
|
/* 0298B334 */ rbrew_write32(cpu->mem, _t50, cpu->r[0]);
|
|
/* 0298B338 */ _t51 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B338 */ rbrew_write32(cpu->mem, _t51, cpu->r[25]);
|
|
/* 0298B33C */ _t52 = cpu->r[27] + 0x0000000Cu;
|
|
/* 0298B33C */ cpu->r[0] = rbrew_read16(cpu->mem, _t52);
|
|
/* 0298B340 */ _t53 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B340 */ rbrew_write32(cpu->mem, _t53, cpu->r[25]);
|
|
/* 0298B344 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B348 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B348 */ rbrew_write32(cpu->mem, _t54, cpu->r[11]);
|
|
/* 0298B34C */ cpu->r[0] = cpu->r[8] ^ 0x00000001u;
|
|
/* 0298B350 */ _t55 = cpu->r[9] + 0x00000000u;
|
|
/* 0298B350 */ rbrew_write32(cpu->mem, _t55, cpu->r[11]);
|
|
/* 0298B354 */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 0298B358 */ _t56 = cpu->r[1] + 0x00000029u;
|
|
/* 0298B358 */ rbrew_write8(cpu->mem, _t56, (uint8_t)cpu->r[0]);
|
|
/* 0298B35C */ Gambit_fn_02C5DEA8(cpu);
|
|
/* 0298B360 */ cpu->r[5] = cpu->r[28];
|
|
/* 0298B364 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B368 */ cpu->r[25] = cpu->r[3];
|
|
/* 0298B36C */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298B370 */ cpu->r[5] = cpu->r[3];
|
|
/* 0298B374 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 0298B378 */ cpu->r[6] = cpu->r[25];
|
|
/* 0298B37C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B380 */ Gambit_fn_02C5DD4C(cpu);
|
|
/* 0298B384 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B388 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298B38C */ Gambit_fn_02C5E5F0(cpu);
|
|
/* 0298B390 */ _t57 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B390 */ cpu->r[8] = rbrew_read32(cpu->mem, _t57);
|
|
/* 0298B394 */ _t58 = cpu->r[8] + 0x0000002Cu;
|
|
/* 0298B394 */ cpu->r[9] = rbrew_read32(cpu->mem, _t58);
|
|
/* 0298B398 */ cpu->ctr = cpu->r[9];
|
|
/* 0298B39C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B3A0 */ cpu->r[4] = cpu->r[26];
|
|
/* 0298B3A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B3A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298B3AC */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B3AC */ _t60 = _t59 & 0x00000001u;
|
|
/* 0298B3AC */ if (_t60) goto L_0298B418; else goto L_0298B3B0;
|
|
L_0298B3B0: ; // 0x298b3b0
|
|
/* 0298B3B0 */ _t61 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B3B0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t61);
|
|
/* 0298B3B4 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B3B8 */ _t62 = cpu->r[12] + 0xFFFFEF78u;
|
|
/* 0298B3B8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 0298B3BC */ _t63 = cpu->r[7] + 0x00000008u;
|
|
/* 0298B3BC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t63);
|
|
/* 0298B3C0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[13]);
|
|
/* 0298B3C4 */ _t64 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298B3C4 */ _t65 = _t64 & 0x00000001u;
|
|
/* 0298B3C4 */ if (_t65) goto L_0298B3C8; else goto L_0298B3CC;
|
|
L_0298B3C8: ; // 0x298b3c8
|
|
/* 0298B3C8 */ cpu->f[31] = cpu->f[13];
|
|
L_0298B3CC: ; // 0x298b3cc
|
|
/* 0298B3CC */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298B3D0 */ _t66 = cpu->r[3] + 0xFFFF9918u;
|
|
/* 0298B3D0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t66);
|
|
/* 0298B3D4 */ Gambit_fn_02830138(cpu);
|
|
/* 0298B3D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000017u, 0x00000009u, 0x0000001Fu);
|
|
/* 0298B3DC */ cpu->r[10] = 0x10150000u;
|
|
/* 0298B3E0 */ cpu->r[0] = cpu->r[0] | 0x3F800000u;
|
|
/* 0298B3E4 */ _t67 = cpu->r[10] + 0xFFFFEF74u;
|
|
/* 0298B3E4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 0298B3E8 */ _t68 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B3E8 */ rbrew_write32(cpu->mem, _t68, cpu->r[0]);
|
|
/* 0298B3EC */ _t69 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B3EC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 0298B3F0 */ _t70 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B3F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t70);
|
|
/* 0298B3F4 */ cpu->f[11] = cpu->f[12] - cpu->f[0];
|
|
/* 0298B3F8 */ _t71 = cpu->r[30] + 0x00000010u;
|
|
/* 0298B3F8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t71);
|
|
/* 0298B3FC */ _t72 = cpu->r[30] + 0x00000004u;
|
|
/* 0298B3FC */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 0298B400 */ cpu->ctr = cpu->r[10];
|
|
/* 0298B404 */ _t73 = cpu->r[30] + 0x00000008u;
|
|
/* 0298B404 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t73);
|
|
/* 0298B408 */ cpu->f[1] = cpu->f[31] * cpu->f[11];
|
|
/* 0298B40C */ _t74 = cpu->r[30] + 0x00000014u;
|
|
/* 0298B40C */ cpu->r[3] = rbrew_read32(cpu->mem, _t74);
|
|
/* 0298B410 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B414 */ _t75 = cpu->r[30] + 0x00000000u;
|
|
/* 0298B414 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[1]);
|
|
L_0298B418: ; // 0x298b418
|
|
/* 0298B418 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B41C */ /* nop */
|
|
/* 0298B420 */ _t76 = cpu->r[1] + 0x00000080u;
|
|
/* 0298B420 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t76);
|
|
/* 0298B424 */ _t77 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B424 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t77);
|
|
/* 0298B428 */ _t78 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B428 */ _t79 = _t78 & 0x00000001u;
|
|
/* 0298B428 */ if (_t79) goto L_0298B42C; // else: addr-0 trap, fall-through
|
|
L_0298B42C: ; // 0x298b42c
|
|
/* 0298B42C */ _t80 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298B42C */ cpu->r[0] = rbrew_read32(cpu->mem, _t80);
|
|
/* 0298B430 */ cpu->lr = cpu->r[0];
|
|
/* 0298B434 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 0298B438 */ return;
|
|
}
|
|
|
|
// fn_0298B1E0 @ 0x298b1e0
|
|
void Gambit_fn_0298B1E0(CPUState* cpu) {
|
|
uint32_t _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_0298B1E0: ; // 0x298b1e0
|
|
/* 0298B1E0 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 0298B1E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B1E0 */ cpu->r[1] = _t0;
|
|
/* 0298B1E4 */ _t1 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B1E4 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298B1E8 */ /* nop */
|
|
/* 0298B1EC */ _t2 = cpu->r[1] + 0x00000080u;
|
|
/* 0298B1EC */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 0298B1F0 */ _t3 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298B1F0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298B1F4 */ /* nop */
|
|
/* 0298B1F8 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298B1FC */ cpu->r[27] = cpu->r[4];
|
|
/* 0298B200 */ cpu->r[28] = cpu->r[5];
|
|
/* 0298B204 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B208 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298B20C */ cpu->r[26] = cpu->r[3];
|
|
/* 0298B210 */ cpu->r[3] = 0x00000060u;
|
|
/* 0298B214 */ cpu->r[29] = cpu->r[6];
|
|
/* 0298B218 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298B21C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B21C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298B220 */ cpu->r[25] = 0x00000000u;
|
|
/* 0298B224 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B224 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B224 */ if (_t5) goto L_0298B290; else goto L_0298B228;
|
|
L_0298B228: ; // 0x298b228
|
|
/* 0298B228 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B22C */ Gambit_fn_02C4F040(cpu);
|
|
/* 0298B230 */ cpu->r[10] = 0x101B0000u;
|
|
/* 0298B234 */ _t6 = cpu->r[31] + 0x00000044u;
|
|
/* 0298B234 */ rbrew_write32(cpu->mem, _t6, cpu->r[25]);
|
|
/* 0298B238 */ cpu->r[10] = cpu->r[10] + 0xFFFFEFC4u;
|
|
/* 0298B23C */ cpu->r[5] = 0x00000000u;
|
|
/* 0298B240 */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B240 */ rbrew_write32(cpu->mem, _t7, cpu->r[10]);
|
|
/* 0298B244 */ _t8 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B244 */ rbrew_write32(cpu->mem, _t8, cpu->r[25]);
|
|
/* 0298B248 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 0298B24C */ _t9 = cpu->r[1] + 0x00000029u;
|
|
/* 0298B24C */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[5]);
|
|
/* 0298B250 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 0298B254 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B254 */ rbrew_write32(cpu->mem, _t10, cpu->r[25]);
|
|
/* 0298B258 */ _t11 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B258 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 0298B25C */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B25C */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 0298B260 */ cpu->r[12] = 0x00000001u;
|
|
/* 0298B264 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B264 */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
/* 0298B268 */ _t14 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B268 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[12]);
|
|
/* 0298B26C */ _t15 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B26C */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298B270 */ _t16 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B270 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 0298B274 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B274 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 0298B278 */ _t18 = cpu->r[12] + 0x00000024u;
|
|
/* 0298B278 */ cpu->r[12] = rbrew_read16(cpu->mem, _t18);
|
|
/* 0298B27C */ cpu->r[9] = cpu->r[1] + 0x00000024u;
|
|
/* 0298B280 */ cpu->r[8] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B284 */ cpu->r[7] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B288 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B288 */ rbrew_write32(cpu->mem, _t19, cpu->r[12]);
|
|
/* 0298B28C */ goto L_0298B2DC;
|
|
L_0298B290: ; // 0x298b290
|
|
/* 0298B290 */ _t20 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B290 */ rbrew_write32(cpu->mem, _t20, cpu->r[25]);
|
|
/* 0298B294 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 0298B298 */ _t21 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B298 */ rbrew_write32(cpu->mem, _t21, cpu->r[25]);
|
|
/* 0298B29C */ _t22 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B29C */ rbrew_write32(cpu->mem, _t22, cpu->r[0]);
|
|
/* 0298B2A0 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298B2A4 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B2A4 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 0298B2A8 */ _t24 = cpu->r[1] + 0x00000029u;
|
|
/* 0298B2A8 */ rbrew_write8(cpu->mem, _t24, (uint8_t)cpu->r[31]);
|
|
/* 0298B2AC */ cpu->r[12] = 0x00000001u;
|
|
/* 0298B2B0 */ _t25 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B2B0 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
/* 0298B2B4 */ _t26 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B2B4 */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[12]);
|
|
/* 0298B2B8 */ _t27 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B2B8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298B2BC */ _t28 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B2BC */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 0298B2C0 */ cpu->r[6] = cpu->r[1] + 0x00000018u;
|
|
/* 0298B2C4 */ _t29 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B2C4 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 0298B2C8 */ _t30 = cpu->r[12] + 0x00000024u;
|
|
/* 0298B2C8 */ cpu->r[12] = rbrew_read16(cpu->mem, _t30);
|
|
/* 0298B2CC */ cpu->r[7] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B2D0 */ cpu->r[8] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B2D4 */ cpu->r[9] = cpu->r[1] + 0x00000024u;
|
|
/* 0298B2D8 */ _t31 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B2D8 */ rbrew_write32(cpu->mem, _t31, cpu->r[12]);
|
|
L_0298B2DC: ; // 0x298b2dc
|
|
/* 0298B2DC */ _t32 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B2DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298B2E0 */ _t33 = cpu->r[27] + 0x00000016u;
|
|
/* 0298B2E0 */ cpu->r[11] = rbrew_read16(cpu->mem, _t33);
|
|
/* 0298B2E4 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B2E4 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 0298B2E8 */ _t35 = cpu->r[27] + 0x00000018u;
|
|
/* 0298B2E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298B2EC */ _t36 = cpu->r[6] + 0x00000000u;
|
|
/* 0298B2EC */ rbrew_write32(cpu->mem, _t36, cpu->r[11]);
|
|
/* 0298B2F0 */ _t37 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B2F0 */ rbrew_write32(cpu->mem, _t37, cpu->r[0]);
|
|
/* 0298B2F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B2F8 */ _t38 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B2F8 */ rbrew_write32(cpu->mem, _t38, cpu->r[25]);
|
|
/* 0298B2FC */ cpu->r[12] = cpu->r[7];
|
|
/* 0298B300 */ _t39 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B300 */ rbrew_write32(cpu->mem, _t39, cpu->r[25]);
|
|
/* 0298B304 */ _t40 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B304 */ _t41 = _t40 & 0x00000001u;
|
|
/* 0298B304 */ if (_t41) goto L_0298B30C; else goto L_0298B308;
|
|
L_0298B308: ; // 0x298b308
|
|
/* 0298B308 */ cpu->r[12] = cpu->r[1] + 0x00000008u;
|
|
L_0298B30C: ; // 0x298b30c
|
|
/* 0298B30C */ _t42 = cpu->r[12] + 0x00000000u;
|
|
/* 0298B30C */ cpu->r[6] = rbrew_read32(cpu->mem, _t42);
|
|
/* 0298B310 */ _t43 = cpu->r[27] + 0x0000001Cu;
|
|
/* 0298B310 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 0298B314 */ cpu->r[5] = cpu->r[8];
|
|
/* 0298B318 */ _t44 = cpu->r[7] + 0x00000000u;
|
|
/* 0298B318 */ rbrew_write32(cpu->mem, _t44, cpu->r[6]);
|
|
/* 0298B31C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B320 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B320 */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
/* 0298B324 */ _t46 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B324 */ _t47 = _t46 & 0x00000001u;
|
|
/* 0298B324 */ if (_t47) goto L_0298B32C; else goto L_0298B328;
|
|
L_0298B328: ; // 0x298b328
|
|
/* 0298B328 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
L_0298B32C: ; // 0x298b32c
|
|
/* 0298B32C */ _t48 = cpu->r[5] + 0x00000000u;
|
|
/* 0298B32C */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 0298B330 */ _t49 = cpu->r[27] + 0x00000014u;
|
|
/* 0298B330 */ cpu->r[11] = rbrew_read16(cpu->mem, _t49);
|
|
/* 0298B334 */ _t50 = cpu->r[8] + 0x00000000u;
|
|
/* 0298B334 */ rbrew_write32(cpu->mem, _t50, cpu->r[0]);
|
|
/* 0298B338 */ _t51 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B338 */ rbrew_write32(cpu->mem, _t51, cpu->r[25]);
|
|
/* 0298B33C */ _t52 = cpu->r[27] + 0x0000000Cu;
|
|
/* 0298B33C */ cpu->r[0] = rbrew_read16(cpu->mem, _t52);
|
|
/* 0298B340 */ _t53 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B340 */ rbrew_write32(cpu->mem, _t53, cpu->r[25]);
|
|
/* 0298B344 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B348 */ _t54 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B348 */ rbrew_write32(cpu->mem, _t54, cpu->r[11]);
|
|
/* 0298B34C */ cpu->r[0] = cpu->r[8] ^ 0x00000001u;
|
|
/* 0298B350 */ _t55 = cpu->r[9] + 0x00000000u;
|
|
/* 0298B350 */ rbrew_write32(cpu->mem, _t55, cpu->r[11]);
|
|
/* 0298B354 */ cpu->r[3] = cpu->r[1] + 0x00000014u;
|
|
/* 0298B358 */ _t56 = cpu->r[1] + 0x00000029u;
|
|
/* 0298B358 */ rbrew_write8(cpu->mem, _t56, (uint8_t)cpu->r[0]);
|
|
/* 0298B35C */ Gambit_fn_02C5DEA8(cpu);
|
|
/* 0298B360 */ cpu->r[5] = cpu->r[28];
|
|
/* 0298B364 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B368 */ cpu->r[25] = cpu->r[3];
|
|
/* 0298B36C */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298B370 */ cpu->r[5] = cpu->r[3];
|
|
/* 0298B374 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 0298B378 */ cpu->r[6] = cpu->r[25];
|
|
/* 0298B37C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B380 */ Gambit_fn_02C5DD4C(cpu);
|
|
/* 0298B384 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B388 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298B38C */ Gambit_fn_02C5E5F0(cpu);
|
|
/* 0298B390 */ _t57 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B390 */ cpu->r[8] = rbrew_read32(cpu->mem, _t57);
|
|
/* 0298B394 */ _t58 = cpu->r[8] + 0x0000002Cu;
|
|
/* 0298B394 */ cpu->r[9] = rbrew_read32(cpu->mem, _t58);
|
|
/* 0298B398 */ cpu->ctr = cpu->r[9];
|
|
/* 0298B39C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B3A0 */ cpu->r[4] = cpu->r[26];
|
|
/* 0298B3A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B3A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298B3AC */ _t59 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B3AC */ _t60 = _t59 & 0x00000001u;
|
|
/* 0298B3AC */ if (_t60) goto L_0298B418; else goto L_0298B3B0;
|
|
L_0298B3B0: ; // 0x298b3b0
|
|
/* 0298B3B0 */ _t61 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B3B0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t61);
|
|
/* 0298B3B4 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B3B8 */ _t62 = cpu->r[12] + 0xFFFFEF78u;
|
|
/* 0298B3B8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 0298B3BC */ _t63 = cpu->r[7] + 0x00000008u;
|
|
/* 0298B3BC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t63);
|
|
/* 0298B3C0 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[13]);
|
|
/* 0298B3C4 */ _t64 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298B3C4 */ _t65 = _t64 & 0x00000001u;
|
|
/* 0298B3C4 */ if (_t65) goto L_0298B3C8; else goto L_0298B3CC;
|
|
L_0298B3C8: ; // 0x298b3c8
|
|
/* 0298B3C8 */ cpu->f[31] = cpu->f[13];
|
|
L_0298B3CC: ; // 0x298b3cc
|
|
/* 0298B3CC */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298B3D0 */ _t66 = cpu->r[3] + 0xFFFF9918u;
|
|
/* 0298B3D0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t66);
|
|
/* 0298B3D4 */ Gambit_fn_02830138(cpu);
|
|
/* 0298B3D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000017u, 0x00000009u, 0x0000001Fu);
|
|
/* 0298B3DC */ cpu->r[10] = 0x10150000u;
|
|
/* 0298B3E0 */ cpu->r[0] = cpu->r[0] | 0x3F800000u;
|
|
/* 0298B3E4 */ _t67 = cpu->r[10] + 0xFFFFEF74u;
|
|
/* 0298B3E4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t67);
|
|
/* 0298B3E8 */ _t68 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B3E8 */ rbrew_write32(cpu->mem, _t68, cpu->r[0]);
|
|
/* 0298B3EC */ _t69 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B3EC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 0298B3F0 */ _t70 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B3F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t70);
|
|
/* 0298B3F4 */ cpu->f[11] = cpu->f[12] - cpu->f[0];
|
|
/* 0298B3F8 */ _t71 = cpu->r[30] + 0x00000010u;
|
|
/* 0298B3F8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t71);
|
|
/* 0298B3FC */ _t72 = cpu->r[30] + 0x00000004u;
|
|
/* 0298B3FC */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 0298B400 */ cpu->ctr = cpu->r[10];
|
|
/* 0298B404 */ _t73 = cpu->r[30] + 0x00000008u;
|
|
/* 0298B404 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t73);
|
|
/* 0298B408 */ cpu->f[1] = cpu->f[31] * cpu->f[11];
|
|
/* 0298B40C */ _t74 = cpu->r[30] + 0x00000014u;
|
|
/* 0298B40C */ cpu->r[3] = rbrew_read32(cpu->mem, _t74);
|
|
/* 0298B410 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B414 */ _t75 = cpu->r[30] + 0x00000000u;
|
|
/* 0298B414 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[1]);
|
|
L_0298B418: ; // 0x298b418
|
|
/* 0298B418 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B41C */ /* nop */
|
|
/* 0298B420 */ _t76 = cpu->r[1] + 0x00000080u;
|
|
/* 0298B420 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t76);
|
|
/* 0298B424 */ _t77 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B424 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t77);
|
|
/* 0298B428 */ _t78 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B428 */ _t79 = _t78 & 0x00000001u;
|
|
/* 0298B428 */ if (_t79) goto L_0298B42C; // else: addr-0 trap, fall-through
|
|
L_0298B42C: ; // 0x298b42c
|
|
/* 0298B42C */ _t80 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298B42C */ cpu->r[0] = rbrew_read32(cpu->mem, _t80);
|
|
/* 0298B430 */ cpu->lr = cpu->r[0];
|
|
/* 0298B434 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 0298B438 */ return;
|
|
}
|
|
|
|
// fn_0298B43C @ 0x298b43c
|
|
void Gambit_fn_0298B43C(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298B43C: ; // 0x298b43c
|
|
/* 0298B43C */ cpu->r[0] = cpu->lr;
|
|
/* 0298B440 */ _t0 = cpu->r[1] + 0xFFFFFF80u;
|
|
/* 0298B440 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B440 */ cpu->r[1] = _t0;
|
|
/* 0298B444 */ _t1 = cpu->r[1] + 0x00000070u;
|
|
/* 0298B444 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298B448 */ /* nop */
|
|
/* 0298B44C */ _t2 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B44C */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 0298B450 */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 0298B450 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298B454 */ /* nop */
|
|
/* 0298B458 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298B45C */ cpu->r[27] = cpu->r[4];
|
|
/* 0298B460 */ cpu->r[28] = cpu->r[5];
|
|
/* 0298B464 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B468 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298B46C */ cpu->r[26] = cpu->r[3];
|
|
/* 0298B470 */ cpu->r[3] = 0x00000054u;
|
|
/* 0298B474 */ cpu->r[29] = cpu->r[6];
|
|
/* 0298B478 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298B47C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B47C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298B480 */ cpu->r[25] = 0x00000000u;
|
|
/* 0298B484 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B484 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B484 */ if (_t5) goto L_0298B4F8; else goto L_0298B488;
|
|
L_0298B488: ; // 0x298b488
|
|
/* 0298B488 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B48C */ Gambit_fn_02C4F040(cpu);
|
|
/* 0298B490 */ cpu->r[0] = 0x101B0000u;
|
|
/* 0298B494 */ _t6 = cpu->r[31] + 0x00000044u;
|
|
/* 0298B494 */ rbrew_write32(cpu->mem, _t6, cpu->r[25]);
|
|
/* 0298B498 */ cpu->r[0] = cpu->r[0] + 0xFFFFF008u;
|
|
/* 0298B49C */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 0298B4A0 */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B4A0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298B4A4 */ cpu->r[11] = 0x00000000u;
|
|
/* 0298B4A8 */ _t8 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B4A8 */ rbrew_write32(cpu->mem, _t8, cpu->r[5]);
|
|
/* 0298B4AC */ _t9 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B4AC */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298B4B0 */ _t10 = cpu->r[1] + 0x00000031u;
|
|
/* 0298B4B0 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[11]);
|
|
/* 0298B4B4 */ cpu->r[12] = 0x00000001u;
|
|
/* 0298B4B8 */ _t11 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B4B8 */ rbrew_write32(cpu->mem, _t11, cpu->r[5]);
|
|
/* 0298B4BC */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B4BC */ rbrew_write32(cpu->mem, _t12, cpu->r[5]);
|
|
/* 0298B4C0 */ _t13 = cpu->r[1] + 0x00000038u;
|
|
/* 0298B4C0 */ rbrew_write32(cpu->mem, _t13, cpu->r[25]);
|
|
/* 0298B4C4 */ _t14 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B4C4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[12]);
|
|
/* 0298B4C8 */ _t15 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B4C8 */ rbrew_write32(cpu->mem, _t15, cpu->r[5]);
|
|
/* 0298B4CC */ _t16 = cpu->r[1] + 0x00000034u;
|
|
/* 0298B4CC */ rbrew_write32(cpu->mem, _t16, cpu->r[25]);
|
|
/* 0298B4D0 */ _t17 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B4D0 */ rbrew_write32(cpu->mem, _t17, cpu->r[5]);
|
|
/* 0298B4D4 */ _t18 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298B4D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298B4D8 */ cpu->r[10] = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B4DC */ cpu->r[9] = cpu->r[1] + 0x00000028u;
|
|
/* 0298B4E0 */ cpu->r[8] = cpu->r[1] + 0x00000024u;
|
|
/* 0298B4E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B4E8 */ cpu->r[6] = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298B4EC */ cpu->r[7] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B4F0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B4F0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298B4F0 */ if (_t20) goto L_0298B554; else goto L_0298B4F4;
|
|
L_0298B4F4: ; // 0x298b4f4
|
|
/* 0298B4F4 */ goto L_0298B550;
|
|
L_0298B4F8: ; // 0x298b4f8
|
|
/* 0298B4F8 */ _t21 = cpu->r[1] + 0x00000034u;
|
|
/* 0298B4F8 */ rbrew_write32(cpu->mem, _t21, cpu->r[25]);
|
|
/* 0298B4FC */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 0298B500 */ _t22 = cpu->r[1] + 0x00000038u;
|
|
/* 0298B500 */ rbrew_write32(cpu->mem, _t22, cpu->r[25]);
|
|
/* 0298B504 */ _t23 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B504 */ rbrew_write32(cpu->mem, _t23, cpu->r[5]);
|
|
/* 0298B508 */ _t24 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B508 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298B50C */ cpu->r[12] = 0x00000001u;
|
|
/* 0298B510 */ _t25 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B510 */ rbrew_write32(cpu->mem, _t25, cpu->r[5]);
|
|
/* 0298B514 */ _t26 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B514 */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[12]);
|
|
/* 0298B518 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298B51C */ _t27 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B51C */ rbrew_write32(cpu->mem, _t27, cpu->r[5]);
|
|
/* 0298B520 */ cpu->r[10] = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B524 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B524 */ rbrew_write32(cpu->mem, _t28, cpu->r[5]);
|
|
/* 0298B528 */ _t29 = cpu->r[1] + 0x00000031u;
|
|
/* 0298B528 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[31]);
|
|
/* 0298B52C */ _t30 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B52C */ rbrew_write32(cpu->mem, _t30, cpu->r[5]);
|
|
/* 0298B530 */ _t31 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298B530 */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298B534 */ cpu->r[7] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B538 */ cpu->r[8] = cpu->r[1] + 0x00000024u;
|
|
/* 0298B53C */ cpu->r[9] = cpu->r[1] + 0x00000028u;
|
|
/* 0298B540 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B544 */ cpu->r[6] = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298B548 */ cpu->r[11] = cpu->r[31];
|
|
/* 0298B54C */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B54C */ _t33 = _t32 & 0x00000001u;
|
|
/* 0298B54C */ if (_t33) goto L_0298B554; else goto L_0298B550;
|
|
L_0298B550: ; // 0x298b550
|
|
/* 0298B550 */ cpu->r[11] = cpu->r[6] + cpu->r[12];
|
|
L_0298B554: ; // 0x298b554
|
|
/* 0298B554 */ _t34 = cpu->r[11] + 0x00000008u;
|
|
/* 0298B554 */ cpu->r[11] = rbrew_read16(cpu->mem, _t34);
|
|
/* 0298B558 */ _t35 = cpu->r[27] + 0x0000000Cu;
|
|
/* 0298B558 */ cpu->r[5] = rbrew_read16(cpu->mem, _t35);
|
|
/* 0298B55C */ _t36 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B55C */ rbrew_write32(cpu->mem, _t36, cpu->r[11]);
|
|
/* 0298B560 */ _t37 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B560 */ rbrew_write32(cpu->mem, _t37, cpu->r[11]);
|
|
/* 0298B564 */ _t38 = cpu->r[4] + 0x00000024u;
|
|
/* 0298B564 */ cpu->r[11] = rbrew_read16(cpu->mem, _t38);
|
|
/* 0298B568 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 0298B568 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B56C */ _t39 = cpu->r[27] + 0x00000014u;
|
|
/* 0298B56C */ cpu->r[0] = rbrew_read16(cpu->mem, _t39);
|
|
/* 0298B570 */ _t40 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B570 */ rbrew_write32(cpu->mem, _t40, cpu->r[11]);
|
|
/* 0298B574 */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 0298B574 */ rbrew_write32(cpu->mem, _t41, cpu->r[25]);
|
|
/* 0298B578 */ _t42 = cpu->r[7] + 0x00000000u;
|
|
/* 0298B578 */ rbrew_write32(cpu->mem, _t42, cpu->r[11]);
|
|
/* 0298B57C */ _t43 = cpu->r[1] + 0x00000038u;
|
|
/* 0298B57C */ rbrew_write32(cpu->mem, _t43, cpu->r[25]);
|
|
/* 0298B580 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B580 */ _t45 = _t44 & 0x00000001u;
|
|
/* 0298B580 */ if (_t45) goto L_0298B584; else goto L_0298B5AC;
|
|
L_0298B584: ; // 0x298b584
|
|
/* 0298B584 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B588 */ _t46 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B588 */ rbrew_write32(cpu->mem, _t46, cpu->r[0]);
|
|
/* 0298B58C */ cpu->r[11] = cpu->r[8];
|
|
/* 0298B590 */ _t47 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B590 */ _t48 = _t47 & 0x00000001u;
|
|
/* 0298B590 */ if (_t48) goto L_0298B598; else goto L_0298B594;
|
|
L_0298B594: ; // 0x298b594
|
|
/* 0298B594 */ cpu->r[11] = cpu->r[1] + 0x00000010u;
|
|
L_0298B598: ; // 0x298b598
|
|
/* 0298B598 */ _t49 = cpu->r[11] + 0x00000000u;
|
|
/* 0298B598 */ cpu->r[7] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298B59C */ _t50 = cpu->r[8] + 0x00000000u;
|
|
/* 0298B59C */ rbrew_write32(cpu->mem, _t50, cpu->r[7]);
|
|
/* 0298B5A0 */ _t51 = cpu->r[27] + 0x00000016u;
|
|
/* 0298B5A0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t51);
|
|
/* 0298B5A4 */ _t52 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B5A4 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
/* 0298B5A8 */ goto L_0298B5D0;
|
|
L_0298B5AC: ; // 0x298b5ac
|
|
/* 0298B5AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B5B0 */ _t53 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B5B0 */ rbrew_write32(cpu->mem, _t53, cpu->r[0]);
|
|
/* 0298B5B4 */ cpu->r[12] = cpu->r[9];
|
|
/* 0298B5B8 */ _t54 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B5B8 */ _t55 = _t54 & 0x00000001u;
|
|
/* 0298B5B8 */ if (_t55) goto L_0298B5C0; else goto L_0298B5BC;
|
|
L_0298B5BC: ; // 0x298b5bc
|
|
/* 0298B5BC */ cpu->r[12] = cpu->r[1] + 0x00000014u;
|
|
L_0298B5C0: ; // 0x298b5c0
|
|
/* 0298B5C0 */ _t56 = cpu->r[12] + 0x00000000u;
|
|
/* 0298B5C0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t56);
|
|
/* 0298B5C4 */ _t57 = cpu->r[9] + 0x00000000u;
|
|
/* 0298B5C4 */ rbrew_write32(cpu->mem, _t57, cpu->r[7]);
|
|
/* 0298B5C8 */ _t58 = cpu->r[27] + 0x00000016u;
|
|
/* 0298B5C8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t58);
|
|
/* 0298B5CC */ _t59 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B5CC */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
L_0298B5D0: ; // 0x298b5d0
|
|
/* 0298B5D0 */ _t60 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B5D0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t60);
|
|
/* 0298B5D4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B5D8 */ _t61 = cpu->r[1] + 0x00000038u;
|
|
/* 0298B5D8 */ rbrew_write32(cpu->mem, _t61, cpu->r[25]);
|
|
/* 0298B5DC */ cpu->r[11] = cpu->r[0] ^ 0x00000001u;
|
|
/* 0298B5E0 */ _t62 = cpu->r[10] + 0x00000000u;
|
|
/* 0298B5E0 */ rbrew_write32(cpu->mem, _t62, cpu->r[9]);
|
|
/* 0298B5E4 */ cpu->r[3] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B5E8 */ _t63 = cpu->r[1] + 0x00000034u;
|
|
/* 0298B5E8 */ rbrew_write32(cpu->mem, _t63, cpu->r[25]);
|
|
/* 0298B5EC */ _t64 = cpu->r[1] + 0x00000031u;
|
|
/* 0298B5EC */ rbrew_write8(cpu->mem, _t64, (uint8_t)cpu->r[11]);
|
|
/* 0298B5F0 */ Gambit_fn_02C5EA2C(cpu);
|
|
/* 0298B5F4 */ cpu->r[5] = cpu->r[28];
|
|
/* 0298B5F8 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B5FC */ cpu->r[25] = cpu->r[3];
|
|
/* 0298B600 */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298B604 */ cpu->r[5] = cpu->r[3];
|
|
/* 0298B608 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B60C */ cpu->r[6] = cpu->r[25];
|
|
/* 0298B610 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B614 */ Gambit_fn_02C5E89C(cpu);
|
|
/* 0298B618 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298B61C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B620 */ Gambit_fn_02C5EF58(cpu);
|
|
/* 0298B624 */ _t65 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B624 */ cpu->r[8] = rbrew_read32(cpu->mem, _t65);
|
|
/* 0298B628 */ _t66 = cpu->r[8] + 0x0000002Cu;
|
|
/* 0298B628 */ cpu->r[9] = rbrew_read32(cpu->mem, _t66);
|
|
/* 0298B62C */ cpu->ctr = cpu->r[9];
|
|
/* 0298B630 */ cpu->r[4] = cpu->r[26];
|
|
/* 0298B634 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B638 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B63C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298B640 */ _t67 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B640 */ _t68 = _t67 & 0x00000001u;
|
|
/* 0298B640 */ if (_t68) goto L_0298B6AC; else goto L_0298B644;
|
|
L_0298B644: ; // 0x298b644
|
|
/* 0298B644 */ _t69 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B644 */ cpu->r[7] = rbrew_read32(cpu->mem, _t69);
|
|
/* 0298B648 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B64C */ _t70 = cpu->r[12] + 0xFFFFEF78u;
|
|
/* 0298B64C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 0298B650 */ _t71 = cpu->r[7] + 0x00000008u;
|
|
/* 0298B650 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 0298B654 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[13]);
|
|
/* 0298B658 */ _t72 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298B658 */ _t73 = _t72 & 0x00000001u;
|
|
/* 0298B658 */ if (_t73) goto L_0298B65C; else goto L_0298B660;
|
|
L_0298B65C: ; // 0x298b65c
|
|
/* 0298B65C */ cpu->f[31] = cpu->f[13];
|
|
L_0298B660: ; // 0x298b660
|
|
/* 0298B660 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298B664 */ _t74 = cpu->r[3] + 0xFFFF9918u;
|
|
/* 0298B664 */ cpu->r[3] = rbrew_read32(cpu->mem, _t74);
|
|
/* 0298B668 */ Gambit_fn_02830138(cpu);
|
|
/* 0298B66C */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000017u, 0x00000009u, 0x0000001Fu);
|
|
/* 0298B670 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298B674 */ cpu->r[5] = cpu->r[0] | 0x3F800000u;
|
|
/* 0298B678 */ _t75 = cpu->r[10] + 0xFFFFEF74u;
|
|
/* 0298B678 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 0298B67C */ _t76 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B67C */ rbrew_write32(cpu->mem, _t76, cpu->r[5]);
|
|
/* 0298B680 */ _t77 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B680 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t77);
|
|
/* 0298B684 */ _t78 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B684 */ cpu->r[30] = rbrew_read32(cpu->mem, _t78);
|
|
/* 0298B688 */ cpu->f[12] = cpu->f[11] - cpu->f[0];
|
|
/* 0298B68C */ _t79 = cpu->r[30] + 0x00000010u;
|
|
/* 0298B68C */ cpu->r[10] = rbrew_read32(cpu->mem, _t79);
|
|
/* 0298B690 */ _t80 = cpu->r[30] + 0x00000004u;
|
|
/* 0298B690 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t80);
|
|
/* 0298B694 */ cpu->ctr = cpu->r[10];
|
|
/* 0298B698 */ _t81 = cpu->r[30] + 0x00000008u;
|
|
/* 0298B698 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 0298B69C */ cpu->f[1] = cpu->f[31] * cpu->f[12];
|
|
/* 0298B6A0 */ _t82 = cpu->r[30] + 0x00000014u;
|
|
/* 0298B6A0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t82);
|
|
/* 0298B6A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B6A8 */ _t83 = cpu->r[30] + 0x00000000u;
|
|
/* 0298B6A8 */ rbrew_write_f32(cpu->mem, _t83, cpu->f[1]);
|
|
L_0298B6AC: ; // 0x298b6ac
|
|
/* 0298B6AC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B6B0 */ /* nop */
|
|
/* 0298B6B4 */ _t84 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B6B4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t84);
|
|
/* 0298B6B8 */ _t85 = cpu->r[1] + 0x00000070u;
|
|
/* 0298B6B8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t85);
|
|
/* 0298B6BC */ _t86 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B6BC */ _t87 = _t86 & 0x00000001u;
|
|
/* 0298B6BC */ if (_t87) goto L_0298B6C0; // else: addr-0 trap, fall-through
|
|
L_0298B6C0: ; // 0x298b6c0
|
|
/* 0298B6C0 */ _t88 = cpu->r[1] + 0x00000084u;
|
|
/* 0298B6C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t88);
|
|
/* 0298B6C4 */ cpu->lr = cpu->r[0];
|
|
/* 0298B6C8 */ cpu->r[1] = cpu->r[1] + 0x00000080u;
|
|
/* 0298B6CC */ return;
|
|
}
|
|
|
|
// fn_0298B440 @ 0x298b440
|
|
void Gambit_fn_0298B440(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298B440: ; // 0x298b440
|
|
/* 0298B440 */ _t0 = cpu->r[1] + 0xFFFFFF80u;
|
|
/* 0298B440 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B440 */ cpu->r[1] = _t0;
|
|
/* 0298B444 */ _t1 = cpu->r[1] + 0x00000070u;
|
|
/* 0298B444 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298B448 */ /* nop */
|
|
/* 0298B44C */ _t2 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B44C */ rbrew_write_f32(cpu->mem, _t2, cpu->f[31]);
|
|
/* 0298B450 */ _t3 = cpu->r[1] + 0x00000084u;
|
|
/* 0298B450 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298B454 */ /* nop */
|
|
/* 0298B458 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298B45C */ cpu->r[27] = cpu->r[4];
|
|
/* 0298B460 */ cpu->r[28] = cpu->r[5];
|
|
/* 0298B464 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B468 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298B46C */ cpu->r[26] = cpu->r[3];
|
|
/* 0298B470 */ cpu->r[3] = 0x00000054u;
|
|
/* 0298B474 */ cpu->r[29] = cpu->r[6];
|
|
/* 0298B478 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298B47C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B47C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298B480 */ cpu->r[25] = 0x00000000u;
|
|
/* 0298B484 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B484 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B484 */ if (_t5) goto L_0298B4F8; else goto L_0298B488;
|
|
L_0298B488: ; // 0x298b488
|
|
/* 0298B488 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B48C */ Gambit_fn_02C4F040(cpu);
|
|
/* 0298B490 */ cpu->r[0] = 0x101B0000u;
|
|
/* 0298B494 */ _t6 = cpu->r[31] + 0x00000044u;
|
|
/* 0298B494 */ rbrew_write32(cpu->mem, _t6, cpu->r[25]);
|
|
/* 0298B498 */ cpu->r[0] = cpu->r[0] + 0xFFFFF008u;
|
|
/* 0298B49C */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 0298B4A0 */ _t7 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B4A0 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298B4A4 */ cpu->r[11] = 0x00000000u;
|
|
/* 0298B4A8 */ _t8 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B4A8 */ rbrew_write32(cpu->mem, _t8, cpu->r[5]);
|
|
/* 0298B4AC */ _t9 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B4AC */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298B4B0 */ _t10 = cpu->r[1] + 0x00000031u;
|
|
/* 0298B4B0 */ rbrew_write8(cpu->mem, _t10, (uint8_t)cpu->r[11]);
|
|
/* 0298B4B4 */ cpu->r[12] = 0x00000001u;
|
|
/* 0298B4B8 */ _t11 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B4B8 */ rbrew_write32(cpu->mem, _t11, cpu->r[5]);
|
|
/* 0298B4BC */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B4BC */ rbrew_write32(cpu->mem, _t12, cpu->r[5]);
|
|
/* 0298B4C0 */ _t13 = cpu->r[1] + 0x00000038u;
|
|
/* 0298B4C0 */ rbrew_write32(cpu->mem, _t13, cpu->r[25]);
|
|
/* 0298B4C4 */ _t14 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B4C4 */ rbrew_write8(cpu->mem, _t14, (uint8_t)cpu->r[12]);
|
|
/* 0298B4C8 */ _t15 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B4C8 */ rbrew_write32(cpu->mem, _t15, cpu->r[5]);
|
|
/* 0298B4CC */ _t16 = cpu->r[1] + 0x00000034u;
|
|
/* 0298B4CC */ rbrew_write32(cpu->mem, _t16, cpu->r[25]);
|
|
/* 0298B4D0 */ _t17 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B4D0 */ rbrew_write32(cpu->mem, _t17, cpu->r[5]);
|
|
/* 0298B4D4 */ _t18 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298B4D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298B4D8 */ cpu->r[10] = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B4DC */ cpu->r[9] = cpu->r[1] + 0x00000028u;
|
|
/* 0298B4E0 */ cpu->r[8] = cpu->r[1] + 0x00000024u;
|
|
/* 0298B4E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B4E8 */ cpu->r[6] = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298B4EC */ cpu->r[7] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B4F0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B4F0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298B4F0 */ if (_t20) goto L_0298B554; else goto L_0298B4F4;
|
|
L_0298B4F4: ; // 0x298b4f4
|
|
/* 0298B4F4 */ goto L_0298B550;
|
|
L_0298B4F8: ; // 0x298b4f8
|
|
/* 0298B4F8 */ _t21 = cpu->r[1] + 0x00000034u;
|
|
/* 0298B4F8 */ rbrew_write32(cpu->mem, _t21, cpu->r[25]);
|
|
/* 0298B4FC */ cpu->r[5] = 0xFFFFFFFFu;
|
|
/* 0298B500 */ _t22 = cpu->r[1] + 0x00000038u;
|
|
/* 0298B500 */ rbrew_write32(cpu->mem, _t22, cpu->r[25]);
|
|
/* 0298B504 */ _t23 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B504 */ rbrew_write32(cpu->mem, _t23, cpu->r[5]);
|
|
/* 0298B508 */ _t24 = cpu->r[26] + 0x00000000u;
|
|
/* 0298B508 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298B50C */ cpu->r[12] = 0x00000001u;
|
|
/* 0298B510 */ _t25 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B510 */ rbrew_write32(cpu->mem, _t25, cpu->r[5]);
|
|
/* 0298B514 */ _t26 = cpu->r[1] + 0x00000030u;
|
|
/* 0298B514 */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[12]);
|
|
/* 0298B518 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298B51C */ _t27 = cpu->r[1] + 0x00000020u;
|
|
/* 0298B51C */ rbrew_write32(cpu->mem, _t27, cpu->r[5]);
|
|
/* 0298B520 */ cpu->r[10] = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298B524 */ _t28 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B524 */ rbrew_write32(cpu->mem, _t28, cpu->r[5]);
|
|
/* 0298B528 */ _t29 = cpu->r[1] + 0x00000031u;
|
|
/* 0298B528 */ rbrew_write8(cpu->mem, _t29, (uint8_t)cpu->r[31]);
|
|
/* 0298B52C */ _t30 = cpu->r[1] + 0x00000028u;
|
|
/* 0298B52C */ rbrew_write32(cpu->mem, _t30, cpu->r[5]);
|
|
/* 0298B530 */ _t31 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298B530 */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298B534 */ cpu->r[7] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B538 */ cpu->r[8] = cpu->r[1] + 0x00000024u;
|
|
/* 0298B53C */ cpu->r[9] = cpu->r[1] + 0x00000028u;
|
|
/* 0298B540 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B544 */ cpu->r[6] = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298B548 */ cpu->r[11] = cpu->r[31];
|
|
/* 0298B54C */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B54C */ _t33 = _t32 & 0x00000001u;
|
|
/* 0298B54C */ if (_t33) goto L_0298B554; else goto L_0298B550;
|
|
L_0298B550: ; // 0x298b550
|
|
/* 0298B550 */ cpu->r[11] = cpu->r[6] + cpu->r[12];
|
|
L_0298B554: ; // 0x298b554
|
|
/* 0298B554 */ _t34 = cpu->r[11] + 0x00000008u;
|
|
/* 0298B554 */ cpu->r[11] = rbrew_read16(cpu->mem, _t34);
|
|
/* 0298B558 */ _t35 = cpu->r[27] + 0x0000000Cu;
|
|
/* 0298B558 */ cpu->r[5] = rbrew_read16(cpu->mem, _t35);
|
|
/* 0298B55C */ _t36 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B55C */ rbrew_write32(cpu->mem, _t36, cpu->r[11]);
|
|
/* 0298B560 */ _t37 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B560 */ rbrew_write32(cpu->mem, _t37, cpu->r[11]);
|
|
/* 0298B564 */ _t38 = cpu->r[4] + 0x00000024u;
|
|
/* 0298B564 */ cpu->r[11] = rbrew_read16(cpu->mem, _t38);
|
|
/* 0298B568 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x00000017u, 0x00000017u);
|
|
/* 0298B568 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B56C */ _t39 = cpu->r[27] + 0x00000014u;
|
|
/* 0298B56C */ cpu->r[0] = rbrew_read16(cpu->mem, _t39);
|
|
/* 0298B570 */ _t40 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B570 */ rbrew_write32(cpu->mem, _t40, cpu->r[11]);
|
|
/* 0298B574 */ _t41 = cpu->r[1] + 0x00000034u;
|
|
/* 0298B574 */ rbrew_write32(cpu->mem, _t41, cpu->r[25]);
|
|
/* 0298B578 */ _t42 = cpu->r[7] + 0x00000000u;
|
|
/* 0298B578 */ rbrew_write32(cpu->mem, _t42, cpu->r[11]);
|
|
/* 0298B57C */ _t43 = cpu->r[1] + 0x00000038u;
|
|
/* 0298B57C */ rbrew_write32(cpu->mem, _t43, cpu->r[25]);
|
|
/* 0298B580 */ _t44 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B580 */ _t45 = _t44 & 0x00000001u;
|
|
/* 0298B580 */ if (_t45) goto L_0298B584; else goto L_0298B5AC;
|
|
L_0298B584: ; // 0x298b584
|
|
/* 0298B584 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B588 */ _t46 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B588 */ rbrew_write32(cpu->mem, _t46, cpu->r[0]);
|
|
/* 0298B58C */ cpu->r[11] = cpu->r[8];
|
|
/* 0298B590 */ _t47 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B590 */ _t48 = _t47 & 0x00000001u;
|
|
/* 0298B590 */ if (_t48) goto L_0298B598; else goto L_0298B594;
|
|
L_0298B594: ; // 0x298b594
|
|
/* 0298B594 */ cpu->r[11] = cpu->r[1] + 0x00000010u;
|
|
L_0298B598: ; // 0x298b598
|
|
/* 0298B598 */ _t49 = cpu->r[11] + 0x00000000u;
|
|
/* 0298B598 */ cpu->r[7] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298B59C */ _t50 = cpu->r[8] + 0x00000000u;
|
|
/* 0298B59C */ rbrew_write32(cpu->mem, _t50, cpu->r[7]);
|
|
/* 0298B5A0 */ _t51 = cpu->r[27] + 0x00000016u;
|
|
/* 0298B5A0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t51);
|
|
/* 0298B5A4 */ _t52 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B5A4 */ rbrew_write32(cpu->mem, _t52, cpu->r[0]);
|
|
/* 0298B5A8 */ goto L_0298B5D0;
|
|
L_0298B5AC: ; // 0x298b5ac
|
|
/* 0298B5AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B5B0 */ _t53 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B5B0 */ rbrew_write32(cpu->mem, _t53, cpu->r[0]);
|
|
/* 0298B5B4 */ cpu->r[12] = cpu->r[9];
|
|
/* 0298B5B8 */ _t54 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B5B8 */ _t55 = _t54 & 0x00000001u;
|
|
/* 0298B5B8 */ if (_t55) goto L_0298B5C0; else goto L_0298B5BC;
|
|
L_0298B5BC: ; // 0x298b5bc
|
|
/* 0298B5BC */ cpu->r[12] = cpu->r[1] + 0x00000014u;
|
|
L_0298B5C0: ; // 0x298b5c0
|
|
/* 0298B5C0 */ _t56 = cpu->r[12] + 0x00000000u;
|
|
/* 0298B5C0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t56);
|
|
/* 0298B5C4 */ _t57 = cpu->r[9] + 0x00000000u;
|
|
/* 0298B5C4 */ rbrew_write32(cpu->mem, _t57, cpu->r[7]);
|
|
/* 0298B5C8 */ _t58 = cpu->r[27] + 0x00000016u;
|
|
/* 0298B5C8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t58);
|
|
/* 0298B5CC */ _t59 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B5CC */ rbrew_write32(cpu->mem, _t59, cpu->r[0]);
|
|
L_0298B5D0: ; // 0x298b5d0
|
|
/* 0298B5D0 */ _t60 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B5D0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t60);
|
|
/* 0298B5D4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[5], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B5D8 */ _t61 = cpu->r[1] + 0x00000038u;
|
|
/* 0298B5D8 */ rbrew_write32(cpu->mem, _t61, cpu->r[25]);
|
|
/* 0298B5DC */ cpu->r[11] = cpu->r[0] ^ 0x00000001u;
|
|
/* 0298B5E0 */ _t62 = cpu->r[10] + 0x00000000u;
|
|
/* 0298B5E0 */ rbrew_write32(cpu->mem, _t62, cpu->r[9]);
|
|
/* 0298B5E4 */ cpu->r[3] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B5E8 */ _t63 = cpu->r[1] + 0x00000034u;
|
|
/* 0298B5E8 */ rbrew_write32(cpu->mem, _t63, cpu->r[25]);
|
|
/* 0298B5EC */ _t64 = cpu->r[1] + 0x00000031u;
|
|
/* 0298B5EC */ rbrew_write8(cpu->mem, _t64, (uint8_t)cpu->r[11]);
|
|
/* 0298B5F0 */ Gambit_fn_02C5EA2C(cpu);
|
|
/* 0298B5F4 */ cpu->r[5] = cpu->r[28];
|
|
/* 0298B5F8 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298B5FC */ cpu->r[25] = cpu->r[3];
|
|
/* 0298B600 */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298B604 */ cpu->r[5] = cpu->r[3];
|
|
/* 0298B608 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B60C */ cpu->r[6] = cpu->r[25];
|
|
/* 0298B610 */ cpu->r[4] = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B614 */ Gambit_fn_02C5E89C(cpu);
|
|
/* 0298B618 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298B61C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B620 */ Gambit_fn_02C5EF58(cpu);
|
|
/* 0298B624 */ _t65 = cpu->r[31] + 0x00000034u;
|
|
/* 0298B624 */ cpu->r[8] = rbrew_read32(cpu->mem, _t65);
|
|
/* 0298B628 */ _t66 = cpu->r[8] + 0x0000002Cu;
|
|
/* 0298B628 */ cpu->r[9] = rbrew_read32(cpu->mem, _t66);
|
|
/* 0298B62C */ cpu->ctr = cpu->r[9];
|
|
/* 0298B630 */ cpu->r[4] = cpu->r[26];
|
|
/* 0298B634 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B638 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B63C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298B640 */ _t67 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B640 */ _t68 = _t67 & 0x00000001u;
|
|
/* 0298B640 */ if (_t68) goto L_0298B6AC; else goto L_0298B644;
|
|
L_0298B644: ; // 0x298b644
|
|
/* 0298B644 */ _t69 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B644 */ cpu->r[7] = rbrew_read32(cpu->mem, _t69);
|
|
/* 0298B648 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B64C */ _t70 = cpu->r[12] + 0xFFFFEF78u;
|
|
/* 0298B64C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 0298B650 */ _t71 = cpu->r[7] + 0x00000008u;
|
|
/* 0298B650 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t71);
|
|
/* 0298B654 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[31], cpu->f[13]);
|
|
/* 0298B658 */ _t72 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298B658 */ _t73 = _t72 & 0x00000001u;
|
|
/* 0298B658 */ if (_t73) goto L_0298B65C; else goto L_0298B660;
|
|
L_0298B65C: ; // 0x298b65c
|
|
/* 0298B65C */ cpu->f[31] = cpu->f[13];
|
|
L_0298B660: ; // 0x298b660
|
|
/* 0298B660 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298B664 */ _t74 = cpu->r[3] + 0xFFFF9918u;
|
|
/* 0298B664 */ cpu->r[3] = rbrew_read32(cpu->mem, _t74);
|
|
/* 0298B668 */ Gambit_fn_02830138(cpu);
|
|
/* 0298B66C */ cpu->r[0] = rbrew_rlwinm(cpu->r[3], 0x00000017u, 0x00000009u, 0x0000001Fu);
|
|
/* 0298B670 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298B674 */ cpu->r[5] = cpu->r[0] | 0x3F800000u;
|
|
/* 0298B678 */ _t75 = cpu->r[10] + 0xFFFFEF74u;
|
|
/* 0298B678 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t75);
|
|
/* 0298B67C */ _t76 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B67C */ rbrew_write32(cpu->mem, _t76, cpu->r[5]);
|
|
/* 0298B680 */ _t77 = cpu->r[1] + 0x00000018u;
|
|
/* 0298B680 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t77);
|
|
/* 0298B684 */ _t78 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B684 */ cpu->r[30] = rbrew_read32(cpu->mem, _t78);
|
|
/* 0298B688 */ cpu->f[12] = cpu->f[11] - cpu->f[0];
|
|
/* 0298B68C */ _t79 = cpu->r[30] + 0x00000010u;
|
|
/* 0298B68C */ cpu->r[10] = rbrew_read32(cpu->mem, _t79);
|
|
/* 0298B690 */ _t80 = cpu->r[30] + 0x00000004u;
|
|
/* 0298B690 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t80);
|
|
/* 0298B694 */ cpu->ctr = cpu->r[10];
|
|
/* 0298B698 */ _t81 = cpu->r[30] + 0x00000008u;
|
|
/* 0298B698 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 0298B69C */ cpu->f[1] = cpu->f[31] * cpu->f[12];
|
|
/* 0298B6A0 */ _t82 = cpu->r[30] + 0x00000014u;
|
|
/* 0298B6A0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t82);
|
|
/* 0298B6A4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B6A8 */ _t83 = cpu->r[30] + 0x00000000u;
|
|
/* 0298B6A8 */ rbrew_write_f32(cpu->mem, _t83, cpu->f[1]);
|
|
L_0298B6AC: ; // 0x298b6ac
|
|
/* 0298B6AC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B6B0 */ /* nop */
|
|
/* 0298B6B4 */ _t84 = cpu->r[1] + 0x00000078u;
|
|
/* 0298B6B4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t84);
|
|
/* 0298B6B8 */ _t85 = cpu->r[1] + 0x00000070u;
|
|
/* 0298B6B8 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t85);
|
|
/* 0298B6BC */ _t86 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298B6BC */ _t87 = _t86 & 0x00000001u;
|
|
/* 0298B6BC */ if (_t87) goto L_0298B6C0; // else: addr-0 trap, fall-through
|
|
L_0298B6C0: ; // 0x298b6c0
|
|
/* 0298B6C0 */ _t88 = cpu->r[1] + 0x00000084u;
|
|
/* 0298B6C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t88);
|
|
/* 0298B6C4 */ cpu->lr = cpu->r[0];
|
|
/* 0298B6C8 */ cpu->r[1] = cpu->r[1] + 0x00000080u;
|
|
/* 0298B6CC */ return;
|
|
}
|
|
|
|
// fn_0298B6D0 @ 0x298b6d0
|
|
void Gambit_fn_0298B6D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298B6D0: ; // 0x298b6d0
|
|
/* 0298B6D0 */ cpu->r[0] = cpu->lr;
|
|
/* 0298B6D4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298B6D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B6D4 */ cpu->r[1] = _t0;
|
|
/* 0298B6D8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B6D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298B6DC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B6DC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298B6E0 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B6E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298B6E4 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298B6E8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B6E8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298B6EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B6EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B6EC */ if (_t5) goto L_0298B718; else goto L_0298B6F0;
|
|
L_0298B6F0: ; // 0x298b6f0
|
|
/* 0298B6F0 */ cpu->r[3] = cpu->r[31] + 0x000000ACu;
|
|
/* 0298B6F4 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298B6F8 */ Gambit_fn_02984F84(cpu);
|
|
/* 0298B6FC */ cpu->r[3] = cpu->r[31] + 0x0000008Cu;
|
|
/* 0298B700 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298B704 */ Gambit_fn_029826F8(cpu);
|
|
/* 0298B708 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B708 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B70C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B70C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298B70C */ if (_t7) goto L_0298B718; else goto L_0298B710;
|
|
L_0298B710: ; // 0x298b710
|
|
/* 0298B710 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B714 */ Gambit_fn_02801BB0(cpu);
|
|
L_0298B718: ; // 0x298b718
|
|
/* 0298B718 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B718 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298B71C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B71C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298B720 */ cpu->lr = cpu->r[0];
|
|
/* 0298B724 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B724 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298B728 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298B72C */ return;
|
|
}
|
|
|
|
// fn_0298B6D4 @ 0x298b6d4
|
|
void Gambit_fn_0298B6D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298B6D4: ; // 0x298b6d4
|
|
/* 0298B6D4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298B6D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B6D4 */ cpu->r[1] = _t0;
|
|
/* 0298B6D8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B6D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298B6DC */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B6DC */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298B6E0 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B6E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298B6E4 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298B6E8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B6E8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298B6EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B6EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B6EC */ if (_t5) goto L_0298B718; else goto L_0298B6F0;
|
|
L_0298B6F0: ; // 0x298b6f0
|
|
/* 0298B6F0 */ cpu->r[3] = cpu->r[31] + 0x000000ACu;
|
|
/* 0298B6F4 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298B6F8 */ Gambit_fn_02984F84(cpu);
|
|
/* 0298B6FC */ cpu->r[3] = cpu->r[31] + 0x0000008Cu;
|
|
/* 0298B700 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298B704 */ Gambit_fn_029826F8(cpu);
|
|
/* 0298B708 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B708 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B70C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B70C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298B70C */ if (_t7) goto L_0298B718; else goto L_0298B710;
|
|
L_0298B710: ; // 0x298b710
|
|
/* 0298B710 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B714 */ Gambit_fn_02801BB0(cpu);
|
|
L_0298B718: ; // 0x298b718
|
|
/* 0298B718 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B718 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298B71C */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B71C */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298B720 */ cpu->lr = cpu->r[0];
|
|
/* 0298B724 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B724 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298B728 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298B72C */ return;
|
|
}
|
|
|
|
// fn_0298B730 @ 0x298b730
|
|
void Gambit_fn_0298B730(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_0298B730: ; // 0x298b730
|
|
/* 0298B730 */ cpu->r[0] = cpu->lr;
|
|
/* 0298B734 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298B734 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B734 */ cpu->r[1] = _t0;
|
|
/* 0298B738 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B738 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298B73C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B740 */ cpu->r[3] = cpu->r[31] + 0x000000ACu;
|
|
/* 0298B744 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B744 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298B748 */ Gambit_fn_02985010(cpu);
|
|
/* 0298B74C */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B74C */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298B750 */ _t4 = cpu->r[10] + 0x000000A4u;
|
|
/* 0298B750 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298B754 */ cpu->r[0] = cpu->r[31] + 0x000000ACu;
|
|
/* 0298B758 */ _t5 = cpu->r[12] + 0x00000094u;
|
|
/* 0298B758 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298B75C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B75C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298B760 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B760 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298B764 */ cpu->lr = cpu->r[0];
|
|
/* 0298B768 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298B76C */ return;
|
|
}
|
|
|
|
// fn_0298B734 @ 0x298b734
|
|
void Gambit_fn_0298B734(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_0298B734: ; // 0x298b734
|
|
/* 0298B734 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298B734 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B734 */ cpu->r[1] = _t0;
|
|
/* 0298B738 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B738 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298B73C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B740 */ cpu->r[3] = cpu->r[31] + 0x000000ACu;
|
|
/* 0298B744 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B744 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298B748 */ Gambit_fn_02985010(cpu);
|
|
/* 0298B74C */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B74C */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298B750 */ _t4 = cpu->r[10] + 0x000000A4u;
|
|
/* 0298B750 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298B754 */ cpu->r[0] = cpu->r[31] + 0x000000ACu;
|
|
/* 0298B758 */ _t5 = cpu->r[12] + 0x00000094u;
|
|
/* 0298B758 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298B75C */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B75C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298B760 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B760 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298B764 */ cpu->lr = cpu->r[0];
|
|
/* 0298B768 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298B76C */ return;
|
|
}
|
|
|
|
// fn_0298B770 @ 0x298b770
|
|
void Gambit_fn_0298B770(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_0298B770: ; // 0x298b770
|
|
/* 0298B770 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298B774 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B774 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B774 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B774 */ goto L_0298B778;
|
|
L_0298B778: ; // 0x298b778
|
|
/* 0298B778 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B778 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B77C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B77C */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298B77C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B77C */ goto L_0298B780;
|
|
L_0298B780: ; // 0x298b780
|
|
/* 0298B780 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298B784 @ 0x298b784
|
|
void Gambit_fn_0298B784(CPUState* cpu) {
|
|
L_0298B784: ; // 0x298b784
|
|
/* 0298B784 */ return;
|
|
}
|
|
|
|
// fn_0298B788 @ 0x298b788
|
|
void Gambit_fn_0298B788(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_0298B788: ; // 0x298b788
|
|
/* 0298B788 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298B78C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B78C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B78C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B78C */ goto L_0298B790;
|
|
L_0298B790: ; // 0x298b790
|
|
/* 0298B790 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B790 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B794 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B794 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298B794 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B794 */ goto L_0298B798;
|
|
L_0298B798: ; // 0x298b798
|
|
/* 0298B798 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298B79C @ 0x298b79c
|
|
void Gambit_fn_0298B79C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_0298B79C: ; // 0x298b79c
|
|
/* 0298B79C */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 0298B79C */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298B7A0 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 0298B7A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298B7A4 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 0298B7A8 */ cpu->r[11] = 0x10110000u;
|
|
/* 0298B7AC */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 0298B7AC */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 0298B7B0 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 0298B7B0 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 0298B7B4 */ return;
|
|
}
|
|
|
|
// fn_0298B7B8 @ 0x298b7b8
|
|
void Gambit_fn_0298B7B8(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_0298B7B8: ; // 0x298b7b8
|
|
/* 0298B7B8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298B7BC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B7BC */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B7BC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B7BC */ goto L_0298B7C0;
|
|
L_0298B7C0: ; // 0x298b7c0
|
|
/* 0298B7C0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B7C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B7C4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B7C4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298B7C4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B7C4 */ goto L_0298B7C8;
|
|
L_0298B7C8: ; // 0x298b7c8
|
|
/* 0298B7C8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298B7CC @ 0x298b7cc
|
|
void Gambit_fn_0298B7CC(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_0298B7CC: ; // 0x298b7cc
|
|
/* 0298B7CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298B7D0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B7D0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B7D0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B7D0 */ goto L_0298B7D4;
|
|
L_0298B7D4: ; // 0x298b7d4
|
|
/* 0298B7D4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B7D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B7D8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B7D8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298B7D8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B7D8 */ goto L_0298B7DC;
|
|
L_0298B7DC: ; // 0x298b7dc
|
|
/* 0298B7DC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298B7E0 @ 0x298b7e0
|
|
void Gambit_fn_0298B7E0(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_0298B7E0: ; // 0x298b7e0
|
|
/* 0298B7E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298B7E4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B7E4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B7E4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B7E4 */ goto L_0298B7E8;
|
|
L_0298B7E8: ; // 0x298b7e8
|
|
/* 0298B7E8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B7E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B7EC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B7EC */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298B7EC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B7EC */ goto L_0298B7F0;
|
|
L_0298B7F0: ; // 0x298b7f0
|
|
/* 0298B7F0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298B7F4 @ 0x298b7f4
|
|
void Gambit_fn_0298B7F4(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_0298B7F4: ; // 0x298b7f4
|
|
/* 0298B7F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298B7F8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B7F8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B7F8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B7F8 */ goto L_0298B7FC;
|
|
L_0298B7FC: ; // 0x298b7fc
|
|
/* 0298B7FC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B7FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B800 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B800 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298B800 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B800 */ goto L_0298B804;
|
|
L_0298B804: ; // 0x298b804
|
|
/* 0298B804 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298B808 @ 0x298b808
|
|
void Gambit_fn_0298B808(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_0298B808: ; // 0x298b808
|
|
/* 0298B808 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298B80C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B80C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B80C */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B80C */ goto L_0298B810;
|
|
L_0298B810: ; // 0x298b810
|
|
/* 0298B810 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B810 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B814 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B814 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298B814 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B814 */ goto L_0298B818;
|
|
L_0298B818: ; // 0x298b818
|
|
/* 0298B818 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298B81C @ 0x298b81c
|
|
void Gambit_fn_0298B81C(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_0298B81C: ; // 0x298b81c
|
|
/* 0298B81C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298B820 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B820 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B820 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B820 */ goto L_0298B824;
|
|
L_0298B824: ; // 0x298b824
|
|
/* 0298B824 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B824 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B828 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B828 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298B828 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298B828 */ goto L_0298B82C;
|
|
L_0298B82C: ; // 0x298b82c
|
|
/* 0298B82C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298B830 @ 0x298b830
|
|
void Gambit_fn_0298B830(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_0298B830: ; // 0x298b830
|
|
/* 0298B830 */ cpu->r[0] = cpu->lr;
|
|
/* 0298B834 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298B834 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B834 */ cpu->r[1] = _t0;
|
|
/* 0298B838 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B838 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298B83C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B83C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298B840 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298B840 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298B844 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298B848 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B848 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298B84C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B84C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B84C */ if (_t5) goto L_0298B8B0; else goto L_0298B850;
|
|
L_0298B850: ; // 0x298b850
|
|
/* 0298B850 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298B854 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298B858 */ cpu->r[11] = cpu->r[11] + 0xFFFFF450u;
|
|
/* 0298B85C */ cpu->r[0] = cpu->r[0] + 0xFFFFF490u;
|
|
/* 0298B860 */ _t6 = cpu->r[30] + 0x00000088u;
|
|
/* 0298B860 */ rbrew_write32(cpu->mem, _t6, cpu->r[11]);
|
|
/* 0298B864 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B868 */ _t7 = cpu->r[30] + 0x000000B0u;
|
|
/* 0298B868 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298B86C */ cpu->r[12] = cpu->r[12] + 0xFFFFF480u;
|
|
/* 0298B870 */ cpu->r[3] = cpu->r[30] + 0x00000224u;
|
|
/* 0298B874 */ _t8 = cpu->r[30] + 0x0000008Cu;
|
|
/* 0298B874 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 0298B878 */ Gambit_fn_02802424(cpu);
|
|
/* 0298B87C */ cpu->r[4] = 0x00000002u;
|
|
/* 0298B880 */ cpu->r[3] = cpu->r[30] + 0x00000294u;
|
|
/* 0298B884 */ Gambit_fn_0281CB84(cpu);
|
|
/* 0298B888 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298B88C */ cpu->r[3] = cpu->r[30] + 0x0000023Cu;
|
|
/* 0298B890 */ Gambit_fn_0281ADA0(cpu);
|
|
/* 0298B894 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298B898 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298B89C */ Gambit_fn_02C927D8(cpu);
|
|
/* 0298B8A0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B8A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B8A4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B8A4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298B8A4 */ if (_t10) goto L_0298B8B0; else goto L_0298B8A8;
|
|
L_0298B8A8: ; // 0x298b8a8
|
|
/* 0298B8A8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298B8AC */ Gambit_fn_02801BB0(cpu);
|
|
L_0298B8B0: ; // 0x298b8b0
|
|
/* 0298B8B0 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B8B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298B8B4 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B8B4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298B8B8 */ cpu->lr = cpu->r[0];
|
|
/* 0298B8BC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B8BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298B8C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298B8C4 */ return;
|
|
}
|
|
|
|
// fn_0298B834 @ 0x298b834
|
|
void Gambit_fn_0298B834(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_0298B834: ; // 0x298b834
|
|
/* 0298B834 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298B834 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B834 */ cpu->r[1] = _t0;
|
|
/* 0298B838 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B838 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298B83C */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B83C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298B840 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298B840 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298B844 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298B848 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B848 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298B84C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B84C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B84C */ if (_t5) goto L_0298B8B0; else goto L_0298B850;
|
|
L_0298B850: ; // 0x298b850
|
|
/* 0298B850 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298B854 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298B858 */ cpu->r[11] = cpu->r[11] + 0xFFFFF450u;
|
|
/* 0298B85C */ cpu->r[0] = cpu->r[0] + 0xFFFFF490u;
|
|
/* 0298B860 */ _t6 = cpu->r[30] + 0x00000088u;
|
|
/* 0298B860 */ rbrew_write32(cpu->mem, _t6, cpu->r[11]);
|
|
/* 0298B864 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B868 */ _t7 = cpu->r[30] + 0x000000B0u;
|
|
/* 0298B868 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298B86C */ cpu->r[12] = cpu->r[12] + 0xFFFFF480u;
|
|
/* 0298B870 */ cpu->r[3] = cpu->r[30] + 0x00000224u;
|
|
/* 0298B874 */ _t8 = cpu->r[30] + 0x0000008Cu;
|
|
/* 0298B874 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 0298B878 */ Gambit_fn_02802424(cpu);
|
|
/* 0298B87C */ cpu->r[4] = 0x00000002u;
|
|
/* 0298B880 */ cpu->r[3] = cpu->r[30] + 0x00000294u;
|
|
/* 0298B884 */ Gambit_fn_0281CB84(cpu);
|
|
/* 0298B888 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298B88C */ cpu->r[3] = cpu->r[30] + 0x0000023Cu;
|
|
/* 0298B890 */ Gambit_fn_0281ADA0(cpu);
|
|
/* 0298B894 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298B898 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298B89C */ Gambit_fn_02C927D8(cpu);
|
|
/* 0298B8A0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B8A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B8A4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B8A4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298B8A4 */ if (_t10) goto L_0298B8B0; else goto L_0298B8A8;
|
|
L_0298B8A8: ; // 0x298b8a8
|
|
/* 0298B8A8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298B8AC */ Gambit_fn_02801BB0(cpu);
|
|
L_0298B8B0: ; // 0x298b8b0
|
|
/* 0298B8B0 */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B8B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298B8B4 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B8B4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298B8B8 */ cpu->lr = cpu->r[0];
|
|
/* 0298B8BC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B8BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298B8C0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298B8C4 */ return;
|
|
}
|
|
|
|
// fn_0298B8C8 @ 0x298b8c8
|
|
void Gambit_fn_0298B8C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_0298B8C8: ; // 0x298b8c8
|
|
/* 0298B8C8 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 0298B8C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298B8CC */ cpu->r[0] = cpu->r[0] | 0x00000002u;
|
|
/* 0298B8D0 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 0298B8D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298B8D4 */ return;
|
|
}
|
|
|
|
// fn_0298B8D8 @ 0x298b8d8
|
|
void Gambit_fn_0298B8D8(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298B8D8: ; // 0x298b8d8
|
|
/* 0298B8D8 */ cpu->r[0] = cpu->lr;
|
|
/* 0298B8DC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298B8DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B8DC */ cpu->r[1] = _t0;
|
|
/* 0298B8E0 */ _t1 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B8E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298B8E4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B8E8 */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B8E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298B8EC */ _t3 = cpu->r[31] + 0x0000021Cu;
|
|
/* 0298B8EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298B8F0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B8F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B8F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B8F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B8F4 */ if (_t5) goto L_0298B900; else goto L_0298B8F8;
|
|
L_0298B8F8: ; // 0x298b8f8
|
|
/* 0298B8F8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B8FC */ Gambit_fn_0298B8C8(cpu);
|
|
L_0298B900: ; // 0x298b900
|
|
/* 0298B900 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B904 */ Gambit_fn_02C928D4(cpu);
|
|
/* 0298B908 */ _t6 = cpu->r[31] + 0x00000220u;
|
|
/* 0298B908 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298B90C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B910 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B910 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298B910 */ if (_t8) goto L_0298B9C4; else goto L_0298B914;
|
|
L_0298B914: ; // 0x298b914
|
|
/* 0298B914 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B914 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298B918 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B91C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B91C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298B91C */ if (_t11) goto L_0298B938; else goto L_0298B920;
|
|
L_0298B920: ; // 0x298b920
|
|
/* 0298B920 */ _t12 = cpu->r[31] + 0x00000088u;
|
|
/* 0298B920 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298B924 */ _t13 = cpu->r[12] + 0x0000002Cu;
|
|
/* 0298B924 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298B928 */ cpu->ctr = cpu->r[0];
|
|
/* 0298B92C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B930 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B934 */ _t14 = cpu->r[31] + 0x00000220u;
|
|
/* 0298B934 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
L_0298B938: ; // 0x298b938
|
|
/* 0298B938 */ _t15 = cpu->r[12] + 0x0000007Du;
|
|
/* 0298B938 */ cpu->r[10] = rbrew_read8(cpu->mem, _t15);
|
|
/* 0298B93C */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B93C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B940 */ cpu->r[11] = cpu->r[12] + 0x0000007Du;
|
|
/* 0298B944 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B944 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B944 */ if (_t17) goto L_0298B9C4; else goto L_0298B948;
|
|
L_0298B948: ; // 0x298b948
|
|
/* 0298B948 */ _t18 = cpu->r[11] + 0x00000000u;
|
|
/* 0298B948 */ cpu->r[10] = rbrew_read8(cpu->mem, _t18);
|
|
/* 0298B94C */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B950 */ _t19 = cpu->r[12] + 0xFFFFF2ECu;
|
|
/* 0298B950 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 0298B954 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Bu, 0x00000019u);
|
|
/* 0298B958 */ _t20 = cpu->r[11] + 0x00000000u;
|
|
/* 0298B958 */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[10]);
|
|
/* 0298B95C */ _t21 = cpu->r[31] + 0x000003F4u;
|
|
/* 0298B95C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 0298B960 */ _t22 = cpu->r[31] + 0x00000424u;
|
|
/* 0298B960 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 0298B964 */ _t23 = cpu->r[31] + 0x0000038Cu;
|
|
/* 0298B964 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 0298B968 */ _t24 = cpu->r[31] + 0x00000428u;
|
|
/* 0298B968 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0298B96C */ cpu->f[2] = cpu->f[12] * cpu->f[9];
|
|
/* 0298B970 */ _t25 = cpu->r[31] + 0x000003ACu;
|
|
/* 0298B970 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 0298B974 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B974 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[0]);
|
|
/* 0298B978 */ cpu->f[1] = cpu->f[13] * cpu->f[11];
|
|
/* 0298B97C */ _t27 = cpu->r[31] + 0x0000042Cu;
|
|
/* 0298B97C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 0298B980 */ _t28 = cpu->r[31] + 0x00000404u;
|
|
/* 0298B980 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 0298B984 */ cpu->f[4] = cpu->f[13] * cpu->f[12];
|
|
/* 0298B988 */ _t29 = cpu->r[31] + 0x00000414u;
|
|
/* 0298B988 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 0298B98C */ _t30 = cpu->r[31] + 0x00000220u;
|
|
/* 0298B98C */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298B990 */ cpu->f[3] = cpu->f[10] * cpu->f[11];
|
|
/* 0298B994 */ _t31 = cpu->r[31] + 0x000003BCu;
|
|
/* 0298B994 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 0298B998 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298B99C */ _t32 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B99C */ rbrew_write_f32(cpu->mem, _t32, cpu->f[0]);
|
|
/* 0298B9A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B9A4 */ _t33 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B9A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298B9A8 */ cpu->f[5] = cpu->f[13] * cpu->f[10];
|
|
/* 0298B9AC */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B9AC */ rbrew_write_f32(cpu->mem, _t34, cpu->f[8]);
|
|
/* 0298B9B0 */ cpu->r[0] = cpu->r[0] | 0x00000004u;
|
|
/* 0298B9B4 */ _t35 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B9B4 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[0]);
|
|
/* 0298B9B8 */ cpu->r[4] = cpu->r[11] + 0x00000034u;
|
|
/* 0298B9BC */ _t36 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B9BC */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 0298B9C0 */ Gambit_fn_02C929BC(cpu);
|
|
L_0298B9C4: ; // 0x298b9c4
|
|
/* 0298B9C4 */ _t37 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B9C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 0298B9C8 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B9C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t38);
|
|
/* 0298B9CC */ cpu->lr = cpu->r[0];
|
|
/* 0298B9D0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B9D4 */ return;
|
|
}
|
|
|
|
// fn_0298B8DC @ 0x298b8dc
|
|
void Gambit_fn_0298B8DC(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298B8DC: ; // 0x298b8dc
|
|
/* 0298B8DC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298B8DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B8DC */ cpu->r[1] = _t0;
|
|
/* 0298B8E0 */ _t1 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B8E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298B8E4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298B8E8 */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B8E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298B8EC */ _t3 = cpu->r[31] + 0x0000021Cu;
|
|
/* 0298B8EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298B8F0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B8F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B8F4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B8F4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298B8F4 */ if (_t5) goto L_0298B900; else goto L_0298B8F8;
|
|
L_0298B8F8: ; // 0x298b8f8
|
|
/* 0298B8F8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B8FC */ Gambit_fn_0298B8C8(cpu);
|
|
L_0298B900: ; // 0x298b900
|
|
/* 0298B900 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B904 */ Gambit_fn_02C928D4(cpu);
|
|
/* 0298B908 */ _t6 = cpu->r[31] + 0x00000220u;
|
|
/* 0298B908 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298B90C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298B910 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B910 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298B910 */ if (_t8) goto L_0298B9C4; else goto L_0298B914;
|
|
L_0298B914: ; // 0x298b914
|
|
/* 0298B914 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B914 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298B918 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B918 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B91C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B91C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298B91C */ if (_t11) goto L_0298B938; else goto L_0298B920;
|
|
L_0298B920: ; // 0x298b920
|
|
/* 0298B920 */ _t12 = cpu->r[31] + 0x00000088u;
|
|
/* 0298B920 */ cpu->r[12] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298B924 */ _t13 = cpu->r[12] + 0x0000002Cu;
|
|
/* 0298B924 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298B928 */ cpu->ctr = cpu->r[0];
|
|
/* 0298B92C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B930 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298B934 */ _t14 = cpu->r[31] + 0x00000220u;
|
|
/* 0298B934 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
L_0298B938: ; // 0x298b938
|
|
/* 0298B938 */ _t15 = cpu->r[12] + 0x0000007Du;
|
|
/* 0298B938 */ cpu->r[10] = rbrew_read8(cpu->mem, _t15);
|
|
/* 0298B93C */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Bu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298B93C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298B940 */ cpu->r[11] = cpu->r[12] + 0x0000007Du;
|
|
/* 0298B944 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298B944 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298B944 */ if (_t17) goto L_0298B9C4; else goto L_0298B948;
|
|
L_0298B948: ; // 0x298b948
|
|
/* 0298B948 */ _t18 = cpu->r[11] + 0x00000000u;
|
|
/* 0298B948 */ cpu->r[10] = rbrew_read8(cpu->mem, _t18);
|
|
/* 0298B94C */ cpu->r[12] = 0x10150000u;
|
|
/* 0298B950 */ _t19 = cpu->r[12] + 0xFFFFF2ECu;
|
|
/* 0298B950 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 0298B954 */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Bu, 0x00000019u);
|
|
/* 0298B958 */ _t20 = cpu->r[11] + 0x00000000u;
|
|
/* 0298B958 */ rbrew_write8(cpu->mem, _t20, (uint8_t)cpu->r[10]);
|
|
/* 0298B95C */ _t21 = cpu->r[31] + 0x000003F4u;
|
|
/* 0298B95C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t21);
|
|
/* 0298B960 */ _t22 = cpu->r[31] + 0x00000424u;
|
|
/* 0298B960 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 0298B964 */ _t23 = cpu->r[31] + 0x0000038Cu;
|
|
/* 0298B964 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 0298B968 */ _t24 = cpu->r[31] + 0x00000428u;
|
|
/* 0298B968 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0298B96C */ cpu->f[2] = cpu->f[12] * cpu->f[9];
|
|
/* 0298B970 */ _t25 = cpu->r[31] + 0x000003ACu;
|
|
/* 0298B970 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 0298B974 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298B974 */ rbrew_write_f32(cpu->mem, _t26, cpu->f[0]);
|
|
/* 0298B978 */ cpu->f[1] = cpu->f[13] * cpu->f[11];
|
|
/* 0298B97C */ _t27 = cpu->r[31] + 0x0000042Cu;
|
|
/* 0298B97C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 0298B980 */ _t28 = cpu->r[31] + 0x00000404u;
|
|
/* 0298B980 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 0298B984 */ cpu->f[4] = cpu->f[13] * cpu->f[12];
|
|
/* 0298B988 */ _t29 = cpu->r[31] + 0x00000414u;
|
|
/* 0298B988 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 0298B98C */ _t30 = cpu->r[31] + 0x00000220u;
|
|
/* 0298B98C */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298B990 */ cpu->f[3] = cpu->f[10] * cpu->f[11];
|
|
/* 0298B994 */ _t31 = cpu->r[31] + 0x000003BCu;
|
|
/* 0298B994 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 0298B998 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298B99C */ _t32 = cpu->r[1] + 0x00000010u;
|
|
/* 0298B99C */ rbrew_write_f32(cpu->mem, _t32, cpu->f[0]);
|
|
/* 0298B9A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298B9A4 */ _t33 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B9A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298B9A8 */ cpu->f[5] = cpu->f[13] * cpu->f[10];
|
|
/* 0298B9AC */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 0298B9AC */ rbrew_write_f32(cpu->mem, _t34, cpu->f[8]);
|
|
/* 0298B9B0 */ cpu->r[0] = cpu->r[0] | 0x00000004u;
|
|
/* 0298B9B4 */ _t35 = cpu->r[1] + 0x00000008u;
|
|
/* 0298B9B4 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[0]);
|
|
/* 0298B9B8 */ cpu->r[4] = cpu->r[11] + 0x00000034u;
|
|
/* 0298B9BC */ _t36 = cpu->r[31] + 0x00000000u;
|
|
/* 0298B9BC */ rbrew_write32(cpu->mem, _t36, cpu->r[0]);
|
|
/* 0298B9C0 */ Gambit_fn_02C929BC(cpu);
|
|
L_0298B9C4: ; // 0x298b9c4
|
|
/* 0298B9C4 */ _t37 = cpu->r[1] + 0x00000024u;
|
|
/* 0298B9C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 0298B9C8 */ _t38 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298B9C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t38);
|
|
/* 0298B9CC */ cpu->lr = cpu->r[0];
|
|
/* 0298B9D0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298B9D4 */ return;
|
|
}
|
|
|
|
// fn_0298B9D8 @ 0x298b9d8
|
|
void Gambit_fn_0298B9D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189, _t190, _t191, _t192, _t193, _t194, _t195, _t196, _t197, _t198, _t199, _t200, _t201, _t202, _t203, _t204, _t205, _t206, _t207, _t208, _t209, _t210, _t211, _t212, _t213, _t214, _t215, _t216, _t217, _t218, _t219, _t220, _t221, _t222, _t223, _t224, _t225, _t226, _t227, _t228, _t229, _t230, _t231, _t232, _t233, _t234, _t235, _t236, _t237, _t238, _t239, _t240, _t241, _t242, _t243, _t244, _t245, _t246, _t247, _t248, _t249, _t250, _t251, _t252, _t253, _t254, _t255, _t256, _t257, _t258, _t259, _t260;
|
|
|
|
L_0298B9D8: ; // 0x298b9d8
|
|
/* 0298B9D8 */ _t0 = cpu->r[1] + 0xFFFFFEA8u;
|
|
/* 0298B9D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298B9D8 */ cpu->r[1] = _t0;
|
|
/* 0298B9DC */ _t1 = cpu->r[1] + 0x00000128u;
|
|
/* 0298B9DC */ rbrew_write_f64(cpu->mem, _t1, cpu->f[29]);
|
|
/* 0298B9E0 */ /* nop */
|
|
/* 0298B9E4 */ _t2 = cpu->r[1] + 0x00000148u;
|
|
/* 0298B9E4 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[31]);
|
|
/* 0298B9E8 */ /* nop */
|
|
/* 0298B9EC */ /* nop */
|
|
/* 0298B9F0 */ cpu->r[0] = cpu->lr;
|
|
/* 0298B9F4 */ _t3 = cpu->r[1] + 0x00000138u;
|
|
/* 0298B9F4 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[30]);
|
|
/* 0298B9F8 */ _t4 = cpu->r[1] + 0x00000130u;
|
|
/* 0298B9F8 */ rbrew_write_f32(cpu->mem, _t4, cpu->f[29]);
|
|
/* 0298B9FC */ /* nop */
|
|
/* 0298BA00 */ _t5 = cpu->r[1] + 0x00000150u;
|
|
/* 0298BA00 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[31]);
|
|
/* 0298BA04 */ _t6 = cpu->r[1] + 0x00000140u;
|
|
/* 0298BA04 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[30]);
|
|
/* 0298BA08 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298BA08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298BA0C */ _t7 = cpu->r[1] + 0x0000015Cu;
|
|
/* 0298BA0C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298BA10 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BA10 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298BA10 */ if (_t9) goto L_0298BA14; else goto L_0298BA24;
|
|
L_0298BA14: ; // 0x298ba14
|
|
/* 0298BA14 */ cpu->r[3] = 0x00000430u;
|
|
/* 0298BA18 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BA1C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298BA1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298BA20 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BA20 */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298BA20 */ if (_t11) goto L_0298C178; else goto L_0298BA24;
|
|
L_0298BA24: ; // 0x298ba24
|
|
/* 0298BA24 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298BA28 */ Gambit_fn_02C92694(cpu);
|
|
/* 0298BA2C */ cpu->r[29] = 0x10150000u;
|
|
/* 0298BA30 */ cpu->r[5] = 0x10150000u;
|
|
/* 0298BA34 */ cpu->r[3] = cpu->r[31] + 0x00000090u;
|
|
/* 0298BA38 */ cpu->r[29] = cpu->r[29] + 0xFFFFF0BCu;
|
|
/* 0298BA3C */ cpu->r[5] = cpu->r[5] + 0xFFFFF0E4u;
|
|
/* 0298BA40 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298BA44 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298BA48 */ _t12 = cpu->r[31] + 0x0000008Cu;
|
|
/* 0298BA48 */ rbrew_write32(cpu->mem, _t12, cpu->r[5]);
|
|
/* 0298BA4C */ cpu->r[0] = cpu->r[0] + 0xFFFFF348u;
|
|
/* 0298BA50 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298BA54 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298BA54 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 0298BA58 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298BA5C */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298BA5C */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
/* 0298BA60 */ Gambit_fn_0295166C(cpu);
|
|
/* 0298BA64 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298BA68 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298BA6C */ cpu->r[7] = cpu->r[7] + 0xFFFFF450u;
|
|
/* 0298BA70 */ cpu->r[9] = cpu->r[9] + 0xFFFFF490u;
|
|
/* 0298BA74 */ _t15 = cpu->r[31] + 0x00000088u;
|
|
/* 0298BA74 */ rbrew_write32(cpu->mem, _t15, cpu->r[7]);
|
|
/* 0298BA78 */ cpu->r[8] = 0x10150000u;
|
|
/* 0298BA7C */ _t16 = cpu->r[31] + 0x000000B0u;
|
|
/* 0298BA7C */ rbrew_write32(cpu->mem, _t16, cpu->r[9]);
|
|
/* 0298BA80 */ cpu->r[8] = cpu->r[8] + 0xFFFFF480u;
|
|
/* 0298BA84 */ cpu->r[3] = cpu->r[31] + 0x0000021Cu;
|
|
/* 0298BA84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BA88 */ _t17 = cpu->r[31] + 0x0000008Cu;
|
|
/* 0298BA88 */ rbrew_write32(cpu->mem, _t17, cpu->r[8]);
|
|
/* 0298BA8C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BA8C */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298BA8C */ if (_t19) goto L_0298BA90; else goto L_0298BAA0;
|
|
L_0298BA90: ; // 0x298ba90
|
|
/* 0298BA90 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298BA94 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BA98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BA9C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BA9C */ _t21 = _t20 & 0x00000001u;
|
|
/* 0298BA9C */ if (_t21) goto L_0298BAA4; else goto L_0298BAA0;
|
|
L_0298BAA0: ; // 0x298baa0
|
|
/* 0298BAA0 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 0298BAA0 */ rbrew_write32(cpu->mem, _t22, cpu->r[30]);
|
|
L_0298BAA4: ; // 0x298baa4
|
|
/* 0298BAA4 */ cpu->r[3] = cpu->r[31] + 0x00000224u;
|
|
/* 0298BAA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BAA8 */ _t23 = cpu->r[31] + 0x00000220u;
|
|
/* 0298BAA8 */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
/* 0298BAAC */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BAAC */ _t25 = _t24 & 0x00000001u;
|
|
/* 0298BAAC */ if (_t25) goto L_0298BAB0; else goto L_0298BAC0;
|
|
L_0298BAB0: ; // 0x298bab0
|
|
/* 0298BAB0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BAB4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BAB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BABC */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BABC */ _t27 = _t26 & 0x00000001u;
|
|
/* 0298BABC */ if (_t27) goto L_0298BAE4; else goto L_0298BAC0;
|
|
L_0298BAC0: ; // 0x298bac0
|
|
/* 0298BAC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BAC4 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BAC4 */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298BAC4 */ if (_t29) goto L_0298BAC8; else goto L_0298BAD8;
|
|
L_0298BAC8: ; // 0x298bac8
|
|
/* 0298BAC8 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BACC */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BAD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BAD4 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BAD4 */ _t31 = _t30 & 0x00000001u;
|
|
/* 0298BAD4 */ if (_t31) goto L_0298BAE4; else goto L_0298BAD8;
|
|
L_0298BAD8: ; // 0x298bad8
|
|
/* 0298BAD8 */ _t32 = cpu->r[3] + 0x00000004u;
|
|
/* 0298BAD8 */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 0298BADC */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 0298BADC */ rbrew_write32(cpu->mem, _t33, cpu->r[30]);
|
|
/* 0298BAE0 */ _t34 = cpu->r[3] + 0x00000008u;
|
|
/* 0298BAE0 */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
L_0298BAE4: ; // 0x298bae4
|
|
/* 0298BAE4 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298BAE8 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298BAEC */ _t35 = cpu->r[12] + 0xFFFFF2F0u;
|
|
/* 0298BAEC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t35);
|
|
/* 0298BAF0 */ cpu->r[28] = cpu->r[31] + 0x0000023Cu;
|
|
/* 0298BAF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298BAF4 */ _t36 = cpu->r[11] + 0xFFFFF2ECu;
|
|
/* 0298BAF4 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t36);
|
|
/* 0298BAF8 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BAF8 */ _t38 = _t37 & 0x00000001u;
|
|
/* 0298BAF8 */ if (_t38) goto L_0298BAFC; else goto L_0298BB0C;
|
|
L_0298BAFC: ; // 0x298bafc
|
|
/* 0298BAFC */ cpu->r[3] = 0x00000058u;
|
|
/* 0298BB00 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BB04 */ cpu->r[28] = cpu->r[3];
|
|
/* 0298BB04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298BB08 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BB08 */ _t40 = _t39 & 0x00000001u;
|
|
/* 0298BB08 */ if (_t40) goto L_0298BC18; else goto L_0298BB0C;
|
|
L_0298BB0C: ; // 0x298bb0c
|
|
/* 0298BB0C */ cpu->r[0] = 0x10110000u;
|
|
/* 0298BB10 */ cpu->r[11] = 0x101F0000u;
|
|
/* 0298BB14 */ cpu->r[5] = 0x00000003u;
|
|
/* 0298BB18 */ cpu->r[0] = cpu->r[0] + 0x000043ACu;
|
|
/* 0298BB1C */ cpu->r[11] = cpu->r[11] + 0x00005E2Cu;
|
|
/* 0298BB20 */ cpu->r[12] = cpu->r[28] + 0xFFFFFFFCu;
|
|
/* 0298BB24 */ cpu->ctr = cpu->r[5];
|
|
/* 0298BB28 */ _t41 = cpu->r[28] + 0x00000030u;
|
|
/* 0298BB28 */ rbrew_write32(cpu->mem, _t41, cpu->r[0]);
|
|
L_0298BB2C: ; // 0x298bb2c
|
|
/* 0298BB2C */ _t42 = cpu->r[11] + 0x00000004u;
|
|
/* 0298BB2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 0298BB30 */ _t43 = cpu->r[12] + 0x00000004u;
|
|
/* 0298BB30 */ rbrew_write32(cpu->mem, _t43, cpu->r[0]);
|
|
/* 0298BB34 */ _t44 = cpu->r[11] + 0x00000008u;
|
|
/* 0298BB34 */ cpu->r[7] = rbrew_read32(cpu->mem, _t44);
|
|
/* 0298BB38 */ _t45 = cpu->r[12] + 0x00000008u;
|
|
/* 0298BB38 */ rbrew_write32(cpu->mem, _t45, cpu->r[7]);
|
|
/* 0298BB3C */ _t46 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0298BB3C */ cpu->r[8] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298BB40 */ _t47 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0298BB40 */ rbrew_write32(cpu->mem, _t47, cpu->r[8]);
|
|
/* 0298BB44 */ _t48 = cpu->r[11] + 0x00000010u;
|
|
/* 0298BB44 */ cpu->r[9] = rbrew_read32(cpu->mem, _t48);
|
|
/* 0298BB44 */ cpu->r[11] = _t48;
|
|
/* 0298BB48 */ _t49 = cpu->r[12] + 0x00000010u;
|
|
/* 0298BB48 */ rbrew_write32(cpu->mem, _t49, cpu->r[9]);
|
|
/* 0298BB48 */ cpu->r[12] = _t49;
|
|
/* 0298BB4C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298BB4C */ _t50 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298BB4C */ _t51 = _t50 >> (0x00000002u & 31u);
|
|
/* 0298BB4C */ _t52 = _t51 & 0x00000001u;
|
|
/* 0298BB4C */ if (_t52) goto L_0298BB2C; else goto L_0298BB50;
|
|
L_0298BB50: ; // 0x298bb50
|
|
/* 0298BB50 */ cpu->r[10] = 0x10110000u;
|
|
/* 0298BB54 */ cpu->r[10] = cpu->r[10] + 0x000043D4u;
|
|
/* 0298BB58 */ cpu->r[3] = cpu->r[28] + 0x00000034u;
|
|
/* 0298BB58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BB5C */ _t53 = cpu->r[28] + 0x00000030u;
|
|
/* 0298BB5C */ rbrew_write32(cpu->mem, _t53, cpu->r[10]);
|
|
/* 0298BB60 */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BB60 */ _t55 = _t54 & 0x00000001u;
|
|
/* 0298BB60 */ if (_t55) goto L_0298BB64; else goto L_0298BB74;
|
|
L_0298BB64: ; // 0x298bb64
|
|
/* 0298BB64 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BB68 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BB6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BB70 */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BB70 */ _t57 = _t56 & 0x00000001u;
|
|
/* 0298BB70 */ if (_t57) goto L_0298BBA0; else goto L_0298BB74;
|
|
L_0298BB74: ; // 0x298bb74
|
|
/* 0298BB74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BB78 */ _t58 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BB78 */ _t59 = _t58 & 0x00000001u;
|
|
/* 0298BB78 */ if (_t59) goto L_0298BB7C; else goto L_0298BB8C;
|
|
L_0298BB7C: ; // 0x298bb7c
|
|
/* 0298BB7C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BB80 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BB84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BB88 */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BB88 */ _t61 = _t60 & 0x00000001u;
|
|
/* 0298BB88 */ if (_t61) goto L_0298BBA0; else goto L_0298BB8C;
|
|
L_0298BB8C: ; // 0x298bb8c
|
|
/* 0298BB8C */ _t62 = cpu->r[3] + 0x00000004u;
|
|
/* 0298BB8C */ rbrew_write_f32(cpu->mem, _t62, cpu->f[31]);
|
|
/* 0298BB90 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298BB94 */ _t63 = cpu->r[10] + 0xFFFFF2F4u;
|
|
/* 0298BB94 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t63);
|
|
/* 0298BB98 */ _t64 = cpu->r[3] + 0x00000000u;
|
|
/* 0298BB98 */ rbrew_write_f32(cpu->mem, _t64, cpu->f[31]);
|
|
/* 0298BB9C */ _t65 = cpu->r[3] + 0x00000008u;
|
|
/* 0298BB9C */ rbrew_write_f32(cpu->mem, _t65, cpu->f[0]);
|
|
L_0298BBA0: ; // 0x298bba0
|
|
/* 0298BBA0 */ cpu->r[3] = cpu->r[28] + 0x00000040u;
|
|
/* 0298BBA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BBA4 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BBA4 */ _t67 = _t66 & 0x00000001u;
|
|
/* 0298BBA4 */ if (_t67) goto L_0298BBA8; else goto L_0298BBB8;
|
|
L_0298BBA8: ; // 0x298bba8
|
|
/* 0298BBA8 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BBAC */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BBB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BBB4 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BBB4 */ _t69 = _t68 & 0x00000001u;
|
|
/* 0298BBB4 */ if (_t69) goto L_0298BBDC; else goto L_0298BBB8;
|
|
L_0298BBB8: ; // 0x298bbb8
|
|
/* 0298BBB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BBBC */ _t70 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BBBC */ _t71 = _t70 & 0x00000001u;
|
|
/* 0298BBBC */ if (_t71) goto L_0298BBC0; else goto L_0298BBD0;
|
|
L_0298BBC0: ; // 0x298bbc0
|
|
/* 0298BBC0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BBC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BBC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BBCC */ _t72 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BBCC */ _t73 = _t72 & 0x00000001u;
|
|
/* 0298BBCC */ if (_t73) goto L_0298BBDC; else goto L_0298BBD0;
|
|
L_0298BBD0: ; // 0x298bbd0
|
|
/* 0298BBD0 */ _t74 = cpu->r[3] + 0x00000004u;
|
|
/* 0298BBD0 */ rbrew_write_f32(cpu->mem, _t74, cpu->f[31]);
|
|
/* 0298BBD4 */ _t75 = cpu->r[3] + 0x00000000u;
|
|
/* 0298BBD4 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[31]);
|
|
/* 0298BBD8 */ _t76 = cpu->r[3] + 0x00000008u;
|
|
/* 0298BBD8 */ rbrew_write_f32(cpu->mem, _t76, cpu->f[31]);
|
|
L_0298BBDC: ; // 0x298bbdc
|
|
/* 0298BBDC */ cpu->r[3] = cpu->r[28] + 0x0000004Cu;
|
|
/* 0298BBDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BBE0 */ _t77 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BBE0 */ _t78 = _t77 & 0x00000001u;
|
|
/* 0298BBE0 */ if (_t78) goto L_0298BBE4; else goto L_0298BBF4;
|
|
L_0298BBE4: ; // 0x298bbe4
|
|
/* 0298BBE4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BBE8 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BBEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BBF0 */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BBF0 */ _t80 = _t79 & 0x00000001u;
|
|
/* 0298BBF0 */ if (_t80) goto L_0298BC18; else goto L_0298BBF4;
|
|
L_0298BBF4: ; // 0x298bbf4
|
|
/* 0298BBF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BBF8 */ _t81 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BBF8 */ _t82 = _t81 & 0x00000001u;
|
|
/* 0298BBF8 */ if (_t82) goto L_0298BBFC; else goto L_0298BC0C;
|
|
L_0298BBFC: ; // 0x298bbfc
|
|
/* 0298BBFC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BC00 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BC04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BC08 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BC08 */ _t84 = _t83 & 0x00000001u;
|
|
/* 0298BC08 */ if (_t84) goto L_0298BC18; else goto L_0298BC0C;
|
|
L_0298BC0C: ; // 0x298bc0c
|
|
/* 0298BC0C */ _t85 = cpu->r[3] + 0x00000004u;
|
|
/* 0298BC0C */ rbrew_write_f32(cpu->mem, _t85, cpu->f[30]);
|
|
/* 0298BC10 */ _t86 = cpu->r[3] + 0x00000000u;
|
|
/* 0298BC10 */ rbrew_write_f32(cpu->mem, _t86, cpu->f[31]);
|
|
/* 0298BC14 */ _t87 = cpu->r[3] + 0x00000008u;
|
|
/* 0298BC14 */ rbrew_write_f32(cpu->mem, _t87, cpu->f[31]);
|
|
L_0298BC18: ; // 0x298bc18
|
|
/* 0298BC18 */ cpu->r[3] = cpu->r[31] + 0x00000294u;
|
|
/* 0298BC1C */ Gambit_fn_0281C814(cpu);
|
|
/* 0298BC20 */ cpu->r[3] = cpu->r[31] + 0x00000340u;
|
|
/* 0298BC20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BC24 */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BC24 */ _t89 = _t88 & 0x00000001u;
|
|
/* 0298BC24 */ if (_t89) goto L_0298BC28; else goto L_0298BC38;
|
|
L_0298BC28: ; // 0x298bc28
|
|
/* 0298BC28 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BC2C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BC30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BC34 */ _t90 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BC34 */ _t91 = _t90 & 0x00000001u;
|
|
/* 0298BC34 */ if (_t91) goto L_0298BC5C; else goto L_0298BC38;
|
|
L_0298BC38: ; // 0x298bc38
|
|
/* 0298BC38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BC3C */ _t92 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BC3C */ _t93 = _t92 & 0x00000001u;
|
|
/* 0298BC3C */ if (_t93) goto L_0298BC40; else goto L_0298BC50;
|
|
L_0298BC40: ; // 0x298bc40
|
|
/* 0298BC40 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BC44 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BC48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BC4C */ _t94 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BC4C */ _t95 = _t94 & 0x00000001u;
|
|
/* 0298BC4C */ if (_t95) goto L_0298BC5C; else goto L_0298BC50;
|
|
L_0298BC50: ; // 0x298bc50
|
|
/* 0298BC50 */ _t96 = cpu->r[3] + 0x00000004u;
|
|
/* 0298BC50 */ rbrew_write_f32(cpu->mem, _t96, cpu->f[31]);
|
|
/* 0298BC54 */ _t97 = cpu->r[3] + 0x00000000u;
|
|
/* 0298BC54 */ rbrew_write_f32(cpu->mem, _t97, cpu->f[31]);
|
|
/* 0298BC58 */ _t98 = cpu->r[3] + 0x00000008u;
|
|
/* 0298BC58 */ rbrew_write_f32(cpu->mem, _t98, cpu->f[31]);
|
|
L_0298BC5C: ; // 0x298bc5c
|
|
/* 0298BC5C */ cpu->r[12] = 0x10150000u;
|
|
/* 0298BC60 */ cpu->r[3] = cpu->r[31] + 0x0000034Cu;
|
|
/* 0298BC60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BC64 */ _t99 = cpu->r[12] + 0xFFFFF2F8u;
|
|
/* 0298BC64 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t99);
|
|
/* 0298BC68 */ _t100 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BC68 */ _t101 = _t100 & 0x00000001u;
|
|
/* 0298BC68 */ if (_t101) goto L_0298BC6C; else goto L_0298BC7C;
|
|
L_0298BC6C: ; // 0x298bc6c
|
|
/* 0298BC6C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BC70 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BC74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BC78 */ _t102 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BC78 */ _t103 = _t102 & 0x00000001u;
|
|
/* 0298BC78 */ if (_t103) goto L_0298BCA0; else goto L_0298BC7C;
|
|
L_0298BC7C: ; // 0x298bc7c
|
|
/* 0298BC7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BC80 */ _t104 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BC80 */ _t105 = _t104 & 0x00000001u;
|
|
/* 0298BC80 */ if (_t105) goto L_0298BC84; else goto L_0298BC94;
|
|
L_0298BC84: ; // 0x298bc84
|
|
/* 0298BC84 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BC88 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BC8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BC90 */ _t106 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BC90 */ _t107 = _t106 & 0x00000001u;
|
|
/* 0298BC90 */ if (_t107) goto L_0298BCA0; else goto L_0298BC94;
|
|
L_0298BC94: ; // 0x298bc94
|
|
/* 0298BC94 */ _t108 = cpu->r[3] + 0x00000004u;
|
|
/* 0298BC94 */ rbrew_write_f32(cpu->mem, _t108, cpu->f[29]);
|
|
/* 0298BC98 */ _t109 = cpu->r[3] + 0x00000000u;
|
|
/* 0298BC98 */ rbrew_write_f32(cpu->mem, _t109, cpu->f[31]);
|
|
/* 0298BC9C */ _t110 = cpu->r[3] + 0x00000008u;
|
|
/* 0298BC9C */ rbrew_write_f32(cpu->mem, _t110, cpu->f[31]);
|
|
L_0298BCA0: ; // 0x298bca0
|
|
/* 0298BCA0 */ cpu->r[3] = cpu->r[31] + 0x00000358u;
|
|
/* 0298BCA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BCA4 */ _t111 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BCA4 */ _t112 = _t111 & 0x00000001u;
|
|
/* 0298BCA4 */ if (_t112) goto L_0298BCA8; else goto L_0298BCB8;
|
|
L_0298BCA8: ; // 0x298bca8
|
|
/* 0298BCA8 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BCAC */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BCB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BCB4 */ _t113 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BCB4 */ _t114 = _t113 & 0x00000001u;
|
|
/* 0298BCB4 */ if (_t114) goto L_0298BCDC; else goto L_0298BCB8;
|
|
L_0298BCB8: ; // 0x298bcb8
|
|
/* 0298BCB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BCBC */ _t115 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BCBC */ _t116 = _t115 & 0x00000001u;
|
|
/* 0298BCBC */ if (_t116) goto L_0298BCC0; else goto L_0298BCD0;
|
|
L_0298BCC0: ; // 0x298bcc0
|
|
/* 0298BCC0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298BCC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BCC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298BCCC */ _t117 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BCCC */ _t118 = _t117 & 0x00000001u;
|
|
/* 0298BCCC */ if (_t118) goto L_0298BCDC; else goto L_0298BCD0;
|
|
L_0298BCD0: ; // 0x298bcd0
|
|
/* 0298BCD0 */ _t119 = cpu->r[3] + 0x00000004u;
|
|
/* 0298BCD0 */ rbrew_write_f32(cpu->mem, _t119, cpu->f[31]);
|
|
/* 0298BCD4 */ _t120 = cpu->r[3] + 0x00000000u;
|
|
/* 0298BCD4 */ rbrew_write_f32(cpu->mem, _t120, cpu->f[31]);
|
|
/* 0298BCD8 */ _t121 = cpu->r[3] + 0x00000008u;
|
|
/* 0298BCD8 */ rbrew_write_f32(cpu->mem, _t121, cpu->f[29]);
|
|
L_0298BCDC: ; // 0x298bcdc
|
|
/* 0298BCDC */ cpu->r[3] = cpu->r[31] + 0x00000364u;
|
|
/* 0298BCE0 */ Gambit_fn_02952E48(cpu);
|
|
/* 0298BCE4 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298BCE8 */ cpu->r[28] = cpu->r[31] + 0x00000380u;
|
|
/* 0298BCE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298BCEC */ cpu->r[0] = cpu->r[0] + 0xFFFFF2A4u;
|
|
/* 0298BCF0 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298BCF4 */ _t122 = cpu->r[31] + 0x0000037Cu;
|
|
/* 0298BCF4 */ rbrew_write32(cpu->mem, _t122, cpu->r[0]);
|
|
/* 0298BCF8 */ cpu->r[12] = cpu->r[12] + 0xFFFFF330u;
|
|
/* 0298BCFC */ _t123 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298BCFC */ rbrew_write32(cpu->mem, _t123, cpu->r[29]);
|
|
/* 0298BD00 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298BD04 */ cpu->r[26] = 0x10150000u;
|
|
/* 0298BD08 */ _t124 = cpu->r[1] + 0x00000010u;
|
|
/* 0298BD08 */ rbrew_write32(cpu->mem, _t124, cpu->r[12]);
|
|
/* 0298BD0C */ cpu->r[0] = cpu->r[0] + 0xFFFFF354u;
|
|
/* 0298BD10 */ cpu->r[25] = 0x10150000u;
|
|
/* 0298BD14 */ _t125 = cpu->r[1] + 0x00000014u;
|
|
/* 0298BD14 */ rbrew_write32(cpu->mem, _t125, cpu->r[29]);
|
|
/* 0298BD18 */ cpu->r[26] = cpu->r[26] + 0xFFFFF0B9u;
|
|
/* 0298BD1C */ cpu->r[25] = cpu->r[25] + 0xFFFFF184u;
|
|
/* 0298BD20 */ _t126 = cpu->r[1] + 0x00000018u;
|
|
/* 0298BD20 */ rbrew_write32(cpu->mem, _t126, cpu->r[0]);
|
|
/* 0298BD24 */ _t127 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BD24 */ _t128 = _t127 & 0x00000001u;
|
|
/* 0298BD24 */ if (_t128) goto L_0298BD28; else goto L_0298BD38;
|
|
L_0298BD28: ; // 0x298bd28
|
|
/* 0298BD28 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298BD2C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BD30 */ cpu->r[28] = cpu->r[3];
|
|
/* 0298BD30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298BD34 */ _t129 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BD34 */ _t130 = _t129 & 0x00000001u;
|
|
/* 0298BD34 */ if (_t130) goto L_0298BD68; else goto L_0298BD38;
|
|
L_0298BD38: ; // 0x298bd38
|
|
/* 0298BD38 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298BD3C */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298BD40 */ _t131 = cpu->r[28] + 0x00000008u;
|
|
/* 0298BD40 */ rbrew_write32(cpu->mem, _t131, cpu->r[25]);
|
|
/* 0298BD44 */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298BD48 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 0298BD4C */ _t132 = cpu->r[1] + 0x000000BCu;
|
|
/* 0298BD4C */ rbrew_write32(cpu->mem, _t132, cpu->r[29]);
|
|
/* 0298BD50 */ cpu->r[5] = cpu->r[1] + 0x00000018u;
|
|
/* 0298BD54 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298BD58 */ _t133 = cpu->r[1] + 0x000000B8u;
|
|
/* 0298BD58 */ rbrew_write32(cpu->mem, _t133, cpu->r[26]);
|
|
/* 0298BD5C */ cpu->r[6] = cpu->r[1] + 0x000000B8u;
|
|
/* 0298BD60 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298BD64 */ _t134 = cpu->r[28] + 0x0000000Cu;
|
|
/* 0298BD64 */ rbrew_write_f32(cpu->mem, _t134, cpu->f[31]);
|
|
L_0298BD68: ; // 0x298bd68
|
|
/* 0298BD68 */ cpu->r[7] = 0x10150000u;
|
|
/* 0298BD6C */ _t135 = cpu->r[1] + 0x00000024u;
|
|
/* 0298BD6C */ rbrew_write32(cpu->mem, _t135, cpu->r[29]);
|
|
/* 0298BD70 */ cpu->r[7] = cpu->r[7] + 0xFFFFF390u;
|
|
/* 0298BD74 */ _t136 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298BD74 */ rbrew_write32(cpu->mem, _t136, cpu->r[29]);
|
|
/* 0298BD78 */ cpu->r[6] = 0x10150000u;
|
|
/* 0298BD7C */ _t137 = cpu->r[1] + 0x00000028u;
|
|
/* 0298BD7C */ rbrew_write32(cpu->mem, _t137, cpu->r[7]);
|
|
/* 0298BD80 */ cpu->r[6] = cpu->r[6] + 0xFFFFF360u;
|
|
/* 0298BD84 */ cpu->r[28] = cpu->r[31] + 0x00000390u;
|
|
/* 0298BD84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298BD88 */ _t138 = cpu->r[1] + 0x00000020u;
|
|
/* 0298BD88 */ rbrew_write32(cpu->mem, _t138, cpu->r[6]);
|
|
/* 0298BD8C */ _t139 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BD8C */ _t140 = _t139 & 0x00000001u;
|
|
/* 0298BD8C */ if (_t140) goto L_0298BD90; else goto L_0298BDA0;
|
|
L_0298BD90: ; // 0x298bd90
|
|
/* 0298BD90 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298BD94 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BD98 */ cpu->r[28] = cpu->r[3];
|
|
/* 0298BD98 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298BD9C */ _t141 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BD9C */ _t142 = _t141 & 0x00000001u;
|
|
/* 0298BD9C */ if (_t142) goto L_0298BDE0; else goto L_0298BDA0;
|
|
L_0298BDA0: ; // 0x298bda0
|
|
/* 0298BDA0 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298BDA4 */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298BDA8 */ cpu->r[8] = 0x10150000u;
|
|
/* 0298BDAC */ cpu->r[3] = cpu->r[28];
|
|
/* 0298BDB0 */ cpu->r[8] = cpu->r[8] + 0xFFFFF0F4u;
|
|
/* 0298BDB4 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298BDB8 */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298BDBC */ _t143 = cpu->r[28] + 0x00000008u;
|
|
/* 0298BDBC */ rbrew_write32(cpu->mem, _t143, cpu->r[8]);
|
|
/* 0298BDC0 */ cpu->r[9] = cpu->r[9] + 0xFFFFF0B8u;
|
|
/* 0298BDC4 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298BDC8 */ _t144 = cpu->r[1] + 0x000000C4u;
|
|
/* 0298BDC8 */ rbrew_write32(cpu->mem, _t144, cpu->r[29]);
|
|
/* 0298BDCC */ cpu->r[6] = cpu->r[1] + 0x000000C0u;
|
|
/* 0298BDD0 */ cpu->r[5] = cpu->r[1] + 0x00000028u;
|
|
/* 0298BDD4 */ _t145 = cpu->r[1] + 0x000000C0u;
|
|
/* 0298BDD4 */ rbrew_write32(cpu->mem, _t145, cpu->r[9]);
|
|
/* 0298BDD8 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298BDDC */ _t146 = cpu->r[28] + 0x0000000Cu;
|
|
/* 0298BDDC */ rbrew_write32(cpu->mem, _t146, cpu->r[30]);
|
|
L_0298BDE0: ; // 0x298bde0
|
|
/* 0298BDE0 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298BDE4 */ _t147 = cpu->r[1] + 0x00000034u;
|
|
/* 0298BDE4 */ rbrew_write32(cpu->mem, _t147, cpu->r[29]);
|
|
/* 0298BDE8 */ cpu->r[0] = cpu->r[0] + 0xFFFFF3A8u;
|
|
/* 0298BDEC */ _t148 = cpu->r[1] + 0x0000003Cu;
|
|
/* 0298BDEC */ rbrew_write32(cpu->mem, _t148, cpu->r[29]);
|
|
/* 0298BDF0 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298BDF4 */ _t149 = cpu->r[1] + 0x00000038u;
|
|
/* 0298BDF4 */ rbrew_write32(cpu->mem, _t149, cpu->r[0]);
|
|
/* 0298BDF8 */ cpu->r[10] = cpu->r[10] + 0xFFFFF39Cu;
|
|
/* 0298BDFC */ cpu->r[30] = cpu->r[31] + 0x000003A0u;
|
|
/* 0298BDFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BE00 */ _t150 = cpu->r[1] + 0x00000030u;
|
|
/* 0298BE00 */ rbrew_write32(cpu->mem, _t150, cpu->r[10]);
|
|
/* 0298BE04 */ _t151 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BE04 */ _t152 = _t151 & 0x00000001u;
|
|
/* 0298BE04 */ if (_t152) goto L_0298BE08; else goto L_0298BE18;
|
|
L_0298BE08: ; // 0x298be08
|
|
/* 0298BE08 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298BE0C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BE10 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298BE10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BE14 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BE14 */ _t154 = _t153 & 0x00000001u;
|
|
/* 0298BE14 */ if (_t154) goto L_0298BE48; else goto L_0298BE18;
|
|
L_0298BE18: ; // 0x298be18
|
|
/* 0298BE18 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298BE1C */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298BE20 */ _t155 = cpu->r[30] + 0x00000008u;
|
|
/* 0298BE20 */ rbrew_write32(cpu->mem, _t155, cpu->r[25]);
|
|
/* 0298BE24 */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298BE28 */ cpu->r[4] = cpu->r[1] + 0x00000030u;
|
|
/* 0298BE2C */ _t156 = cpu->r[1] + 0x000000CCu;
|
|
/* 0298BE2C */ rbrew_write32(cpu->mem, _t156, cpu->r[29]);
|
|
/* 0298BE30 */ cpu->r[5] = cpu->r[1] + 0x00000038u;
|
|
/* 0298BE34 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298BE38 */ _t157 = cpu->r[1] + 0x000000C8u;
|
|
/* 0298BE38 */ rbrew_write32(cpu->mem, _t157, cpu->r[26]);
|
|
/* 0298BE3C */ cpu->r[6] = cpu->r[1] + 0x000000C8u;
|
|
/* 0298BE40 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298BE44 */ _t158 = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298BE44 */ rbrew_write_f32(cpu->mem, _t158, cpu->f[30]);
|
|
L_0298BE48: ; // 0x298be48
|
|
/* 0298BE48 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298BE4C */ _t159 = cpu->r[1] + 0x00000044u;
|
|
/* 0298BE4C */ rbrew_write32(cpu->mem, _t159, cpu->r[29]);
|
|
/* 0298BE50 */ cpu->r[0] = cpu->r[0] + 0xFFFFF3CCu;
|
|
/* 0298BE54 */ _t160 = cpu->r[1] + 0x0000004Cu;
|
|
/* 0298BE54 */ rbrew_write32(cpu->mem, _t160, cpu->r[29]);
|
|
/* 0298BE58 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298BE5C */ _t161 = cpu->r[1] + 0x00000048u;
|
|
/* 0298BE5C */ rbrew_write32(cpu->mem, _t161, cpu->r[0]);
|
|
/* 0298BE60 */ cpu->r[12] = cpu->r[12] + 0xFFFFF3BCu;
|
|
/* 0298BE64 */ cpu->r[30] = cpu->r[31] + 0x000003B0u;
|
|
/* 0298BE64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BE68 */ _t162 = cpu->r[1] + 0x00000040u;
|
|
/* 0298BE68 */ rbrew_write32(cpu->mem, _t162, cpu->r[12]);
|
|
/* 0298BE6C */ _t163 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BE6C */ _t164 = _t163 & 0x00000001u;
|
|
/* 0298BE6C */ if (_t164) goto L_0298BE70; else goto L_0298BE80;
|
|
L_0298BE70: ; // 0x298be70
|
|
/* 0298BE70 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298BE74 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BE78 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298BE78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BE7C */ _t165 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BE7C */ _t166 = _t165 & 0x00000001u;
|
|
/* 0298BE7C */ if (_t166) goto L_0298BEB8; else goto L_0298BE80;
|
|
L_0298BE80: ; // 0x298be80
|
|
/* 0298BE80 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298BE84 */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298BE88 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298BE8C */ _t167 = cpu->r[30] + 0x00000008u;
|
|
/* 0298BE8C */ rbrew_write32(cpu->mem, _t167, cpu->r[25]);
|
|
/* 0298BE90 */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298BE94 */ cpu->r[4] = cpu->r[1] + 0x00000040u;
|
|
/* 0298BE98 */ _t168 = cpu->r[1] + 0x000000D4u;
|
|
/* 0298BE98 */ rbrew_write32(cpu->mem, _t168, cpu->r[29]);
|
|
/* 0298BE9C */ cpu->r[5] = cpu->r[1] + 0x00000048u;
|
|
/* 0298BEA0 */ cpu->r[6] = cpu->r[1] + 0x000000D0u;
|
|
/* 0298BEA4 */ _t169 = cpu->r[1] + 0x000000D0u;
|
|
/* 0298BEA4 */ rbrew_write32(cpu->mem, _t169, cpu->r[26]);
|
|
/* 0298BEA8 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298BEAC */ cpu->r[9] = 0x10150000u;
|
|
/* 0298BEB0 */ _t170 = cpu->r[9] + 0xFFFFF2FCu;
|
|
/* 0298BEB0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t170);
|
|
/* 0298BEB4 */ _t171 = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298BEB4 */ rbrew_write_f32(cpu->mem, _t171, cpu->f[13]);
|
|
L_0298BEB8: ; // 0x298beb8
|
|
/* 0298BEB8 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298BEBC */ _t172 = cpu->r[1] + 0x00000054u;
|
|
/* 0298BEBC */ rbrew_write32(cpu->mem, _t172, cpu->r[29]);
|
|
/* 0298BEC0 */ cpu->r[0] = cpu->r[0] + 0xFFFFF3E0u;
|
|
/* 0298BEC4 */ _t173 = cpu->r[1] + 0x0000005Cu;
|
|
/* 0298BEC4 */ rbrew_write32(cpu->mem, _t173, cpu->r[29]);
|
|
/* 0298BEC8 */ cpu->r[5] = 0x10150000u;
|
|
/* 0298BECC */ _t174 = cpu->r[1] + 0x00000058u;
|
|
/* 0298BECC */ rbrew_write32(cpu->mem, _t174, cpu->r[0]);
|
|
/* 0298BED0 */ cpu->r[5] = cpu->r[5] + 0xFFFFF33Cu;
|
|
/* 0298BED4 */ cpu->r[30] = cpu->r[31] + 0x000003C0u;
|
|
/* 0298BED4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BED8 */ _t175 = cpu->r[1] + 0x00000050u;
|
|
/* 0298BED8 */ rbrew_write32(cpu->mem, _t175, cpu->r[5]);
|
|
/* 0298BEDC */ _t176 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BEDC */ _t177 = _t176 & 0x00000001u;
|
|
/* 0298BEDC */ if (_t177) goto L_0298BEE0; else goto L_0298BEF0;
|
|
L_0298BEE0: ; // 0x298bee0
|
|
/* 0298BEE0 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298BEE4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BEE8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298BEE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BEEC */ _t178 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BEEC */ _t179 = _t178 & 0x00000001u;
|
|
/* 0298BEEC */ if (_t179) goto L_0298BF28; else goto L_0298BEF0;
|
|
L_0298BEF0: ; // 0x298bef0
|
|
/* 0298BEF0 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298BEF4 */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298BEF8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298BEFC */ _t180 = cpu->r[30] + 0x00000008u;
|
|
/* 0298BEFC */ rbrew_write32(cpu->mem, _t180, cpu->r[25]);
|
|
/* 0298BF00 */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298BF04 */ cpu->r[4] = cpu->r[1] + 0x00000050u;
|
|
/* 0298BF08 */ _t181 = cpu->r[1] + 0x000000DCu;
|
|
/* 0298BF08 */ rbrew_write32(cpu->mem, _t181, cpu->r[29]);
|
|
/* 0298BF0C */ cpu->r[5] = cpu->r[1] + 0x00000058u;
|
|
/* 0298BF10 */ cpu->r[6] = cpu->r[1] + 0x000000D8u;
|
|
/* 0298BF14 */ _t182 = cpu->r[1] + 0x000000D8u;
|
|
/* 0298BF14 */ rbrew_write32(cpu->mem, _t182, cpu->r[26]);
|
|
/* 0298BF18 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298BF1C */ cpu->r[6] = 0x10150000u;
|
|
/* 0298BF20 */ _t183 = cpu->r[6] + 0xFFFFF300u;
|
|
/* 0298BF20 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t183);
|
|
/* 0298BF24 */ _t184 = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298BF24 */ rbrew_write_f32(cpu->mem, _t184, cpu->f[12]);
|
|
L_0298BF28: ; // 0x298bf28
|
|
/* 0298BF28 */ _t185 = cpu->r[1] + 0x00000064u;
|
|
/* 0298BF28 */ rbrew_write32(cpu->mem, _t185, cpu->r[29]);
|
|
/* 0298BF2C */ cpu->r[7] = 0x10150000u;
|
|
/* 0298BF30 */ cpu->r[30] = cpu->r[31] + 0x000003D0u;
|
|
/* 0298BF30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BF34 */ _t186 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0298BF34 */ rbrew_write32(cpu->mem, _t186, cpu->r[29]);
|
|
/* 0298BF38 */ cpu->r[7] = cpu->r[7] + 0xFFFFF320u;
|
|
/* 0298BF3C */ cpu->r[28] = 0x10150000u;
|
|
/* 0298BF40 */ cpu->r[8] = 0x10150000u;
|
|
/* 0298BF44 */ _t187 = cpu->r[1] + 0x00000060u;
|
|
/* 0298BF44 */ rbrew_write32(cpu->mem, _t187, cpu->r[7]);
|
|
/* 0298BF48 */ cpu->r[27] = 0x10150000u;
|
|
/* 0298BF4C */ cpu->r[8] = cpu->r[8] + 0xFFFFF3F4u;
|
|
/* 0298BF50 */ cpu->r[27] = cpu->r[27] + 0xFFFFF214u;
|
|
/* 0298BF54 */ cpu->r[28] = cpu->r[28] + 0xFFFFF0BAu;
|
|
/* 0298BF58 */ _t188 = cpu->r[1] + 0x00000068u;
|
|
/* 0298BF58 */ rbrew_write32(cpu->mem, _t188, cpu->r[8]);
|
|
/* 0298BF5C */ _t189 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BF5C */ _t190 = _t189 & 0x00000001u;
|
|
/* 0298BF5C */ if (_t190) goto L_0298BF60; else goto L_0298BF70;
|
|
L_0298BF60: ; // 0x298bf60
|
|
/* 0298BF60 */ cpu->r[3] = 0x00000018u;
|
|
/* 0298BF64 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BF68 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298BF68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BF6C */ _t191 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BF6C */ _t192 = _t191 & 0x00000001u;
|
|
/* 0298BF6C */ if (_t192) goto L_0298BFA8; else goto L_0298BF70;
|
|
L_0298BF70: ; // 0x298bf70
|
|
/* 0298BF70 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298BF74 */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298BF78 */ _t193 = cpu->r[30] + 0x00000008u;
|
|
/* 0298BF78 */ rbrew_write32(cpu->mem, _t193, cpu->r[27]);
|
|
/* 0298BF7C */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298BF80 */ cpu->r[4] = cpu->r[1] + 0x00000060u;
|
|
/* 0298BF84 */ _t194 = cpu->r[1] + 0x000000E4u;
|
|
/* 0298BF84 */ rbrew_write32(cpu->mem, _t194, cpu->r[29]);
|
|
/* 0298BF88 */ cpu->r[5] = cpu->r[1] + 0x00000068u;
|
|
/* 0298BF8C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298BF90 */ _t195 = cpu->r[1] + 0x000000E0u;
|
|
/* 0298BF90 */ rbrew_write32(cpu->mem, _t195, cpu->r[28]);
|
|
/* 0298BF94 */ cpu->r[6] = cpu->r[1] + 0x000000E0u;
|
|
/* 0298BF98 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298BF9C */ _t196 = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298BF9C */ rbrew_write_f32(cpu->mem, _t196, cpu->f[31]);
|
|
/* 0298BFA0 */ _t197 = cpu->r[30] + 0x00000014u;
|
|
/* 0298BFA0 */ rbrew_write_f32(cpu->mem, _t197, cpu->f[31]);
|
|
/* 0298BFA4 */ _t198 = cpu->r[30] + 0x00000010u;
|
|
/* 0298BFA4 */ rbrew_write_f32(cpu->mem, _t198, cpu->f[31]);
|
|
L_0298BFA8: ; // 0x298bfa8
|
|
/* 0298BFA8 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298BFAC */ _t199 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298BFAC */ rbrew_write32(cpu->mem, _t199, cpu->r[29]);
|
|
/* 0298BFB0 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298BFB4 */ _t200 = cpu->r[12] + 0xFFFFF304u;
|
|
/* 0298BFB4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t200);
|
|
/* 0298BFB8 */ cpu->r[9] = cpu->r[9] + 0xFFFFF310u;
|
|
/* 0298BFBC */ _t201 = cpu->r[1] + 0x00000074u;
|
|
/* 0298BFBC */ rbrew_write32(cpu->mem, _t201, cpu->r[29]);
|
|
/* 0298BFC0 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298BFC4 */ _t202 = cpu->r[1] + 0x00000070u;
|
|
/* 0298BFC4 */ rbrew_write32(cpu->mem, _t202, cpu->r[9]);
|
|
/* 0298BFC8 */ cpu->r[10] = cpu->r[10] + 0xFFFFF36Cu;
|
|
/* 0298BFCC */ cpu->r[30] = cpu->r[31] + 0x000003E8u;
|
|
/* 0298BFCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BFD0 */ _t203 = cpu->r[1] + 0x00000078u;
|
|
/* 0298BFD0 */ rbrew_write32(cpu->mem, _t203, cpu->r[10]);
|
|
/* 0298BFD4 */ _t204 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BFD4 */ _t205 = _t204 & 0x00000001u;
|
|
/* 0298BFD4 */ if (_t205) goto L_0298BFD8; else goto L_0298BFE8;
|
|
L_0298BFD8: ; // 0x298bfd8
|
|
/* 0298BFD8 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298BFDC */ Gambit_fn_02801A78(cpu);
|
|
/* 0298BFE0 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298BFE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298BFE4 */ _t206 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298BFE4 */ _t207 = _t206 & 0x00000001u;
|
|
/* 0298BFE4 */ if (_t207) goto L_0298C018; else goto L_0298BFE8;
|
|
L_0298BFE8: ; // 0x298bfe8
|
|
/* 0298BFE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298BFEC */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298BFF0 */ _t208 = cpu->r[30] + 0x00000008u;
|
|
/* 0298BFF0 */ rbrew_write32(cpu->mem, _t208, cpu->r[25]);
|
|
/* 0298BFF4 */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298BFF8 */ cpu->r[4] = cpu->r[1] + 0x00000070u;
|
|
/* 0298BFFC */ _t209 = cpu->r[1] + 0x000000ECu;
|
|
/* 0298BFFC */ rbrew_write32(cpu->mem, _t209, cpu->r[29]);
|
|
/* 0298C000 */ cpu->r[5] = cpu->r[1] + 0x00000078u;
|
|
/* 0298C004 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C008 */ _t210 = cpu->r[1] + 0x000000E8u;
|
|
/* 0298C008 */ rbrew_write32(cpu->mem, _t210, cpu->r[26]);
|
|
/* 0298C00C */ cpu->r[6] = cpu->r[1] + 0x000000E8u;
|
|
/* 0298C010 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298C014 */ _t211 = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298C014 */ rbrew_write_f32(cpu->mem, _t211, cpu->f[31]);
|
|
L_0298C018: ; // 0x298c018
|
|
/* 0298C018 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298C01C */ _t212 = cpu->r[1] + 0x00000084u;
|
|
/* 0298C01C */ rbrew_write32(cpu->mem, _t212, cpu->r[29]);
|
|
/* 0298C020 */ cpu->r[0] = cpu->r[0] + 0xFFFFF378u;
|
|
/* 0298C024 */ _t213 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298C024 */ rbrew_write32(cpu->mem, _t213, cpu->r[29]);
|
|
/* 0298C028 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298C02C */ _t214 = cpu->r[1] + 0x00000088u;
|
|
/* 0298C02C */ rbrew_write32(cpu->mem, _t214, cpu->r[0]);
|
|
/* 0298C030 */ cpu->r[11] = cpu->r[11] + 0xFFFFF318u;
|
|
/* 0298C034 */ cpu->r[30] = cpu->r[31] + 0x000003F8u;
|
|
/* 0298C034 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298C038 */ _t215 = cpu->r[1] + 0x00000080u;
|
|
/* 0298C038 */ rbrew_write32(cpu->mem, _t215, cpu->r[11]);
|
|
/* 0298C03C */ _t216 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C03C */ _t217 = _t216 & 0x00000001u;
|
|
/* 0298C03C */ if (_t217) goto L_0298C040; else goto L_0298C050;
|
|
L_0298C040: ; // 0x298c040
|
|
/* 0298C040 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298C044 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298C048 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298C048 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298C04C */ _t218 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C04C */ _t219 = _t218 & 0x00000001u;
|
|
/* 0298C04C */ if (_t219) goto L_0298C080; else goto L_0298C050;
|
|
L_0298C050: ; // 0x298c050
|
|
/* 0298C050 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C054 */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298C058 */ _t220 = cpu->r[30] + 0x00000008u;
|
|
/* 0298C058 */ rbrew_write32(cpu->mem, _t220, cpu->r[25]);
|
|
/* 0298C05C */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298C060 */ cpu->r[4] = cpu->r[1] + 0x00000080u;
|
|
/* 0298C064 */ _t221 = cpu->r[1] + 0x000000F4u;
|
|
/* 0298C064 */ rbrew_write32(cpu->mem, _t221, cpu->r[29]);
|
|
/* 0298C068 */ cpu->r[5] = cpu->r[1] + 0x00000088u;
|
|
/* 0298C06C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C070 */ _t222 = cpu->r[1] + 0x000000F0u;
|
|
/* 0298C070 */ rbrew_write32(cpu->mem, _t222, cpu->r[26]);
|
|
/* 0298C074 */ cpu->r[6] = cpu->r[1] + 0x000000F0u;
|
|
/* 0298C078 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298C07C */ _t223 = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298C07C */ rbrew_write_f32(cpu->mem, _t223, cpu->f[31]);
|
|
L_0298C080: ; // 0x298c080
|
|
/* 0298C080 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298C084 */ _t224 = cpu->r[1] + 0x00000094u;
|
|
/* 0298C084 */ rbrew_write32(cpu->mem, _t224, cpu->r[29]);
|
|
/* 0298C088 */ cpu->r[0] = cpu->r[0] + 0xFFFFF404u;
|
|
/* 0298C08C */ _t225 = cpu->r[1] + 0x0000009Cu;
|
|
/* 0298C08C */ rbrew_write32(cpu->mem, _t225, cpu->r[29]);
|
|
/* 0298C090 */ cpu->r[5] = 0x10150000u;
|
|
/* 0298C094 */ _t226 = cpu->r[1] + 0x00000098u;
|
|
/* 0298C094 */ rbrew_write32(cpu->mem, _t226, cpu->r[0]);
|
|
/* 0298C098 */ cpu->r[5] = cpu->r[5] + 0xFFFFF308u;
|
|
/* 0298C09C */ cpu->r[30] = cpu->r[31] + 0x00000408u;
|
|
/* 0298C09C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298C0A0 */ _t227 = cpu->r[1] + 0x00000090u;
|
|
/* 0298C0A0 */ rbrew_write32(cpu->mem, _t227, cpu->r[5]);
|
|
/* 0298C0A4 */ _t228 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C0A4 */ _t229 = _t228 & 0x00000001u;
|
|
/* 0298C0A4 */ if (_t229) goto L_0298C0A8; else goto L_0298C0B8;
|
|
L_0298C0A8: ; // 0x298c0a8
|
|
/* 0298C0A8 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298C0AC */ Gambit_fn_02801A78(cpu);
|
|
/* 0298C0B0 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298C0B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298C0B4 */ _t230 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C0B4 */ _t231 = _t230 & 0x00000001u;
|
|
/* 0298C0B4 */ if (_t231) goto L_0298C0E8; else goto L_0298C0B8;
|
|
L_0298C0B8: ; // 0x298c0b8
|
|
/* 0298C0B8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C0BC */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298C0C0 */ _t232 = cpu->r[30] + 0x00000008u;
|
|
/* 0298C0C0 */ rbrew_write32(cpu->mem, _t232, cpu->r[25]);
|
|
/* 0298C0C4 */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298C0C8 */ cpu->r[4] = cpu->r[1] + 0x00000090u;
|
|
/* 0298C0CC */ _t233 = cpu->r[1] + 0x000000FCu;
|
|
/* 0298C0CC */ rbrew_write32(cpu->mem, _t233, cpu->r[29]);
|
|
/* 0298C0D0 */ cpu->r[5] = cpu->r[1] + 0x00000098u;
|
|
/* 0298C0D4 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C0D8 */ _t234 = cpu->r[1] + 0x000000F8u;
|
|
/* 0298C0D8 */ rbrew_write32(cpu->mem, _t234, cpu->r[26]);
|
|
/* 0298C0DC */ cpu->r[6] = cpu->r[1] + 0x000000F8u;
|
|
/* 0298C0E0 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298C0E4 */ _t235 = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298C0E4 */ rbrew_write_f32(cpu->mem, _t235, cpu->f[30]);
|
|
L_0298C0E8: ; // 0x298c0e8
|
|
/* 0298C0E8 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298C0EC */ _t236 = cpu->r[1] + 0x000000A4u;
|
|
/* 0298C0EC */ rbrew_write32(cpu->mem, _t236, cpu->r[29]);
|
|
/* 0298C0F0 */ cpu->r[10] = cpu->r[10] + 0xFFFFF410u;
|
|
/* 0298C0F4 */ _t237 = cpu->r[1] + 0x000000ACu;
|
|
/* 0298C0F4 */ rbrew_write32(cpu->mem, _t237, cpu->r[29]);
|
|
/* 0298C0F8 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298C0FC */ _t238 = cpu->r[1] + 0x000000A8u;
|
|
/* 0298C0FC */ rbrew_write32(cpu->mem, _t238, cpu->r[10]);
|
|
/* 0298C100 */ cpu->r[0] = cpu->r[0] + 0xFFFFF384u;
|
|
/* 0298C104 */ cpu->r[30] = cpu->r[31] + 0x00000418u;
|
|
/* 0298C104 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298C108 */ _t239 = cpu->r[1] + 0x000000A0u;
|
|
/* 0298C108 */ rbrew_write32(cpu->mem, _t239, cpu->r[0]);
|
|
/* 0298C10C */ _t240 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C10C */ _t241 = _t240 & 0x00000001u;
|
|
/* 0298C10C */ if (_t241) goto L_0298C110; else goto L_0298C120;
|
|
L_0298C110: ; // 0x298c110
|
|
/* 0298C110 */ cpu->r[3] = 0x00000018u;
|
|
/* 0298C114 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298C118 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298C118 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298C11C */ _t242 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C11C */ _t243 = _t242 & 0x00000001u;
|
|
/* 0298C11C */ if (_t243) goto L_0298C158; else goto L_0298C120;
|
|
L_0298C120: ; // 0x298c120
|
|
/* 0298C120 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C124 */ Gambit_fn_0294F7F0(cpu);
|
|
/* 0298C128 */ _t244 = cpu->r[30] + 0x00000008u;
|
|
/* 0298C128 */ rbrew_write32(cpu->mem, _t244, cpu->r[27]);
|
|
/* 0298C12C */ cpu->r[7] = cpu->r[31] + 0x00000364u;
|
|
/* 0298C130 */ cpu->r[4] = cpu->r[1] + 0x000000A0u;
|
|
/* 0298C134 */ _t245 = cpu->r[1] + 0x00000104u;
|
|
/* 0298C134 */ rbrew_write32(cpu->mem, _t245, cpu->r[29]);
|
|
/* 0298C138 */ cpu->r[5] = cpu->r[1] + 0x000000A8u;
|
|
/* 0298C13C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C140 */ _t246 = cpu->r[1] + 0x00000100u;
|
|
/* 0298C140 */ rbrew_write32(cpu->mem, _t246, cpu->r[28]);
|
|
/* 0298C144 */ cpu->r[6] = cpu->r[1] + 0x00000100u;
|
|
/* 0298C148 */ Gambit_fn_0294F794(cpu);
|
|
/* 0298C14C */ _t247 = cpu->r[30] + 0x0000000Cu;
|
|
/* 0298C14C */ rbrew_write_f32(cpu->mem, _t247, cpu->f[30]);
|
|
/* 0298C150 */ _t248 = cpu->r[30] + 0x00000014u;
|
|
/* 0298C150 */ rbrew_write_f32(cpu->mem, _t248, cpu->f[30]);
|
|
/* 0298C154 */ _t249 = cpu->r[30] + 0x00000010u;
|
|
/* 0298C154 */ rbrew_write_f32(cpu->mem, _t249, cpu->f[30]);
|
|
L_0298C158: ; // 0x298c158
|
|
/* 0298C158 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298C15C */ _t250 = cpu->r[1] + 0x000000B4u;
|
|
/* 0298C15C */ rbrew_write32(cpu->mem, _t250, cpu->r[29]);
|
|
/* 0298C160 */ cpu->r[3] = cpu->r[31] + 0x00000090u;
|
|
/* 0298C164 */ cpu->r[0] = cpu->r[0] + 0xFFFFF424u;
|
|
/* 0298C168 */ cpu->r[4] = cpu->r[31] + 0x00000364u;
|
|
/* 0298C16C */ cpu->r[5] = cpu->r[1] + 0x000000B0u;
|
|
/* 0298C170 */ _t251 = cpu->r[1] + 0x000000B0u;
|
|
/* 0298C170 */ rbrew_write32(cpu->mem, _t251, cpu->r[0]);
|
|
/* 0298C174 */ Gambit_fn_0295225C(cpu);
|
|
L_0298C178: ; // 0x298c178
|
|
/* 0298C178 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298C17C */ /* nop */
|
|
/* 0298C180 */ _t252 = cpu->r[1] + 0x00000130u;
|
|
/* 0298C180 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t252);
|
|
/* 0298C184 */ _t253 = cpu->r[1] + 0x00000140u;
|
|
/* 0298C184 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t253);
|
|
/* 0298C188 */ _t254 = cpu->r[1] + 0x00000128u;
|
|
/* 0298C188 */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t254);
|
|
/* 0298C18C */ _t255 = cpu->r[1] + 0x00000150u;
|
|
/* 0298C18C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t255);
|
|
/* 0298C190 */ _t256 = cpu->r[1] + 0x00000138u;
|
|
/* 0298C190 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t256);
|
|
/* 0298C194 */ _t257 = cpu->r[1] + 0x00000148u;
|
|
/* 0298C194 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t257);
|
|
/* 0298C198 */ _t258 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298C198 */ _t259 = _t258 & 0x00000001u;
|
|
/* 0298C198 */ if (_t259) goto L_0298C19C; // else: addr-0 trap, fall-through
|
|
L_0298C19C: ; // 0x298c19c
|
|
/* 0298C19C */ _t260 = cpu->r[1] + 0x0000015Cu;
|
|
/* 0298C19C */ cpu->r[0] = rbrew_read32(cpu->mem, _t260);
|
|
/* 0298C1A0 */ cpu->lr = cpu->r[0];
|
|
/* 0298C1A4 */ cpu->r[1] = cpu->r[1] + 0x00000158u;
|
|
/* 0298C1A8 */ return;
|
|
}
|
|
|
|
// fn_0298C1AC @ 0x298c1ac
|
|
void Gambit_fn_0298C1AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_0298C1AC: ; // 0x298c1ac
|
|
/* 0298C1AC */ cpu->r[0] = cpu->lr;
|
|
/* 0298C1B0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298C1B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298C1B0 */ cpu->r[1] = _t0;
|
|
/* 0298C1B4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C1B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298C1B8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C1B8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298C1BC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C1BC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298C1C0 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298C1C4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C1C4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298C1C8 */ cpu->r[29] = cpu->r[5];
|
|
/* 0298C1CC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298C1D0 */ cpu->r[4] = cpu->r[29];
|
|
/* 0298C1D4 */ Gambit_fn_02C92840(cpu);
|
|
/* 0298C1D8 */ cpu->r[3] = cpu->r[30] + 0x00000224u;
|
|
/* 0298C1DC */ cpu->r[4] = cpu->r[31];
|
|
/* 0298C1E0 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298C1E4 */ cpu->r[6] = 0x00000004u;
|
|
/* 0298C1E8 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298C1EC */ cpu->r[5] = 0x00000004u;
|
|
/* 0298C1F0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298C1F4 */ cpu->r[4] = cpu->r[29];
|
|
/* 0298C1F8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298C1FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C200 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C200 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298C200 */ if (_t6) goto L_0298C208; else goto L_0298C204;
|
|
L_0298C204: ; // 0x298c204
|
|
/* 0298C204 */ Gambit_fn_02999058(cpu);
|
|
L_0298C208: ; // 0x298c208
|
|
/* 0298C208 */ cpu->r[4] = 0x00000040u;
|
|
/* 0298C20C */ cpu->r[5] = cpu->r[29];
|
|
/* 0298C210 */ _t7 = cpu->r[30] + 0x00000230u;
|
|
/* 0298C210 */ rbrew_write32(cpu->mem, _t7, cpu->r[3]);
|
|
/* 0298C214 */ Gambit_fn_0299915C(cpu);
|
|
/* 0298C218 */ cpu->r[4] = cpu->r[29];
|
|
/* 0298C21C */ cpu->r[3] = 0x0000002Cu;
|
|
/* 0298C220 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298C224 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298C228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C22C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C22C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298C22C */ if (_t9) goto L_0298C234; else goto L_0298C230;
|
|
L_0298C230: ; // 0x298c230
|
|
/* 0298C230 */ Gambit_fn_0299707C(cpu);
|
|
L_0298C234: ; // 0x298c234
|
|
/* 0298C234 */ cpu->r[4] = 0x00000040u;
|
|
/* 0298C238 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298C23C */ _t10 = cpu->r[30] + 0x00000234u;
|
|
/* 0298C23C */ rbrew_write32(cpu->mem, _t10, cpu->r[3]);
|
|
/* 0298C240 */ Gambit_fn_029971C4(cpu);
|
|
/* 0298C244 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298C248 */ _t11 = cpu->r[30] + 0x00000238u;
|
|
/* 0298C248 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 0298C24C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C24C */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298C250 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C250 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298C254 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C254 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298C258 */ cpu->lr = cpu->r[0];
|
|
/* 0298C25C */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C25C */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298C260 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298C264 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298C268 */ return;
|
|
}
|
|
|
|
// fn_0298C1B0 @ 0x298c1b0
|
|
void Gambit_fn_0298C1B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_0298C1B0: ; // 0x298c1b0
|
|
/* 0298C1B0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298C1B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298C1B0 */ cpu->r[1] = _t0;
|
|
/* 0298C1B4 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C1B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298C1B8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C1B8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298C1BC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C1BC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298C1C0 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298C1C4 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C1C4 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298C1C8 */ cpu->r[29] = cpu->r[5];
|
|
/* 0298C1CC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298C1D0 */ cpu->r[4] = cpu->r[29];
|
|
/* 0298C1D4 */ Gambit_fn_02C92840(cpu);
|
|
/* 0298C1D8 */ cpu->r[3] = cpu->r[30] + 0x00000224u;
|
|
/* 0298C1DC */ cpu->r[4] = cpu->r[31];
|
|
/* 0298C1E0 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298C1E4 */ cpu->r[6] = 0x00000004u;
|
|
/* 0298C1E8 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298C1EC */ cpu->r[5] = 0x00000004u;
|
|
/* 0298C1F0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298C1F4 */ cpu->r[4] = cpu->r[29];
|
|
/* 0298C1F8 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298C1FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C200 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C200 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298C200 */ if (_t6) goto L_0298C208; else goto L_0298C204;
|
|
L_0298C204: ; // 0x298c204
|
|
/* 0298C204 */ Gambit_fn_02999058(cpu);
|
|
L_0298C208: ; // 0x298c208
|
|
/* 0298C208 */ cpu->r[4] = 0x00000040u;
|
|
/* 0298C20C */ cpu->r[5] = cpu->r[29];
|
|
/* 0298C210 */ _t7 = cpu->r[30] + 0x00000230u;
|
|
/* 0298C210 */ rbrew_write32(cpu->mem, _t7, cpu->r[3]);
|
|
/* 0298C214 */ Gambit_fn_0299915C(cpu);
|
|
/* 0298C218 */ cpu->r[4] = cpu->r[29];
|
|
/* 0298C21C */ cpu->r[3] = 0x0000002Cu;
|
|
/* 0298C220 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298C224 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298C228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C22C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C22C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298C22C */ if (_t9) goto L_0298C234; else goto L_0298C230;
|
|
L_0298C230: ; // 0x298c230
|
|
/* 0298C230 */ Gambit_fn_0299707C(cpu);
|
|
L_0298C234: ; // 0x298c234
|
|
/* 0298C234 */ cpu->r[4] = 0x00000040u;
|
|
/* 0298C238 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298C23C */ _t10 = cpu->r[30] + 0x00000234u;
|
|
/* 0298C23C */ rbrew_write32(cpu->mem, _t10, cpu->r[3]);
|
|
/* 0298C240 */ Gambit_fn_029971C4(cpu);
|
|
/* 0298C244 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298C248 */ _t11 = cpu->r[30] + 0x00000238u;
|
|
/* 0298C248 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 0298C24C */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C24C */ cpu->r[29] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298C250 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C250 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298C254 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C254 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298C258 */ cpu->lr = cpu->r[0];
|
|
/* 0298C25C */ _t15 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C25C */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298C260 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298C264 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298C268 */ return;
|
|
}
|
|
|
|
// fn_0298C26C @ 0x298c26c
|
|
void Gambit_fn_0298C26C(CPUState* cpu) {
|
|
uint32_t _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_0298C26C: ; // 0x298c26c
|
|
/* 0298C26C */ cpu->r[0] = cpu->lr;
|
|
/* 0298C270 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298C270 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298C270 */ cpu->r[1] = _t0;
|
|
/* 0298C274 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C274 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298C278 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C278 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 0298C27C */ cpu->r[30] = cpu->r[4];
|
|
/* 0298C27C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298C280 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C280 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298C284 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C284 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298C288 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298C28C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C28C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298C28C */ if (_t6) goto L_0298C290; else goto L_0298C2BC;
|
|
L_0298C290: ; // 0x298c290
|
|
/* 0298C290 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298C294 */ _t7 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 0298C294 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298C298 */ Gambit_fn_02826F20(cpu);
|
|
/* 0298C29C */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C29C */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 0298C2A0 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298C2A4 */ cpu->r[4] = 0x00000430u;
|
|
/* 0298C2A8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298C2AC */ Gambit_fn_0297EA50(cpu);
|
|
/* 0298C2B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C2B4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2B4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298C2B4 */ if (_t10) goto L_0298C2B8; else goto L_0298C2D8;
|
|
L_0298C2B8: ; // 0x298c2b8
|
|
/* 0298C2B8 */ goto L_0298C318;
|
|
L_0298C2BC: ; // 0x298c2bc
|
|
/* 0298C2BC */ cpu->r[5] = 0x00000004u;
|
|
/* 0298C2C0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298C2C4 */ cpu->r[4] = 0x00000430u;
|
|
/* 0298C2C8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C2C8 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 0298C2CC */ Gambit_fn_0297EA50(cpu);
|
|
/* 0298C2D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C2D4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2D4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298C2D4 */ if (_t13) goto L_0298C318; else goto L_0298C2D8;
|
|
L_0298C2D8: ; // 0x298c2d8
|
|
/* 0298C2D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C2DC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2DC */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298C2DC */ rbrew_dispatch(cpu, (_t15) ? 0x0298c2e0u : 0x0298b9d8u); return;
|
|
/* 0298C2E0 */ _t16 = cpu->r[29] + 0x00000000u;
|
|
/* 0298C2E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298C2E4 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298C2E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298C2EC */ Gambit_fn_0298C1AC(cpu);
|
|
/* 0298C2F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C2F4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2F4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298C2F4 */ if (_t18) goto L_0298C2F8; else goto L_0298C338;
|
|
L_0298C2F8: ; // 0x298c2f8
|
|
/* 0298C2F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298C2FC */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2FC */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298C2FC */ if (_t20) goto L_0298C318; else goto L_0298C300;
|
|
L_0298C300: ; // 0x298c300
|
|
/* 0298C300 */ _t21 = cpu->r[31] + 0x00000088u;
|
|
/* 0298C300 */ cpu->r[11] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298C304 */ _t22 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0298C304 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298C308 */ cpu->ctr = cpu->r[12];
|
|
/* 0298C30C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298C310 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298C314 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298C318: ; // 0x298c318
|
|
/* 0298C318 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C318 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298C31C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C31C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298C320 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C320 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298C324 */ cpu->lr = cpu->r[0];
|
|
/* 0298C328 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C328 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298C32C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298C330 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298C334 */ return;
|
|
L_0298C338: ; // 0x298c338
|
|
/* 0298C338 */ _t27 = cpu->r[31] + 0x00000000u;
|
|
/* 0298C338 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298C33C */ cpu->r[0] = cpu->r[0] | 0x00000001u;
|
|
/* 0298C340 */ _t28 = cpu->r[31] + 0x00000000u;
|
|
/* 0298C340 */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 0298C344 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C344 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 0298C348 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C348 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298C34C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298C350 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C350 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298C354 */ cpu->lr = cpu->r[0];
|
|
/* 0298C358 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C358 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298C35C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298C360 */ return;
|
|
}
|
|
|
|
// fn_0298C270 @ 0x298c270
|
|
void Gambit_fn_0298C270(CPUState* cpu) {
|
|
uint32_t _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_0298C270: ; // 0x298c270
|
|
/* 0298C270 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298C270 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298C270 */ cpu->r[1] = _t0;
|
|
/* 0298C274 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C274 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298C278 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C278 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 0298C27C */ cpu->r[30] = cpu->r[4];
|
|
/* 0298C27C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298C280 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C280 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298C284 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C284 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298C288 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298C28C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C28C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298C28C */ if (_t6) goto L_0298C290; else goto L_0298C2BC;
|
|
L_0298C290: ; // 0x298c290
|
|
/* 0298C290 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298C294 */ _t7 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 0298C294 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298C298 */ Gambit_fn_02826F20(cpu);
|
|
/* 0298C29C */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C29C */ rbrew_write32(cpu->mem, _t8, cpu->r[3]);
|
|
/* 0298C2A0 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298C2A4 */ cpu->r[4] = 0x00000430u;
|
|
/* 0298C2A8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298C2AC */ Gambit_fn_0297EA50(cpu);
|
|
/* 0298C2B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C2B4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2B4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298C2B4 */ if (_t10) goto L_0298C2B8; else goto L_0298C2D8;
|
|
L_0298C2B8: ; // 0x298c2b8
|
|
/* 0298C2B8 */ goto L_0298C318;
|
|
L_0298C2BC: ; // 0x298c2bc
|
|
/* 0298C2BC */ cpu->r[5] = 0x00000004u;
|
|
/* 0298C2C0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298C2C4 */ cpu->r[4] = 0x00000430u;
|
|
/* 0298C2C8 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C2C8 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 0298C2CC */ Gambit_fn_0297EA50(cpu);
|
|
/* 0298C2D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C2D4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2D4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298C2D4 */ if (_t13) goto L_0298C318; else goto L_0298C2D8;
|
|
L_0298C2D8: ; // 0x298c2d8
|
|
/* 0298C2D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C2DC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2DC */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298C2DC */ rbrew_dispatch(cpu, (_t15) ? 0x0298c2e0u : 0x0298b9d8u); return;
|
|
/* 0298C2E0 */ _t16 = cpu->r[29] + 0x00000000u;
|
|
/* 0298C2E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298C2E4 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298C2E8 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298C2EC */ Gambit_fn_0298C1AC(cpu);
|
|
/* 0298C2F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C2F4 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2F4 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298C2F4 */ if (_t18) goto L_0298C2F8; else goto L_0298C338;
|
|
L_0298C2F8: ; // 0x298c2f8
|
|
/* 0298C2F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298C2FC */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C2FC */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298C2FC */ if (_t20) goto L_0298C318; else goto L_0298C300;
|
|
L_0298C300: ; // 0x298c300
|
|
/* 0298C300 */ _t21 = cpu->r[31] + 0x00000088u;
|
|
/* 0298C300 */ cpu->r[11] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298C304 */ _t22 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0298C304 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298C308 */ cpu->ctr = cpu->r[12];
|
|
/* 0298C30C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298C310 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298C314 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298C318: ; // 0x298c318
|
|
/* 0298C318 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C318 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298C31C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C31C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298C320 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C320 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298C324 */ cpu->lr = cpu->r[0];
|
|
/* 0298C328 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C328 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298C32C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298C330 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298C334 */ return;
|
|
L_0298C338: ; // 0x298c338
|
|
/* 0298C338 */ _t27 = cpu->r[31] + 0x00000000u;
|
|
/* 0298C338 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298C33C */ cpu->r[0] = cpu->r[0] | 0x00000001u;
|
|
/* 0298C340 */ _t28 = cpu->r[31] + 0x00000000u;
|
|
/* 0298C340 */ rbrew_write32(cpu->mem, _t28, cpu->r[0]);
|
|
/* 0298C344 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C344 */ cpu->r[29] = rbrew_read32(cpu->mem, _t29);
|
|
/* 0298C348 */ _t30 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C348 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298C34C */ cpu->r[3] = cpu->r[31];
|
|
/* 0298C350 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C350 */ cpu->r[30] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298C354 */ cpu->lr = cpu->r[0];
|
|
/* 0298C358 */ _t32 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C358 */ cpu->r[31] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298C35C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298C360 */ return;
|
|
}
|
|
|
|
// fn_0298C364 @ 0x298c364
|
|
void Gambit_fn_0298C364(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298C364: ; // 0x298c364
|
|
/* 0298C364 */ _t0 = cpu->r[3] + 0x00000224u;
|
|
/* 0298C364 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298C368 */ _t1 = cpu->r[3] + 0x00000228u;
|
|
/* 0298C368 */ cpu->r[0] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298C36C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[0]);
|
|
/* 0298C370 */ _t2 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298C370 */ _t3 = _t2 & 0x00000001u;
|
|
/* 0298C370 */ if (_t3) goto L_0298C374; else goto L_0298C38C;
|
|
L_0298C374: ; // 0x298c374
|
|
/* 0298C374 */ _t4 = cpu->r[3] + 0x0000022Cu;
|
|
/* 0298C374 */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298C378 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298C37C */ _t5 = cpu->r[12] + cpu->r[10];
|
|
/* 0298C37C */ rbrew_write32(cpu->mem, _t5, cpu->r[4]);
|
|
/* 0298C380 */ _t6 = cpu->r[3] + 0x00000224u;
|
|
/* 0298C380 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298C384 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 0298C388 */ _t7 = cpu->r[3] + 0x00000224u;
|
|
/* 0298C388 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
L_0298C38C: ; // 0x298c38c
|
|
/* 0298C38C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298C390 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C390 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298C390 */ if (_t9) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298C390 */ goto L_0298C394;
|
|
L_0298C394: ; // 0x298c394
|
|
/* 0298C394 */ _t10 = cpu->r[3] + 0x00000220u;
|
|
/* 0298C394 */ rbrew_write32(cpu->mem, _t10, cpu->r[4]);
|
|
/* 0298C398 */ return;
|
|
}
|
|
|
|
// fn_0298C39C @ 0x298c39c
|
|
void Gambit_fn_0298C39C(CPUState* cpu) {
|
|
uint32_t _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, _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;
|
|
double _ft92, _ft93;
|
|
|
|
L_0298C39C: ; // 0x298c39c
|
|
/* 0298C39C */ _t0 = cpu->r[1] + 0xFFFFFF40u;
|
|
/* 0298C39C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298C39C */ cpu->r[1] = _t0;
|
|
/* 0298C3A0 */ /* nop */
|
|
/* 0298C3A4 */ _t1 = cpu->r[1] + 0x000000B0u;
|
|
/* 0298C3A4 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298C3A8 */ _t2 = cpu->r[1] + 0x000000A0u;
|
|
/* 0298C3A8 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[30]);
|
|
/* 0298C3AC */ /* nop */
|
|
/* 0298C3B0 */ _t3 = cpu->r[1] + 0x000000B8u;
|
|
/* 0298C3B0 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 0298C3B4 */ /* nop */
|
|
/* 0298C3B8 */ _t4 = cpu->r[1] + 0x00000090u;
|
|
/* 0298C3B8 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[29]);
|
|
/* 0298C3BC */ cpu->r[0] = cpu->lr;
|
|
/* 0298C3C0 */ _t5 = cpu->r[1] + 0x000000C4u;
|
|
/* 0298C3C0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298C3C4 */ /* nop */
|
|
/* 0298C3C8 */ _t6 = cpu->r[1] + 0x00000098u;
|
|
/* 0298C3C8 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[29]);
|
|
/* 0298C3CC */ _t7 = cpu->r[1] + 0x00000080u;
|
|
/* 0298C3CC */ rbrew_write_f64(cpu->mem, _t7, cpu->f[28]);
|
|
/* 0298C3D0 */ _t8 = cpu->r[1] + 0x000000A8u;
|
|
/* 0298C3D0 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[30]);
|
|
/* 0298C3D4 */ /* nop */
|
|
/* 0298C3D8 */ _t9 = cpu->r[1] + 0x00000088u;
|
|
/* 0298C3D8 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[28]);
|
|
/* 0298C3DC */ cpu->r[26] = cpu->r[3];
|
|
/* 0298C3E0 */ _t10 = cpu->r[26] + 0x00000234u;
|
|
/* 0298C3E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298C3E4 */ Gambit_fn_02997270(cpu);
|
|
/* 0298C3E8 */ _t11 = cpu->r[26] + 0x00000224u;
|
|
/* 0298C3E8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298C3EC */ _t12 = cpu->r[26] + 0x0000022Cu;
|
|
/* 0298C3EC */ cpu->r[19] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298C3F0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298C3F4 */ cpu->r[6] = 0x10150000u;
|
|
/* 0298C3F8 */ cpu->r[20] = cpu->r[19] + cpu->r[9];
|
|
/* 0298C3FC */ _t13 = cpu->r[6] + 0xFFFFF2F0u;
|
|
/* 0298C3FC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 0298C400 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 0298C404 */ cpu->r[18] = 0x00000000u;
|
|
/* 0298C408 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C408 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298C408 */ if (_t15) goto L_0298C5A8; else goto L_0298C40C;
|
|
L_0298C40C: ; // 0x298c40c
|
|
/* 0298C40C */ cpu->r[30] = 0x00010000u;
|
|
/* 0298C410 */ cpu->r[31] = 0x101F0000u;
|
|
/* 0298C414 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 0298C418 */ cpu->f[30] = cpu->f[31];
|
|
/* 0298C41C */ cpu->r[31] = cpu->r[31] + 0x000065D0u;
|
|
L_0298C420: ; // 0x298c420
|
|
/* 0298C420 */ _t16 = cpu->r[19] + 0x00000000u;
|
|
/* 0298C420 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298C424 */ _t17 = cpu->r[28] + 0x0000001Cu;
|
|
/* 0298C424 */ cpu->r[21] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298C428 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 0298C42C */ cpu->r[29] = 0x00000000u;
|
|
/* 0298C430 */ _t18 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298C430 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298C430 */ if (_t19) goto L_0298C434; else goto L_0298C59C;
|
|
L_0298C434: ; // 0x298c434
|
|
/* 0298C434 */ cpu->f[29] = cpu->f[30];
|
|
L_0298C438: ; // 0x298c438
|
|
/* 0298C438 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298C43C */ cpu->r[4] = cpu->r[29];
|
|
/* 0298C440 */ Gambit_fn_0297FC7C(cpu);
|
|
/* 0298C444 */ _t20 = cpu->r[28] + 0x0000001Cu;
|
|
/* 0298C444 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298C448 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298C44C */ cpu->r[5] = 0x00000000u;
|
|
/* 0298C450 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298C450 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298C450 */ if (_t22) goto L_0298C454; else goto L_0298C460;
|
|
L_0298C454: ; // 0x298c454
|
|
/* 0298C454 */ _t23 = cpu->r[28] + 0x00000024u;
|
|
/* 0298C454 */ cpu->r[4] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298C458 */ cpu->r[12] = rbrew_rlwinm(cpu->r[29], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298C45C */ _t24 = cpu->r[12] + cpu->r[4];
|
|
/* 0298C45C */ cpu->r[5] = rbrew_read32(cpu->mem, _t24);
|
|
L_0298C460: ; // 0x298c460
|
|
/* 0298C460 */ _t25 = cpu->r[5] + 0x00000000u;
|
|
/* 0298C460 */ cpu->r[23] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298C464 */ _t26 = cpu->r[23] + 0x00000088u;
|
|
/* 0298C464 */ cpu->r[6] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298C468 */ _t27 = cpu->r[6] + 0x000001E4u;
|
|
/* 0298C468 */ cpu->r[7] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298C46C */ cpu->ctr = cpu->r[7];
|
|
/* 0298C470 */ cpu->r[3] = cpu->r[23];
|
|
/* 0298C474 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298C478 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C47C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C47C */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298C47C */ if (_t29) goto L_0298C588; else goto L_0298C480;
|
|
L_0298C480: ; // 0x298c480
|
|
/* 0298C480 */ _t30 = cpu->r[23] + 0x00000088u;
|
|
/* 0298C480 */ cpu->r[9] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298C484 */ _t31 = cpu->r[9] + 0x000001ACu;
|
|
/* 0298C484 */ cpu->r[11] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298C488 */ cpu->ctr = cpu->r[11];
|
|
/* 0298C48C */ cpu->r[24] = 0x00000000u;
|
|
/* 0298C490 */ cpu->r[3] = cpu->r[23];
|
|
/* 0298C494 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298C498 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[3]);
|
|
/* 0298C49C */ _t32 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298C49C */ _t33 = _t32 & 0x00000001u;
|
|
/* 0298C49C */ if (_t33) goto L_0298C4A0; else goto L_0298C588;
|
|
L_0298C4A0: ; // 0x298c4a0
|
|
/* 0298C4A0 */ cpu->f[28] = cpu->f[29];
|
|
/* 0298C4A4 */ cpu->r[22] = 0xFFFFFFFFu;
|
|
/* 0298C4A8 */ cpu->r[17] = 0x00000000u;
|
|
L_0298C4AC: ; // 0x298c4ac
|
|
/* 0298C4AC */ _t34 = cpu->r[23] + 0x00000088u;
|
|
/* 0298C4AC */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 0298C4B0 */ _t35 = cpu->r[12] + 0x000001B4u;
|
|
/* 0298C4B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298C4B4 */ cpu->ctr = cpu->r[0];
|
|
/* 0298C4B8 */ cpu->r[3] = cpu->r[23];
|
|
/* 0298C4BC */ cpu->r[4] = cpu->r[24];
|
|
/* 0298C4C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298C4C4 */ _t36 = cpu->r[26] + 0x00000230u;
|
|
/* 0298C4C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t36);
|
|
/* 0298C4C8 */ cpu->r[25] = cpu->r[3];
|
|
/* 0298C4CC */ _t37 = cpu->r[10] + 0x00000000u;
|
|
/* 0298C4CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t37);
|
|
/* 0298C4D0 */ cpu->r[0] = cpu->r[18];
|
|
/* 0298C4D4 */ _t38 = cpu->r[25] + 0x0000000Cu;
|
|
/* 0298C4D4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t38);
|
|
/* 0298C4D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 0298C4DC */ _t39 = cpu->r[10] + 0x00000004u;
|
|
/* 0298C4DC */ cpu->r[27] = rbrew_read32(cpu->mem, _t39);
|
|
/* 0298C4E0 */ cpu->r[18] = cpu->r[18] + 0x00000001u;
|
|
/* 0298C4E4 */ _t40 = cpu->r[7] + 0x00000084u;
|
|
/* 0298C4E4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298C4E8 */ _t41 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298C4E8 */ _t42 = _t41 & 0x00000001u;
|
|
/* 0298C4E8 */ if (_t42) goto L_0298C4EC; else goto L_0298C4F4;
|
|
L_0298C4EC: ; // 0x298c4ec
|
|
/* 0298C4EC */ cpu->r[5] = (uint32_t)((int32_t)cpu->r[0] * (int32_t)0x00000014u);
|
|
/* 0298C4F0 */ cpu->r[27] = cpu->r[27] + cpu->r[5];
|
|
L_0298C4F4: ; // 0x298c4f4
|
|
/* 0298C4F4 */ cpu->ctr = cpu->r[9];
|
|
/* 0298C4F8 */ cpu->r[3] = cpu->r[25];
|
|
/* 0298C4FC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298C500 */ _t43 = cpu->r[27] + 0x00000004u;
|
|
/* 0298C500 */ rbrew_write32(cpu->mem, _t43, cpu->r[22]);
|
|
/* 0298C504 */ _t44 = cpu->r[27] + 0x00000008u;
|
|
/* 0298C504 */ rbrew_write16(cpu->mem, _t44, (uint16_t)cpu->r[30]);
|
|
/* 0298C508 */ _t45 = cpu->r[27] + 0x00000000u;
|
|
/* 0298C508 */ rbrew_write32(cpu->mem, _t45, cpu->r[25]);
|
|
/* 0298C50C */ _t46 = cpu->r[25] + 0x0000000Cu;
|
|
/* 0298C50C */ cpu->r[12] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298C510 */ _t47 = cpu->r[12] + 0x0000008Cu;
|
|
/* 0298C510 */ cpu->r[0] = rbrew_read32(cpu->mem, _t47);
|
|
/* 0298C514 */ cpu->r[28] = cpu->r[3];
|
|
/* 0298C518 */ cpu->ctr = cpu->r[0];
|
|
/* 0298C51C */ cpu->r[3] = cpu->r[25];
|
|
/* 0298C520 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298C524 */ _t48 = cpu->r[27] + 0x0000000Au;
|
|
/* 0298C524 */ rbrew_write8(cpu->mem, _t48, (uint8_t)cpu->r[3]);
|
|
/* 0298C528 */ _t49 = cpu->r[27] + 0x0000000Bu;
|
|
/* 0298C528 */ rbrew_write8(cpu->mem, _t49, (uint8_t)cpu->r[17]);
|
|
/* 0298C52C */ _t50 = cpu->r[27] + 0x0000000Cu;
|
|
/* 0298C52C */ rbrew_write32(cpu->mem, _t50, cpu->r[28]);
|
|
/* 0298C530 */ _t51 = cpu->r[27] + 0x00000010u;
|
|
/* 0298C530 */ rbrew_write_f32(cpu->mem, _t51, cpu->f[28]);
|
|
/* 0298C534 */ rbrew_dispatch(cpu, 0x02d0a9f0u);
|
|
/* 0298C538 */ cpu->r[7] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298C53C */ _t52 = cpu->r[26] + 0x00000234u;
|
|
/* 0298C53C */ cpu->r[6] = rbrew_read32(cpu->mem, _t52);
|
|
/* 0298C540 */ _t53 = cpu->r[31] + cpu->r[7];
|
|
/* 0298C540 */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
L_0298C544: ; // 0x298c544
|
|
/* 0298C544 */ cpu->r[9] = cpu->r[6] + 0x00000028u;
|
|
/* 0298C548 */ _t54 = cpu->r[0] + cpu->r[9];
|
|
/* 0298C548 */ cpu->r[8] = rbrew_read32(cpu->mem, _t54);
|
|
/* 0298C54C */ /* nop */
|
|
/* 0298C550 */ cpu->r[10] = cpu->r[8] + 0x00000001u;
|
|
/* 0298C554 */ /* nop */
|
|
/* 0298C558 */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C558 */ _t56 = _t55 & 0x00000001u;
|
|
/* 0298C558 */ if (_t56) goto L_0298C55C; else goto L_0298C544;
|
|
L_0298C55C: ; // 0x298c55c
|
|
/* 0298C55C */ _t57 = cpu->r[6] + 0x00000020u;
|
|
/* 0298C55C */ cpu->r[6] = rbrew_read32(cpu->mem, _t57);
|
|
/* 0298C560 */ cpu->r[5] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298C564 */ _t58 = cpu->r[5] + cpu->r[6];
|
|
/* 0298C564 */ rbrew_write32(cpu->mem, _t58, cpu->r[27]);
|
|
/* 0298C568 */ _t59 = cpu->r[23] + 0x00000088u;
|
|
/* 0298C568 */ cpu->r[7] = rbrew_read32(cpu->mem, _t59);
|
|
/* 0298C56C */ _t60 = cpu->r[7] + 0x000001ACu;
|
|
/* 0298C56C */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 0298C570 */ cpu->ctr = cpu->r[0];
|
|
/* 0298C574 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 0298C578 */ cpu->r[3] = cpu->r[23];
|
|
/* 0298C57C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298C580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[3]);
|
|
/* 0298C584 */ _t61 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298C584 */ _t62 = _t61 & 0x00000001u;
|
|
/* 0298C584 */ if (_t62) goto L_0298C4AC; else goto L_0298C588;
|
|
L_0298C588: ; // 0x298c588
|
|
/* 0298C588 */ cpu->r[21] = cpu->r[21] + 0xFFFFFFFFu;
|
|
/* 0298C588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[21], 0x00000000u);
|
|
/* 0298C58C */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 0298C590 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C590 */ _t64 = _t63 & 0x00000001u;
|
|
/* 0298C590 */ if (_t64) goto L_0298C59C; else goto L_0298C594;
|
|
L_0298C594: ; // 0x298c594
|
|
/* 0298C594 */ _t65 = cpu->r[19] + 0x00000000u;
|
|
/* 0298C594 */ cpu->r[28] = rbrew_read32(cpu->mem, _t65);
|
|
/* 0298C598 */ goto L_0298C438;
|
|
L_0298C59C: ; // 0x298c59c
|
|
/* 0298C59C */ cpu->r[19] = cpu->r[19] + 0x00000004u;
|
|
/* 0298C5A0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 0298C5A4 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C5A4 */ _t67 = _t66 & 0x00000001u;
|
|
/* 0298C5A4 */ if (_t67) goto L_0298C5A8; else goto L_0298C420;
|
|
L_0298C5A8: ; // 0x298c5a8
|
|
/* 0298C5A8 */ _t68 = cpu->r[26] + 0x00000234u;
|
|
/* 0298C5A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t68);
|
|
/* 0298C5AC */ cpu->r[4] = 0x00000000u;
|
|
/* 0298C5B0 */ Gambit_fn_029972C4(cpu);
|
|
/* 0298C5B4 */ _t69 = cpu->r[26] + 0x00000234u;
|
|
/* 0298C5B4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t69);
|
|
/* 0298C5B8 */ Gambit_fn_02997B00(cpu);
|
|
/* 0298C5BC */ _t70 = cpu->r[26] + 0x0000034Cu;
|
|
/* 0298C5BC */ cpu->r[5] = rbrew_read32(cpu->mem, _t70);
|
|
/* 0298C5C0 */ _t71 = cpu->r[26] + 0x00000358u;
|
|
/* 0298C5C0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t71);
|
|
/* 0298C5C4 */ _t72 = cpu->r[26] + 0x0000035Cu;
|
|
/* 0298C5C4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t72);
|
|
/* 0298C5C8 */ _t73 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C5C8 */ rbrew_write32(cpu->mem, _t73, cpu->r[7]);
|
|
/* 0298C5CC */ _t74 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C5CC */ rbrew_write32(cpu->mem, _t74, cpu->r[0]);
|
|
/* 0298C5D0 */ _t75 = cpu->r[26] + 0x00000350u;
|
|
/* 0298C5D0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t75);
|
|
/* 0298C5D4 */ _t76 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C5D4 */ rbrew_write32(cpu->mem, _t76, cpu->r[5]);
|
|
/* 0298C5D8 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298C5DC */ _t77 = cpu->r[26] + 0x00000360u;
|
|
/* 0298C5DC */ cpu->r[9] = rbrew_read32(cpu->mem, _t77);
|
|
/* 0298C5E0 */ _t78 = cpu->r[26] + 0x00000354u;
|
|
/* 0298C5E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t78);
|
|
/* 0298C5E4 */ _t79 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C5E4 */ rbrew_write32(cpu->mem, _t79, cpu->r[9]);
|
|
/* 0298C5E8 */ _t80 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C5E8 */ rbrew_write32(cpu->mem, _t80, cpu->r[8]);
|
|
/* 0298C5EC */ cpu->r[3] = cpu->r[26] + 0x00000004u;
|
|
/* 0298C5F0 */ cpu->r[5] = cpu->r[4];
|
|
/* 0298C5F4 */ _t81 = cpu->r[1] + 0x00000018u;
|
|
/* 0298C5F4 */ rbrew_write32(cpu->mem, _t81, cpu->r[7]);
|
|
/* 0298C5F8 */ Gambit_fn_02C694BC(cpu);
|
|
/* 0298C5FC */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 0298C600 */ cpu->r[3] = cpu->r[26] + 0x00000004u;
|
|
/* 0298C604 */ cpu->r[5] = cpu->r[4];
|
|
/* 0298C608 */ Gambit_fn_02C694BC(cpu);
|
|
/* 0298C60C */ _t82 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C60C */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t82);
|
|
/* 0298C610 */ _t83 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C610 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t83);
|
|
/* 0298C614 */ cpu->f[8] = cpu->f[7] * cpu->f[7];
|
|
/* 0298C618 */ _t84 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C618 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t84);
|
|
/* 0298C61C */ cpu->f[9] = fma(cpu->f[6], cpu->f[6], cpu->f[8]);
|
|
/* 0298C620 */ _t85 = cpu->r[26] + 0x00000288u;
|
|
/* 0298C620 */ rbrew_write_f32(cpu->mem, _t85, cpu->f[6]);
|
|
/* 0298C624 */ cpu->f[10] = fma(cpu->f[0], cpu->f[0], cpu->f[9]);
|
|
/* 0298C628 */ _t86 = cpu->r[26] + 0x00000290u;
|
|
/* 0298C628 */ rbrew_write_f32(cpu->mem, _t86, cpu->f[0]);
|
|
/* 0298C62C */ cpu->r[10] = 0x10150000u;
|
|
/* 0298C630 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[10], cpu->f[31]);
|
|
/* 0298C634 */ _t87 = cpu->r[10] + 0xFFFFF300u;
|
|
/* 0298C634 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t87);
|
|
/* 0298C638 */ _t88 = cpu->r[26] + 0x0000028Cu;
|
|
/* 0298C638 */ rbrew_write_f32(cpu->mem, _t88, cpu->f[7]);
|
|
/* 0298C63C */ _t89 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298C63C */ _t90 = _t89 & 0x00000001u;
|
|
/* 0298C63C */ if (_t90) goto L_0298C640; else goto L_0298C674;
|
|
L_0298C640: ; // 0x298c640
|
|
/* 0298C640 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298C644 */ _t91 = cpu->r[9] + 0xFFFFF438u;
|
|
/* 0298C644 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t91);
|
|
/* 0298C648 */ _ft92 = sqrt(cpu->f[10]);
|
|
/* 0298C648 */ _ft93 = (double)(int32_t)0x00000001u;
|
|
/* 0298C648 */ cpu->f[11] = _ft93 / _ft92;
|
|
/* 0298C64C */ cpu->f[13] = cpu->f[11] * cpu->f[11];
|
|
/* 0298C650 */ cpu->f[8] = cpu->f[11] * cpu->f[31];
|
|
/* 0298C654 */ cpu->f[13] = -fma(cpu->f[13], cpu->f[10], -(cpu->f[0]));
|
|
/* 0298C658 */ cpu->f[11] = cpu->f[13] * cpu->f[8];
|
|
/* 0298C65C */ _t94 = cpu->r[26] + 0x00000290u;
|
|
/* 0298C65C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 0298C660 */ /* nop */
|
|
/* 0298C664 */ cpu->f[0] = cpu->f[0] * cpu->f[11];
|
|
/* 0298C668 */ /* nop */
|
|
/* 0298C66C */ _t95 = cpu->r[26] + 0x00000290u;
|
|
/* 0298C66C */ rbrew_write_f32(cpu->mem, _t95, cpu->f[0]);
|
|
/* 0298C670 */ /* nop */
|
|
L_0298C674: ; // 0x298c674
|
|
/* 0298C674 */ _t96 = cpu->r[26] + 0x00000348u;
|
|
/* 0298C674 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t96);
|
|
/* 0298C678 */ _t97 = cpu->r[26] + 0x00000344u;
|
|
/* 0298C678 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t97);
|
|
/* 0298C67C */ _t98 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C67C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t98);
|
|
/* 0298C680 */ _t99 = cpu->r[26] + 0x00000280u;
|
|
/* 0298C680 */ rbrew_write_f32(cpu->mem, _t99, cpu->f[7]);
|
|
/* 0298C684 */ cpu->f[12] = cpu->f[8] + cpu->f[13];
|
|
/* 0298C688 */ /* nop */
|
|
/* 0298C68C */ /* nop */
|
|
/* 0298C690 */ _t100 = cpu->r[26] + 0x00000340u;
|
|
/* 0298C690 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t100);
|
|
/* 0298C694 */ /* nop */
|
|
/* 0298C698 */ _t101 = cpu->r[26] + 0x0000026Cu;
|
|
/* 0298C698 */ cpu->r[5] = rbrew_read32(cpu->mem, _t101);
|
|
/* 0298C69C */ /* nop */
|
|
/* 0298C6A0 */ _t102 = cpu->r[1] + 0x00000024u;
|
|
/* 0298C6A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t102);
|
|
/* 0298C6A4 */ _t103 = cpu->r[1] + 0x00000028u;
|
|
/* 0298C6A4 */ rbrew_write_f32(cpu->mem, _t103, cpu->f[12]);
|
|
/* 0298C6A8 */ _t104 = cpu->r[1] + 0x00000028u;
|
|
/* 0298C6A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t104);
|
|
/* 0298C6AC */ _t105 = cpu->r[1] + 0x00000020u;
|
|
/* 0298C6AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t105);
|
|
/* 0298C6B0 */ _t106 = cpu->r[1] + 0x00000030u;
|
|
/* 0298C6B0 */ rbrew_write32(cpu->mem, _t106, cpu->r[10]);
|
|
/* 0298C6B4 */ _t107 = cpu->r[1] + 0x00000030u;
|
|
/* 0298C6B4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t107);
|
|
/* 0298C6B8 */ _t108 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298C6B8 */ rbrew_write32(cpu->mem, _t108, cpu->r[8]);
|
|
/* 0298C6BC */ _t109 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298C6BC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t109);
|
|
/* 0298C6C0 */ _t110 = cpu->r[1] + 0x00000034u;
|
|
/* 0298C6C0 */ rbrew_write32(cpu->mem, _t110, cpu->r[0]);
|
|
/* 0298C6C4 */ _t111 = cpu->r[1] + 0x00000034u;
|
|
/* 0298C6C4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t111);
|
|
/* 0298C6C8 */ _t112 = cpu->r[26] + 0x00000284u;
|
|
/* 0298C6C8 */ rbrew_write_f32(cpu->mem, _t112, cpu->f[8]);
|
|
/* 0298C6CC */ _t113 = cpu->r[26] + 0x00000274u;
|
|
/* 0298C6CC */ rbrew_write_f32(cpu->mem, _t113, cpu->f[13]);
|
|
/* 0298C6D0 */ _t114 = cpu->r[26] + 0x0000027Cu;
|
|
/* 0298C6D0 */ rbrew_write_f32(cpu->mem, _t114, cpu->f[6]);
|
|
/* 0298C6D4 */ _t115 = cpu->r[26] + 0x00000270u;
|
|
/* 0298C6D4 */ rbrew_write_f32(cpu->mem, _t115, cpu->f[12]);
|
|
/* 0298C6D8 */ _t116 = cpu->r[26] + 0x00000278u;
|
|
/* 0298C6D8 */ rbrew_write_f32(cpu->mem, _t116, cpu->f[0]);
|
|
/* 0298C6DC */ _t117 = cpu->r[5] + 0x00000024u;
|
|
/* 0298C6DC */ cpu->r[6] = rbrew_read32(cpu->mem, _t117);
|
|
/* 0298C6E0 */ cpu->r[3] = cpu->r[26] + 0x0000023Cu;
|
|
/* 0298C6E4 */ cpu->ctr = cpu->r[6];
|
|
/* 0298C6E8 */ cpu->r[4] = cpu->r[3];
|
|
/* 0298C6EC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298C6F0 */ _t118 = cpu->r[26] + 0x00000034u;
|
|
/* 0298C6F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t118);
|
|
/* 0298C6F4 */ _t119 = cpu->r[26] + 0x00000038u;
|
|
/* 0298C6F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t119);
|
|
/* 0298C6F8 */ _t120 = cpu->r[1] + 0x00000038u;
|
|
/* 0298C6F8 */ rbrew_write32(cpu->mem, _t120, cpu->r[12]);
|
|
/* 0298C6FC */ _t121 = cpu->r[1] + 0x00000038u;
|
|
/* 0298C6FC */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t121);
|
|
/* 0298C700 */ _t122 = cpu->r[26] + 0x0000003Cu;
|
|
/* 0298C700 */ cpu->r[4] = rbrew_read32(cpu->mem, _t122);
|
|
/* 0298C704 */ cpu->f[4] = cpu->f[13] * cpu->f[31];
|
|
/* 0298C708 */ _t123 = cpu->r[1] + 0x00000040u;
|
|
/* 0298C708 */ rbrew_write32(cpu->mem, _t123, cpu->r[4]);
|
|
/* 0298C70C */ _t124 = cpu->r[1] + 0x00000040u;
|
|
/* 0298C70C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t124);
|
|
/* 0298C710 */ _t125 = cpu->r[26] + 0x0000005Cu;
|
|
/* 0298C710 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t125);
|
|
/* 0298C714 */ cpu->f[1] = cpu->f[11] * cpu->f[31];
|
|
/* 0298C718 */ _t126 = cpu->r[1] + 0x0000003Cu;
|
|
/* 0298C718 */ rbrew_write32(cpu->mem, _t126, cpu->r[0]);
|
|
/* 0298C71C */ cpu->r[30] = 0x00000001u;
|
|
/* 0298C720 */ _t127 = cpu->r[26] + 0x00000060u;
|
|
/* 0298C720 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t127);
|
|
/* 0298C724 */ cpu->f[3] = -cpu->f[4];
|
|
/* 0298C728 */ _t128 = cpu->r[26] + 0x00000328u;
|
|
/* 0298C728 */ rbrew_write_f32(cpu->mem, _t128, cpu->f[9]);
|
|
/* 0298C72C */ cpu->f[2] = -cpu->f[1];
|
|
/* 0298C730 */ _t129 = cpu->r[26] + 0x00000294u;
|
|
/* 0298C730 */ rbrew_write8(cpu->mem, _t129, (uint8_t)cpu->r[30]);
|
|
/* 0298C734 */ cpu->r[3] = cpu->r[26] + 0x00000294u;
|
|
/* 0298C738 */ _t130 = cpu->r[26] + 0x0000032Cu;
|
|
/* 0298C738 */ rbrew_write_f32(cpu->mem, _t130, cpu->f[10]);
|
|
/* 0298C73C */ Gambit_fn_0281CB98(cpu);
|
|
/* 0298C740 */ _t131 = cpu->r[26] + 0x00000238u;
|
|
/* 0298C740 */ cpu->r[3] = rbrew_read32(cpu->mem, _t131);
|
|
/* 0298C744 */ Gambit_fn_02995484(cpu);
|
|
/* 0298C748 */ _t132 = cpu->r[26] + 0x00000238u;
|
|
/* 0298C748 */ cpu->r[3] = rbrew_read32(cpu->mem, _t132);
|
|
/* 0298C74C */ cpu->r[5] = cpu->r[26] + 0x0000023Cu;
|
|
/* 0298C750 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298C754 */ cpu->r[6] = cpu->r[26] + 0x00000294u;
|
|
/* 0298C758 */ cpu->r[7] = cpu->r[5];
|
|
/* 0298C75C */ Gambit_fn_029957C0(cpu);
|
|
/* 0298C760 */ _t133 = cpu->r[26] + 0x00000238u;
|
|
/* 0298C760 */ cpu->r[31] = rbrew_read32(cpu->mem, _t133);
|
|
/* 0298C764 */ cpu->r[3] = cpu->r[26] + 0x00000294u;
|
|
/* 0298C768 */ cpu->r[29] = cpu->r[31] + 0x00000078u;
|
|
/* 0298C76C */ Gambit_fn_0281BC48(cpu);
|
|
/* 0298C770 */ cpu->r[6] = cpu->r[3];
|
|
/* 0298C774 */ cpu->r[5] = cpu->r[26] + 0x0000023Cu;
|
|
/* 0298C778 */ _t134 = cpu->r[31] + 0x000034E0u;
|
|
/* 0298C778 */ cpu->r[3] = rbrew_read32(cpu->mem, _t134);
|
|
/* 0298C77C */ cpu->r[4] = 0x00000000u;
|
|
/* 0298C780 */ cpu->r[8] = cpu->r[30];
|
|
/* 0298C784 */ cpu->r[7] = cpu->r[29];
|
|
/* 0298C788 */ cpu->r[9] = cpu->r[4];
|
|
/* 0298C78C */ Gambit_fn_02A129D8(cpu);
|
|
/* 0298C790 */ /* nop */
|
|
/* 0298C794 */ _t135 = cpu->r[1] + 0x000000A8u;
|
|
/* 0298C794 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t135);
|
|
/* 0298C798 */ _t136 = cpu->r[1] + 0x00000088u;
|
|
/* 0298C798 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t136);
|
|
/* 0298C79C */ _t137 = cpu->r[1] + 0x000000A0u;
|
|
/* 0298C79C */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t137);
|
|
/* 0298C7A0 */ _t138 = cpu->r[1] + 0x00000080u;
|
|
/* 0298C7A0 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t138);
|
|
/* 0298C7A4 */ _t139 = cpu->r[1] + 0x00000098u;
|
|
/* 0298C7A4 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t139);
|
|
/* 0298C7A8 */ _t140 = cpu->r[1] + 0x000000B8u;
|
|
/* 0298C7A8 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t140);
|
|
/* 0298C7AC */ _t141 = cpu->r[1] + 0x00000090u;
|
|
/* 0298C7AC */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t141);
|
|
/* 0298C7B0 */ _t142 = cpu->r[1] + 0x000000B0u;
|
|
/* 0298C7B0 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t142);
|
|
/* 0298C7B4 */ _t143 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298C7B4 */ _t144 = _t143 & 0x00000001u;
|
|
/* 0298C7B4 */ if (_t144) goto L_0298C7B8; // else: addr-0 trap, fall-through
|
|
L_0298C7B8: ; // 0x298c7b8
|
|
/* 0298C7B8 */ _t145 = cpu->r[1] + 0x000000C4u;
|
|
/* 0298C7B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t145);
|
|
/* 0298C7BC */ cpu->lr = cpu->r[0];
|
|
/* 0298C7C0 */ cpu->r[1] = cpu->r[1] + 0x000000C0u;
|
|
/* 0298C7C4 */ return;
|
|
}
|
|
|
|
// fn_0298C7C8 @ 0x298c7c8
|
|
void Gambit_fn_0298C7C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_0298C7C8: ; // 0x298c7c8
|
|
/* 0298C7C8 */ cpu->r[0] = cpu->lr;
|
|
/* 0298C7CC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298C7CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298C7CC */ cpu->r[1] = _t0;
|
|
/* 0298C7D0 */ _t1 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C7D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298C7D4 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298C7D8 */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 0298C7D8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298C7DC */ _t3 = cpu->r[3] + 0x00000238u;
|
|
/* 0298C7DC */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298C7E0 */ cpu->r[8] = 0x10150000u;
|
|
/* 0298C7E4 */ cpu->r[12] = cpu->r[12] + 0xFFFFF43Cu;
|
|
/* 0298C7E8 */ cpu->r[31] = 0x00010000u;
|
|
/* 0298C7EC */ _t4 = cpu->r[10] + 0x000034ECu;
|
|
/* 0298C7EC */ rbrew_write32(cpu->mem, _t4, cpu->r[4]);
|
|
/* 0298C7F0 */ _t5 = cpu->r[3] + 0x00000238u;
|
|
/* 0298C7F0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298C7F4 */ cpu->r[8] = cpu->r[8] + 0xFFFFF0BCu;
|
|
/* 0298C7F8 */ cpu->r[7] = 0x00000000u;
|
|
/* 0298C7FC */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 0298C800 */ _t6 = cpu->r[11] + 0x000034F0u;
|
|
/* 0298C800 */ rbrew_write32(cpu->mem, _t6, cpu->r[5]);
|
|
/* 0298C804 */ _t7 = cpu->r[3] + 0x00000234u;
|
|
/* 0298C804 */ cpu->r[5] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298C808 */ cpu->r[9] = cpu->r[7];
|
|
/* 0298C80C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C80C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 0298C810 */ cpu->r[8] = 0x00000001u;
|
|
/* 0298C814 */ _t9 = cpu->r[3] + 0x00000238u;
|
|
/* 0298C814 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298C818 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 0298C81C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C81C */ rbrew_write32(cpu->mem, _t10, cpu->r[6]);
|
|
/* 0298C820 */ cpu->r[10] = cpu->r[9];
|
|
/* 0298C824 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C824 */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 0298C828 */ cpu->r[6] = 0xFFFFFFFFu;
|
|
/* 0298C82C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C82C */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 0298C830 */ Gambit_fn_02995864(cpu);
|
|
/* 0298C834 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 0298C834 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298C838 */ cpu->lr = cpu->r[0];
|
|
/* 0298C83C */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C83C */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298C840 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298C844 */ return;
|
|
}
|
|
|
|
// fn_0298C7CC @ 0x298c7cc
|
|
void Gambit_fn_0298C7CC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_0298C7CC: ; // 0x298c7cc
|
|
/* 0298C7CC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298C7CC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298C7CC */ cpu->r[1] = _t0;
|
|
/* 0298C7D0 */ _t1 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C7D0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298C7D4 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298C7D8 */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 0298C7D8 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298C7DC */ _t3 = cpu->r[3] + 0x00000238u;
|
|
/* 0298C7DC */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298C7E0 */ cpu->r[8] = 0x10150000u;
|
|
/* 0298C7E4 */ cpu->r[12] = cpu->r[12] + 0xFFFFF43Cu;
|
|
/* 0298C7E8 */ cpu->r[31] = 0x00010000u;
|
|
/* 0298C7EC */ _t4 = cpu->r[10] + 0x000034ECu;
|
|
/* 0298C7EC */ rbrew_write32(cpu->mem, _t4, cpu->r[4]);
|
|
/* 0298C7F0 */ _t5 = cpu->r[3] + 0x00000238u;
|
|
/* 0298C7F0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298C7F4 */ cpu->r[8] = cpu->r[8] + 0xFFFFF0BCu;
|
|
/* 0298C7F8 */ cpu->r[7] = 0x00000000u;
|
|
/* 0298C7FC */ cpu->r[31] = cpu->r[31] + 0xFFFFFFFFu;
|
|
/* 0298C800 */ _t6 = cpu->r[11] + 0x000034F0u;
|
|
/* 0298C800 */ rbrew_write32(cpu->mem, _t6, cpu->r[5]);
|
|
/* 0298C804 */ _t7 = cpu->r[3] + 0x00000234u;
|
|
/* 0298C804 */ cpu->r[5] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298C808 */ cpu->r[9] = cpu->r[7];
|
|
/* 0298C80C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C80C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 0298C810 */ cpu->r[8] = 0x00000001u;
|
|
/* 0298C814 */ _t9 = cpu->r[3] + 0x00000238u;
|
|
/* 0298C814 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298C818 */ cpu->r[4] = cpu->r[1] + 0x00000010u;
|
|
/* 0298C81C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C81C */ rbrew_write32(cpu->mem, _t10, cpu->r[6]);
|
|
/* 0298C820 */ cpu->r[10] = cpu->r[9];
|
|
/* 0298C824 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C824 */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 0298C828 */ cpu->r[6] = 0xFFFFFFFFu;
|
|
/* 0298C82C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C82C */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 0298C830 */ Gambit_fn_02995864(cpu);
|
|
/* 0298C834 */ _t13 = cpu->r[1] + 0x00000024u;
|
|
/* 0298C834 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298C838 */ cpu->lr = cpu->r[0];
|
|
/* 0298C83C */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C83C */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298C840 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298C844 */ return;
|
|
}
|
|
|
|
// fn_0298C848 @ 0x298c848
|
|
void Gambit_fn_0298C848(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298C848: ; // 0x298c848
|
|
/* 0298C848 */ _t0 = cpu->r[1] + 0xFFFFFFC8u;
|
|
/* 0298C848 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298C848 */ cpu->r[1] = _t0;
|
|
/* 0298C84C */ /* nop */
|
|
/* 0298C850 */ cpu->r[0] = cpu->lr;
|
|
/* 0298C854 */ _t1 = cpu->r[1] + 0x0000003Cu;
|
|
/* 0298C854 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298C858 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298C85C */ _t2 = cpu->r[31] + 0x00000220u;
|
|
/* 0298C85C */ cpu->r[10] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298C860 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298C864 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C864 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298C864 */ if (_t4) goto L_0298CA04; else goto L_0298C868;
|
|
L_0298C868: ; // 0x298c868
|
|
/* 0298C868 */ _t5 = cpu->r[31] + 0x0000038Cu;
|
|
/* 0298C868 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 0298C86C */ cpu->r[5] = 0x10150000u;
|
|
/* 0298C870 */ _t6 = cpu->r[31] + 0x00000428u;
|
|
/* 0298C870 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 0298C874 */ _t7 = cpu->r[31] + 0x00000424u;
|
|
/* 0298C874 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 0298C878 */ _t8 = cpu->r[5] + 0xFFFFF2ECu;
|
|
/* 0298C878 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 0298C87C */ cpu->f[1] = cpu->f[8] * cpu->f[13];
|
|
/* 0298C880 */ _t9 = cpu->r[31] + 0x00000404u;
|
|
/* 0298C880 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 0298C884 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298C888 */ _t10 = cpu->r[31] + 0x000003F4u;
|
|
/* 0298C888 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 0298C88C */ _t11 = cpu->r[31] + 0x0000042Cu;
|
|
/* 0298C88C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 0298C890 */ _t12 = cpu->r[31] + 0x000003ACu;
|
|
/* 0298C890 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 0298C894 */ cpu->f[2] = cpu->f[9] * cpu->f[10];
|
|
/* 0298C898 */ _t13 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298C898 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 0298C89C */ cpu->r[4] = cpu->r[10] + 0x00000034u;
|
|
/* 0298C8A0 */ _t14 = cpu->r[31] + 0x00000414u;
|
|
/* 0298C8A0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 0298C8A4 */ cpu->f[3] = cpu->f[11] * cpu->f[12];
|
|
/* 0298C8A8 */ _t15 = cpu->r[31] + 0x000003BCu;
|
|
/* 0298C8A8 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 0298C8AC */ cpu->f[4] = cpu->f[8] * cpu->f[13];
|
|
/* 0298C8B0 */ _t16 = cpu->r[1] + 0x00000018u;
|
|
/* 0298C8B0 */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 0298C8B4 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 0298C8B8 */ _t17 = cpu->r[1] + 0x00000020u;
|
|
/* 0298C8B8 */ rbrew_write_f32(cpu->mem, _t17, cpu->f[10]);
|
|
/* 0298C8BC */ cpu->f[5] = cpu->f[8] * cpu->f[9];
|
|
/* 0298C8C0 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 0298C8C0 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
/* 0298C8C4 */ Gambit_fn_02C929BC(cpu);
|
|
/* 0298C8C8 */ _t19 = cpu->r[31] + 0x00000428u;
|
|
/* 0298C8C8 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 0298C8CC */ _t20 = cpu->r[31] + 0x000003CCu;
|
|
/* 0298C8CC */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t20);
|
|
/* 0298C8D0 */ cpu->f[1] = cpu->f[6] * cpu->f[7];
|
|
/* 0298C8D4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298C8D8 */ Gambit_fn_02C92B4C(cpu);
|
|
/* 0298C8DC */ _t21 = cpu->r[31] + 0x000003DCu;
|
|
/* 0298C8DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298C8E0 */ _t22 = cpu->r[31] + 0x000003E0u;
|
|
/* 0298C8E0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298C8E4 */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C8E4 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 0298C8E8 */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C8E8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0298C8EC */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C8EC */ rbrew_write32(cpu->mem, _t25, cpu->r[12]);
|
|
/* 0298C8F0 */ _t26 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C8F0 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 0298C8F4 */ _t27 = cpu->r[31] + 0x00000424u;
|
|
/* 0298C8F4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 0298C8F8 */ _t28 = cpu->r[31] + 0x000003E4u;
|
|
/* 0298C8F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298C8FC */ _t29 = cpu->r[31] + 0x00000428u;
|
|
/* 0298C8FC */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t29);
|
|
/* 0298C900 */ cpu->f[13] = cpu->f[13] * cpu->f[0];
|
|
/* 0298C904 */ _t30 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C904 */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
/* 0298C908 */ _t31 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C908 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 0298C90C */ _t32 = cpu->r[31] + 0x0000042Cu;
|
|
/* 0298C90C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 0298C910 */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C910 */ rbrew_write_f32(cpu->mem, _t33, cpu->f[13]);
|
|
/* 0298C914 */ cpu->f[6] = cpu->f[6] * cpu->f[7];
|
|
/* 0298C918 */ _t34 = cpu->r[31] + 0x0000039Cu;
|
|
/* 0298C918 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 0298C91C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298C920 */ _t35 = cpu->r[31] + 0x00000220u;
|
|
/* 0298C920 */ cpu->r[6] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298C924 */ cpu->f[8] = cpu->f[8] * cpu->f[9];
|
|
/* 0298C928 */ _t36 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C928 */ rbrew_write_f32(cpu->mem, _t36, cpu->f[6]);
|
|
/* 0298C92C */ cpu->r[3] = cpu->r[6] + 0x00000034u;
|
|
/* 0298C930 */ _t37 = cpu->r[31] + 0x00000058u;
|
|
/* 0298C930 */ rbrew_write32(cpu->mem, _t37, cpu->r[0]);
|
|
/* 0298C934 */ cpu->r[5] = cpu->r[4];
|
|
/* 0298C938 */ _t38 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C938 */ rbrew_write_f32(cpu->mem, _t38, cpu->f[8]);
|
|
/* 0298C93C */ Gambit_fn_02C69468(cpu);
|
|
/* 0298C940 */ _t39 = cpu->r[1] + 0x00000010u;
|
|
/* 0298C940 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t39);
|
|
/* 0298C944 */ _t40 = cpu->r[31] + 0x00000224u;
|
|
/* 0298C944 */ cpu->r[7] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298C948 */ _t41 = cpu->r[31] + 0x0000022Cu;
|
|
/* 0298C948 */ cpu->r[28] = rbrew_read32(cpu->mem, _t41);
|
|
/* 0298C94C */ cpu->r[6] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298C950 */ _t42 = cpu->r[31] + 0x00000348u;
|
|
/* 0298C950 */ rbrew_write_f32(cpu->mem, _t42, cpu->f[8]);
|
|
/* 0298C954 */ cpu->r[29] = cpu->r[28] + cpu->r[6];
|
|
/* 0298C958 */ _t43 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298C958 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t43);
|
|
/* 0298C95C */ _t44 = cpu->r[1] + 0x00000008u;
|
|
/* 0298C95C */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 0298C960 */ _t45 = cpu->r[31] + 0x00000344u;
|
|
/* 0298C960 */ rbrew_write_f32(cpu->mem, _t45, cpu->f[7]);
|
|
/* 0298C964 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 0298C968 */ _t46 = cpu->r[31] + 0x00000340u;
|
|
/* 0298C968 */ rbrew_write_f32(cpu->mem, _t46, cpu->f[6]);
|
|
/* 0298C96C */ _t47 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C96C */ _t48 = _t47 & 0x00000001u;
|
|
/* 0298C96C */ if (_t48) goto L_0298CA04; else goto L_0298C970;
|
|
L_0298C970: ; // 0x298c970
|
|
/* 0298C970 */ _t49 = cpu->r[28] + 0x00000000u;
|
|
/* 0298C970 */ cpu->r[30] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298C974 */ _t50 = cpu->r[30] + 0x0000001Cu;
|
|
/* 0298C974 */ cpu->r[27] = rbrew_read32(cpu->mem, _t50);
|
|
/* 0298C978 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 0298C97C */ cpu->r[31] = 0x00000000u;
|
|
/* 0298C980 */ _t51 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298C980 */ _t52 = _t51 & 0x00000001u;
|
|
/* 0298C980 */ if (_t52) goto L_0298C984; else goto L_0298C9F8;
|
|
L_0298C984: ; // 0x298c984
|
|
/* 0298C984 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C988 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298C98C */ Gambit_fn_0297FC7C(cpu);
|
|
/* 0298C990 */ _t53 = cpu->r[30] + 0x0000001Cu;
|
|
/* 0298C990 */ cpu->r[9] = rbrew_read32(cpu->mem, _t53);
|
|
/* 0298C994 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[9]);
|
|
/* 0298C998 */ cpu->r[8] = 0x00000000u;
|
|
/* 0298C99C */ _t54 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298C99C */ _t55 = _t54 & 0x00000001u;
|
|
/* 0298C99C */ if (_t55) goto L_0298C9A0; else goto L_0298C9AC;
|
|
L_0298C9A0: ; // 0x298c9a0
|
|
/* 0298C9A0 */ _t56 = cpu->r[30] + 0x00000024u;
|
|
/* 0298C9A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t56);
|
|
/* 0298C9A4 */ cpu->r[10] = rbrew_rlwinm(cpu->r[31], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298C9A8 */ _t57 = cpu->r[10] + cpu->r[11];
|
|
/* 0298C9A8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t57);
|
|
L_0298C9AC: ; // 0x298c9ac
|
|
/* 0298C9AC */ _t58 = cpu->r[8] + 0x00000000u;
|
|
/* 0298C9AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t58);
|
|
/* 0298C9B0 */ _t59 = cpu->r[30] + 0x00000088u;
|
|
/* 0298C9B0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t59);
|
|
/* 0298C9B4 */ _t60 = cpu->r[12] + 0x000001E4u;
|
|
/* 0298C9B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t60);
|
|
/* 0298C9B8 */ cpu->ctr = cpu->r[0];
|
|
/* 0298C9BC */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C9C0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298C9C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298C9C8 */ _t61 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C9C8 */ _t62 = _t61 & 0x00000001u;
|
|
/* 0298C9C8 */ if (_t62) goto L_0298C9E4; else goto L_0298C9CC;
|
|
L_0298C9CC: ; // 0x298c9cc
|
|
/* 0298C9CC */ _t63 = cpu->r[30] + 0x00000088u;
|
|
/* 0298C9CC */ cpu->r[5] = rbrew_read32(cpu->mem, _t63);
|
|
/* 0298C9D0 */ _t64 = cpu->r[5] + 0x0000025Cu;
|
|
/* 0298C9D0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t64);
|
|
/* 0298C9D4 */ cpu->ctr = cpu->r[7];
|
|
/* 0298C9D8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298C9DC */ cpu->r[4] = 0x00000000u;
|
|
/* 0298C9E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298C9E4: ; // 0x298c9e4
|
|
/* 0298C9E4 */ cpu->r[27] = cpu->r[27] + 0xFFFFFFFFu;
|
|
/* 0298C9E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], 0x00000000u);
|
|
/* 0298C9E8 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 0298C9EC */ _t65 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298C9EC */ _t66 = _t65 & 0x00000001u;
|
|
/* 0298C9EC */ if (_t66) goto L_0298C9F8; else goto L_0298C9F0;
|
|
L_0298C9F0: ; // 0x298c9f0
|
|
/* 0298C9F0 */ _t67 = cpu->r[28] + 0x00000000u;
|
|
/* 0298C9F0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t67);
|
|
/* 0298C9F4 */ goto L_0298C984;
|
|
L_0298C9F8: ; // 0x298c9f8
|
|
/* 0298C9F8 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298C9FC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 0298CA00 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CA00 */ _t69 = _t68 & 0x00000001u;
|
|
/* 0298CA00 */ if (_t69) goto L_0298CA04; else goto L_0298C970;
|
|
L_0298CA04: ; // 0x298ca04
|
|
/* 0298CA04 */ /* nop */
|
|
/* 0298CA08 */ _t70 = cpu->r[1] + 0x0000003Cu;
|
|
/* 0298CA08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t70);
|
|
/* 0298CA0C */ cpu->lr = cpu->r[0];
|
|
/* 0298CA10 */ cpu->r[1] = cpu->r[1] + 0x00000038u;
|
|
/* 0298CA14 */ return;
|
|
}
|
|
|
|
// fn_0298CA18 @ 0x298ca18
|
|
void Gambit_fn_0298CA18(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_0298CA18: ; // 0x298ca18
|
|
/* 0298CA18 */ cpu->r[0] = cpu->lr;
|
|
/* 0298CA1C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 0298CA1C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 0298CA20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CA24 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 0298CA24 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 0298CA24 */ cpu->r[1] = _t1;
|
|
/* 0298CA28 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CA28 */ _t3 = _t2 & 0x00000001u;
|
|
/* 0298CA28 */ if (_t3) goto L_0298CA2C; else goto L_0298CA3C;
|
|
L_0298CA2C: ; // 0x298ca2c
|
|
/* 0298CA2C */ cpu->r[3] = 0x00000004u;
|
|
/* 0298CA30 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298CA34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CA38 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CA38 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298CA38 */ if (_t5) goto L_0298CA44; else goto L_0298CA3C;
|
|
L_0298CA3C: ; // 0x298ca3c
|
|
/* 0298CA3C */ cpu->r[0] = 0x00000080u;
|
|
/* 0298CA40 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 0298CA40 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
L_0298CA44: ; // 0x298ca44
|
|
/* 0298CA44 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CA44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298CA48 */ cpu->lr = cpu->r[0];
|
|
/* 0298CA4C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 0298CA50 */ return;
|
|
}
|
|
|
|
// fn_0298CA24 @ 0x298ca24
|
|
void Gambit_fn_0298CA24(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_0298CA24: ; // 0x298ca24
|
|
/* 0298CA24 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 0298CA24 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CA24 */ cpu->r[1] = _t0;
|
|
/* 0298CA28 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CA28 */ _t2 = _t1 & 0x00000001u;
|
|
/* 0298CA28 */ if (_t2) goto L_0298CA2C; else goto L_0298CA3C;
|
|
L_0298CA2C: ; // 0x298ca2c
|
|
/* 0298CA2C */ cpu->r[3] = 0x00000004u;
|
|
/* 0298CA30 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298CA34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CA38 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CA38 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298CA38 */ if (_t4) goto L_0298CA44; else goto L_0298CA3C;
|
|
L_0298CA3C: ; // 0x298ca3c
|
|
/* 0298CA3C */ cpu->r[0] = 0x00000080u;
|
|
/* 0298CA40 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 0298CA40 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
L_0298CA44: ; // 0x298ca44
|
|
/* 0298CA44 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CA44 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298CA48 */ cpu->lr = cpu->r[0];
|
|
/* 0298CA4C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 0298CA50 */ return;
|
|
}
|
|
|
|
// fn_0298CA54 @ 0x298ca54
|
|
void Gambit_fn_0298CA54(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_0298CA54: ; // 0x298ca54
|
|
/* 0298CA54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CA58 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CA58 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298CA58 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298CA58 */ goto L_0298CA5C;
|
|
L_0298CA5C: ; // 0x298ca5c
|
|
/* 0298CA5C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298CA5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298CA60 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CA60 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298CA60 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298CA60 */ goto L_0298CA64;
|
|
L_0298CA64: ; // 0x298ca64
|
|
/* 0298CA64 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298CA68 @ 0x298ca68
|
|
void Gambit_fn_0298CA68(CPUState* cpu) {
|
|
L_0298CA68: ; // 0x298ca68
|
|
/* 0298CA68 */ return;
|
|
}
|
|
|
|
// fn_0298CA6C @ 0x298ca6c
|
|
void Gambit_fn_0298CA6C(CPUState* cpu) {
|
|
L_0298CA6C: ; // 0x298ca6c
|
|
/* 0298CA6C */ return;
|
|
}
|
|
|
|
// fn_0298CA70 @ 0x298ca70
|
|
void Gambit_fn_0298CA70(CPUState* cpu) {
|
|
L_0298CA70: ; // 0x298ca70
|
|
/* 0298CA70 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298CA74 */ return;
|
|
}
|
|
|
|
// fn_0298CA78 @ 0x298ca78
|
|
void Gambit_fn_0298CA78(CPUState* cpu) {
|
|
L_0298CA78: ; // 0x298ca78
|
|
/* 0298CA78 */ cpu->r[3] = 0x00000002u;
|
|
/* 0298CA7C */ return;
|
|
}
|
|
|
|
// fn_0298CA80 @ 0x298ca80
|
|
void Gambit_fn_0298CA80(CPUState* cpu) {
|
|
L_0298CA80: ; // 0x298ca80
|
|
/* 0298CA80 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CA84 */ return;
|
|
}
|
|
|
|
// fn_0298CA88 @ 0x298ca88
|
|
void Gambit_fn_0298CA88(CPUState* cpu) {
|
|
L_0298CA88: ; // 0x298ca88
|
|
/* 0298CA88 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CA8C */ return;
|
|
}
|
|
|
|
// fn_0298CA90 @ 0x298ca90
|
|
void Gambit_fn_0298CA90(CPUState* cpu) {
|
|
L_0298CA90: ; // 0x298ca90
|
|
/* 0298CA90 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CA94 */ return;
|
|
}
|
|
|
|
// fn_0298CA98 @ 0x298ca98
|
|
void Gambit_fn_0298CA98(CPUState* cpu) {
|
|
L_0298CA98: ; // 0x298ca98
|
|
/* 0298CA98 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CA9C */ return;
|
|
}
|
|
|
|
// fn_0298CAA0 @ 0x298caa0
|
|
void Gambit_fn_0298CAA0(CPUState* cpu) {
|
|
L_0298CAA0: ; // 0x298caa0
|
|
/* 0298CAA0 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298CAA4 */ return;
|
|
}
|
|
|
|
// fn_0298CAA8 @ 0x298caa8
|
|
void Gambit_fn_0298CAA8(CPUState* cpu) {
|
|
L_0298CAA8: ; // 0x298caa8
|
|
/* 0298CAA8 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298CAAC */ return;
|
|
}
|
|
|
|
// fn_0298CAB0 @ 0x298cab0
|
|
void Gambit_fn_0298CAB0(CPUState* cpu) {
|
|
L_0298CAB0: ; // 0x298cab0
|
|
/* 0298CAB0 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CAB4 */ return;
|
|
}
|
|
|
|
// fn_0298CAB8 @ 0x298cab8
|
|
void Gambit_fn_0298CAB8(CPUState* cpu) {
|
|
L_0298CAB8: ; // 0x298cab8
|
|
/* 0298CAB8 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CABC */ return;
|
|
}
|
|
|
|
// fn_0298CAC0 @ 0x298cac0
|
|
void Gambit_fn_0298CAC0(CPUState* cpu) {
|
|
L_0298CAC0: ; // 0x298cac0
|
|
/* 0298CAC0 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CAC4 */ return;
|
|
}
|
|
|
|
// fn_0298CAC8 @ 0x298cac8
|
|
void Gambit_fn_0298CAC8(CPUState* cpu) {
|
|
L_0298CAC8: ; // 0x298cac8
|
|
/* 0298CAC8 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CACC */ return;
|
|
}
|
|
|
|
// fn_0298CAD0 @ 0x298cad0
|
|
void Gambit_fn_0298CAD0(CPUState* cpu) {
|
|
L_0298CAD0: ; // 0x298cad0
|
|
/* 0298CAD0 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298CAD4 */ return;
|
|
}
|
|
|
|
// fn_0298CAD8 @ 0x298cad8
|
|
void Gambit_fn_0298CAD8(CPUState* cpu) {
|
|
L_0298CAD8: ; // 0x298cad8
|
|
/* 0298CAD8 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298CADC */ return;
|
|
}
|
|
|
|
// fn_0298CAE0 @ 0x298cae0
|
|
void Gambit_fn_0298CAE0(CPUState* cpu) {
|
|
L_0298CAE0: ; // 0x298cae0
|
|
/* 0298CAE0 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CAE4 */ return;
|
|
}
|
|
|
|
// fn_0298CAE8 @ 0x298cae8
|
|
void Gambit_fn_0298CAE8(CPUState* cpu) {
|
|
L_0298CAE8: ; // 0x298cae8
|
|
/* 0298CAE8 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CAEC */ return;
|
|
}
|
|
|
|
// fn_0298CAF0 @ 0x298caf0
|
|
void Gambit_fn_0298CAF0(CPUState* cpu) {
|
|
L_0298CAF0: ; // 0x298caf0
|
|
/* 0298CAF0 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CAF4 */ return;
|
|
}
|
|
|
|
// fn_0298CAF8 @ 0x298caf8
|
|
void Gambit_fn_0298CAF8(CPUState* cpu) {
|
|
L_0298CAF8: ; // 0x298caf8
|
|
/* 0298CAF8 */ cpu->r[3] = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CAFC */ return;
|
|
}
|
|
|
|
// fn_0298CB00 @ 0x298cb00
|
|
void Gambit_fn_0298CB00(CPUState* cpu) {
|
|
L_0298CB00: ; // 0x298cb00
|
|
/* 0298CB00 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298CB04 */ return;
|
|
}
|
|
|
|
// fn_0298CB08 @ 0x298cb08
|
|
void Gambit_fn_0298CB08(CPUState* cpu) {
|
|
L_0298CB08: ; // 0x298cb08
|
|
/* 0298CB08 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298CB0C */ return;
|
|
}
|
|
|
|
// fn_0298CB10 @ 0x298cb10
|
|
void Gambit_fn_0298CB10(CPUState* cpu) {
|
|
L_0298CB10: ; // 0x298cb10
|
|
/* 0298CB10 */ return;
|
|
}
|
|
|
|
// fn_0298CB14 @ 0x298cb14
|
|
void Gambit_fn_0298CB14(CPUState* cpu) {
|
|
L_0298CB14: ; // 0x298cb14
|
|
/* 0298CB14 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298CB18 */ return;
|
|
}
|
|
|
|
// fn_0298CB1C @ 0x298cb1c
|
|
void Gambit_fn_0298CB1C(CPUState* cpu) {
|
|
L_0298CB1C: ; // 0x298cb1c
|
|
/* 0298CB1C */ return;
|
|
}
|
|
|
|
// fn_0298CB20 @ 0x298cb20
|
|
void Gambit_fn_0298CB20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_0298CB20: ; // 0x298cb20
|
|
/* 0298CB20 */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 0298CB20 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298CB24 */ _t1 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CB24 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298CB28 */ _t2 = cpu->r[11] + 0x00000008u;
|
|
/* 0298CB28 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298CB2C */ cpu->r[0] = cpu->r[11] ^ cpu->r[12];
|
|
/* 0298CB30 */ cpu->r[0] = rbrew_clz32(cpu->r[0]);
|
|
/* 0298CB34 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 0298CB38 */ return;
|
|
}
|
|
|
|
// fn_0298CB3C @ 0x298cb3c
|
|
void Gambit_fn_0298CB3C(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_0298CB3C: ; // 0x298cb3c
|
|
/* 0298CB3C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CB40 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CB40 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298CB40 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298CB40 */ goto L_0298CB44;
|
|
L_0298CB44: ; // 0x298cb44
|
|
/* 0298CB44 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298CB44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298CB48 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CB48 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298CB48 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298CB48 */ goto L_0298CB4C;
|
|
L_0298CB4C: ; // 0x298cb4c
|
|
/* 0298CB4C */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298CB50 @ 0x298cb50
|
|
void Gambit_fn_0298CB50(CPUState* cpu) {
|
|
L_0298CB50: ; // 0x298cb50
|
|
/* 0298CB50 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298CB54 */ return;
|
|
}
|
|
|
|
// fn_0298CB58 @ 0x298cb58
|
|
void Gambit_fn_0298CB58(CPUState* cpu) {
|
|
L_0298CB58: ; // 0x298cb58
|
|
/* 0298CB58 */ return;
|
|
}
|
|
|
|
// fn_0298CB5C @ 0x298cb5c
|
|
void Gambit_fn_0298CB5C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_0298CB5C: ; // 0x298cb5c
|
|
/* 0298CB5C */ _t0 = cpu->r[4] + 0x00000000u;
|
|
/* 0298CB5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298CB60 */ _t1 = cpu->r[3] + 0x00000010u;
|
|
/* 0298CB60 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298CB64 */ _t2 = cpu->r[11] + 0x00000004u;
|
|
/* 0298CB64 */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298CB68 */ cpu->r[0] = cpu->r[11] ^ cpu->r[12];
|
|
/* 0298CB6C */ cpu->r[0] = rbrew_clz32(cpu->r[0]);
|
|
/* 0298CB70 */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 0298CB74 */ return;
|
|
}
|
|
|
|
// fn_0298CB78 @ 0x298cb78
|
|
void Gambit_fn_0298CB78(CPUState* cpu) {
|
|
L_0298CB78: ; // 0x298cb78
|
|
/* 0298CB78 */ return;
|
|
}
|
|
|
|
// fn_0298CB7C @ 0x298cb7c
|
|
void Gambit_fn_0298CB7C(CPUState* cpu) {
|
|
L_0298CB7C: ; // 0x298cb7c
|
|
/* 0298CB7C */ return;
|
|
}
|
|
|
|
// fn_0298CB80 @ 0x298cb80
|
|
void Gambit_fn_0298CB80(CPUState* cpu) {
|
|
L_0298CB80: ; // 0x298cb80
|
|
/* 0298CB80 */ return;
|
|
}
|
|
|
|
// fn_0298CB84 @ 0x298cb84
|
|
void Gambit_fn_0298CB84(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_0298CB84: ; // 0x298cb84
|
|
/* 0298CB84 */ cpu->r[0] = cpu->lr;
|
|
/* 0298CB88 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CB88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CB88 */ cpu->r[1] = _t0;
|
|
/* 0298CB8C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CB8C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CB90 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CB90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CB94 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CB94 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298CB98 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CB98 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298CB98 */ if (_t4) goto L_0298CB9C; else goto L_0298CBAC;
|
|
L_0298CB9C: ; // 0x298cb9c
|
|
/* 0298CB9C */ cpu->r[3] = 0x00000020u;
|
|
/* 0298CBA0 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298CBA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CBA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CBA8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CBA8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298CBA8 */ if (_t6) goto L_0298CBCC; else goto L_0298CBAC;
|
|
L_0298CBAC: ; // 0x298cbac
|
|
/* 0298CBAC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CBB0 */ Gambit_fn_028EFA70(cpu);
|
|
/* 0298CBB4 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298CBB8 */ cpu->r[12] = 0x00000000u;
|
|
/* 0298CBBC */ cpu->r[11] = cpu->r[11] + 0xFFFFF510u;
|
|
/* 0298CBC0 */ _t7 = cpu->r[31] + 0x0000001Cu;
|
|
/* 0298CBC0 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 0298CBC4 */ _t8 = cpu->r[31] + 0x00000014u;
|
|
/* 0298CBC4 */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 0298CBC8 */ _t9 = cpu->r[31] + 0x00000018u;
|
|
/* 0298CBC8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
L_0298CBCC: ; // 0x298cbcc
|
|
/* 0298CBCC */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CBCC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CBD0 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CBD4 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CBD4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298CBD8 */ cpu->lr = cpu->r[0];
|
|
/* 0298CBDC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298CBE0 */ return;
|
|
}
|
|
|
|
// fn_0298CB88 @ 0x298cb88
|
|
void Gambit_fn_0298CB88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_0298CB88: ; // 0x298cb88
|
|
/* 0298CB88 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CB88 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CB88 */ cpu->r[1] = _t0;
|
|
/* 0298CB8C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CB8C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CB90 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CB90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CB94 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CB94 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298CB98 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CB98 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298CB98 */ if (_t4) goto L_0298CB9C; else goto L_0298CBAC;
|
|
L_0298CB9C: ; // 0x298cb9c
|
|
/* 0298CB9C */ cpu->r[3] = 0x00000020u;
|
|
/* 0298CBA0 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298CBA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CBA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CBA8 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CBA8 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298CBA8 */ if (_t6) goto L_0298CBCC; else goto L_0298CBAC;
|
|
L_0298CBAC: ; // 0x298cbac
|
|
/* 0298CBAC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CBB0 */ Gambit_fn_028EFA70(cpu);
|
|
/* 0298CBB4 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298CBB8 */ cpu->r[12] = 0x00000000u;
|
|
/* 0298CBBC */ cpu->r[11] = cpu->r[11] + 0xFFFFF510u;
|
|
/* 0298CBC0 */ _t7 = cpu->r[31] + 0x0000001Cu;
|
|
/* 0298CBC0 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 0298CBC4 */ _t8 = cpu->r[31] + 0x00000014u;
|
|
/* 0298CBC4 */ rbrew_write32(cpu->mem, _t8, cpu->r[11]);
|
|
/* 0298CBC8 */ _t9 = cpu->r[31] + 0x00000018u;
|
|
/* 0298CBC8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
L_0298CBCC: ; // 0x298cbcc
|
|
/* 0298CBCC */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CBCC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CBD0 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CBD4 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CBD4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298CBD8 */ cpu->lr = cpu->r[0];
|
|
/* 0298CBDC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298CBE0 */ return;
|
|
}
|
|
|
|
// fn_0298CBE4 @ 0x298cbe4
|
|
void Gambit_fn_0298CBE4(CPUState* cpu) {
|
|
uint32_t _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_0298CBE4: ; // 0x298cbe4
|
|
/* 0298CBE4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298CBE8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298CBE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CBE8 */ cpu->r[1] = _t0;
|
|
/* 0298CBEC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CBEC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CBF0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CBF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298CBF4 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298CBF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298CBF8 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298CBFC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CBFC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298CC00 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CC00 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298CC04 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC04 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298CC04 */ if (_t6) goto L_0298CC70; else goto L_0298CC08;
|
|
L_0298CC08: ; // 0x298cc08
|
|
/* 0298CC08 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298CC0C */ _t7 = cpu->r[30] + 0x0000001Cu;
|
|
/* 0298CC0C */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298CC10 */ cpu->r[10] = cpu->r[10] + 0xFFFFF510u;
|
|
/* 0298CC14 */ cpu->r[29] = 0x00000000u;
|
|
/* 0298CC18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CC1C */ _t8 = cpu->r[30] + 0x00000014u;
|
|
/* 0298CC1C */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 0298CC20 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC20 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298CC20 */ if (_t10) goto L_0298CC40; else goto L_0298CC24;
|
|
L_0298CC24: ; // 0x298cc24
|
|
/* 0298CC24 */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298CC28 */ _t11 = cpu->r[30] + 0x0000001Cu;
|
|
/* 0298CC28 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298CC2C */ _t12 = cpu->r[30] + 0x00000018u;
|
|
/* 0298CC2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298CC30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 0298CC34 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC34 */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298CC34 */ if (_t14) goto L_0298CC38; else goto L_0298CC3C;
|
|
L_0298CC38: ; // 0x298cc38
|
|
/* 0298CC38 */ _t15 = cpu->r[30] + 0x00000018u;
|
|
/* 0298CC38 */ rbrew_write32(cpu->mem, _t15, cpu->r[29]);
|
|
L_0298CC3C: ; // 0x298cc3c
|
|
/* 0298CC3C */ _t16 = cpu->r[30] + 0x0000001Cu;
|
|
/* 0298CC3C */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_0298CC40: ; // 0x298cc40
|
|
/* 0298CC40 */ _t17 = cpu->r[30] + 0x00000018u;
|
|
/* 0298CC40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298CC44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CC48 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC48 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298CC48 */ if (_t19) goto L_0298CC54; else goto L_0298CC4C;
|
|
L_0298CC4C: ; // 0x298cc4c
|
|
/* 0298CC4C */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298CC50 */ _t20 = cpu->r[30] + 0x00000018u;
|
|
/* 0298CC50 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
L_0298CC54: ; // 0x298cc54
|
|
/* 0298CC54 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CC58 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298CC5C */ Gambit_fn_028EFB34(cpu);
|
|
/* 0298CC60 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298CC60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298CC64 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC64 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298CC64 */ if (_t22) goto L_0298CC70; else goto L_0298CC68;
|
|
L_0298CC68: ; // 0x298cc68
|
|
/* 0298CC68 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CC6C */ Gambit_fn_02801BB0(cpu);
|
|
L_0298CC70: ; // 0x298cc70
|
|
/* 0298CC70 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CC70 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298CC74 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CC74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298CC78 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CC78 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298CC7C */ cpu->lr = cpu->r[0];
|
|
/* 0298CC80 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CC80 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298CC84 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298CC88 */ return;
|
|
}
|
|
|
|
// fn_0298CBE8 @ 0x298cbe8
|
|
void Gambit_fn_0298CBE8(CPUState* cpu) {
|
|
uint32_t _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_0298CBE8: ; // 0x298cbe8
|
|
/* 0298CBE8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298CBE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CBE8 */ cpu->r[1] = _t0;
|
|
/* 0298CBEC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CBEC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CBF0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CBF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298CBF4 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298CBF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298CBF8 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298CBFC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CBFC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298CC00 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CC00 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298CC04 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC04 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298CC04 */ if (_t6) goto L_0298CC70; else goto L_0298CC08;
|
|
L_0298CC08: ; // 0x298cc08
|
|
/* 0298CC08 */ cpu->r[10] = 0x10150000u;
|
|
/* 0298CC0C */ _t7 = cpu->r[30] + 0x0000001Cu;
|
|
/* 0298CC0C */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298CC10 */ cpu->r[10] = cpu->r[10] + 0xFFFFF510u;
|
|
/* 0298CC14 */ cpu->r[29] = 0x00000000u;
|
|
/* 0298CC18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CC1C */ _t8 = cpu->r[30] + 0x00000014u;
|
|
/* 0298CC1C */ rbrew_write32(cpu->mem, _t8, cpu->r[10]);
|
|
/* 0298CC20 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC20 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298CC20 */ if (_t10) goto L_0298CC40; else goto L_0298CC24;
|
|
L_0298CC24: ; // 0x298cc24
|
|
/* 0298CC24 */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298CC28 */ _t11 = cpu->r[30] + 0x0000001Cu;
|
|
/* 0298CC28 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298CC2C */ _t12 = cpu->r[30] + 0x00000018u;
|
|
/* 0298CC2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298CC30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[0]);
|
|
/* 0298CC34 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC34 */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298CC34 */ if (_t14) goto L_0298CC38; else goto L_0298CC3C;
|
|
L_0298CC38: ; // 0x298cc38
|
|
/* 0298CC38 */ _t15 = cpu->r[30] + 0x00000018u;
|
|
/* 0298CC38 */ rbrew_write32(cpu->mem, _t15, cpu->r[29]);
|
|
L_0298CC3C: ; // 0x298cc3c
|
|
/* 0298CC3C */ _t16 = cpu->r[30] + 0x0000001Cu;
|
|
/* 0298CC3C */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_0298CC40: ; // 0x298cc40
|
|
/* 0298CC40 */ _t17 = cpu->r[30] + 0x00000018u;
|
|
/* 0298CC40 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298CC44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CC48 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC48 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298CC48 */ if (_t19) goto L_0298CC54; else goto L_0298CC4C;
|
|
L_0298CC4C: ; // 0x298cc4c
|
|
/* 0298CC4C */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298CC50 */ _t20 = cpu->r[30] + 0x00000018u;
|
|
/* 0298CC50 */ rbrew_write32(cpu->mem, _t20, cpu->r[29]);
|
|
L_0298CC54: ; // 0x298cc54
|
|
/* 0298CC54 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CC58 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298CC5C */ Gambit_fn_028EFB34(cpu);
|
|
/* 0298CC60 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298CC60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298CC64 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CC64 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298CC64 */ if (_t22) goto L_0298CC70; else goto L_0298CC68;
|
|
L_0298CC68: ; // 0x298cc68
|
|
/* 0298CC68 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CC6C */ Gambit_fn_02801BB0(cpu);
|
|
L_0298CC70: ; // 0x298cc70
|
|
/* 0298CC70 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CC70 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298CC74 */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CC74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298CC78 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CC78 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298CC7C */ cpu->lr = cpu->r[0];
|
|
/* 0298CC80 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CC80 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298CC84 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298CC88 */ return;
|
|
}
|
|
|
|
// fn_0298CC8C @ 0x298cc8c
|
|
void Gambit_fn_0298CC8C(CPUState* cpu) {
|
|
uint32_t _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_0298CC8C: ; // 0x298cc8c
|
|
/* 0298CC8C */ cpu->r[0] = cpu->lr;
|
|
/* 0298CC90 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298CC90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CC90 */ cpu->r[1] = _t0;
|
|
/* 0298CC94 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CC94 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298CC98 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CC98 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298CC9C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CC9C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298CCA0 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CCA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 0298CCA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CCA8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CCA8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298CCAC */ _t6 = cpu->r[31] + 0x0000001Cu;
|
|
/* 0298CCAC */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298CCB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CCB4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CCB4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298CCB4 */ if (_t8) goto L_0298CCC4; else goto L_0298CCB8;
|
|
L_0298CCB8: ; // 0x298ccb8
|
|
/* 0298CCB8 */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298CCBC */ cpu->r[0] = 0x00000000u;
|
|
/* 0298CCC0 */ _t9 = cpu->r[31] + 0x0000001Cu;
|
|
/* 0298CCC0 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
L_0298CCC4: ; // 0x298ccc4
|
|
/* 0298CCC4 */ cpu->r[29] = 0x101D0000u;
|
|
/* 0298CCC8 */ _t10 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 0298CCC8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CCC8 */ cpu->r[29] = _t10;
|
|
/* 0298CCCC */ Gambit_fn_028F00A4(cpu);
|
|
/* 0298CCD0 */ cpu->r[30] = 0x101D0000u;
|
|
/* 0298CCD4 */ _t11 = cpu->r[30] + 0xFFFFAA68u;
|
|
/* 0298CCD4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298CCD8 */ Gambit_fn_02A110EC(cpu);
|
|
/* 0298CCDC */ cpu->r[28] = cpu->r[3];
|
|
/* 0298CCE0 */ _t12 = cpu->r[30] + 0xFFFFAA68u;
|
|
/* 0298CCE0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298CCE4 */ Gambit_fn_02A11260(cpu);
|
|
/* 0298CCE8 */ cpu->r[5] = cpu->r[3];
|
|
/* 0298CCEC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CCF0 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CCF4 */ Gambit_fn_028EFC84(cpu);
|
|
/* 0298CCF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CCFC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CCFC */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298CCFC */ if (_t14) goto L_0298CD24; else goto L_0298CD00;
|
|
L_0298CD00: ; // 0x298cd00
|
|
/* 0298CD00 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CD00 */ cpu->r[28] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298CD04 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CD04 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298CD08 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CD08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298CD0C */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CD0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298CD10 */ cpu->lr = cpu->r[0];
|
|
/* 0298CD14 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CD14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298CD18 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298CD1C */ cpu->r[3] = 0x00000001u;
|
|
/* 0298CD20 */ return;
|
|
L_0298CD24: ; // 0x298cd24
|
|
/* 0298CD24 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 0298CD24 */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298CD28 */ Gambit_fn_028F0104(cpu);
|
|
/* 0298CD2C */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CD2C */ cpu->r[28] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298CD30 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CD30 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298CD34 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CD34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298CD38 */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CD38 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298CD3C */ cpu->lr = cpu->r[0];
|
|
/* 0298CD40 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CD40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298CD44 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298CD48 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298CD4C */ return;
|
|
}
|
|
|
|
// fn_0298CC90 @ 0x298cc90
|
|
void Gambit_fn_0298CC90(CPUState* cpu) {
|
|
uint32_t _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_0298CC90: ; // 0x298cc90
|
|
/* 0298CC90 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298CC90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CC90 */ cpu->r[1] = _t0;
|
|
/* 0298CC94 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CC94 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298CC98 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CC98 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298CC9C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CC9C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298CCA0 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CCA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 0298CCA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CCA8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CCA8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298CCAC */ _t6 = cpu->r[31] + 0x0000001Cu;
|
|
/* 0298CCAC */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298CCB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CCB4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CCB4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298CCB4 */ if (_t8) goto L_0298CCC4; else goto L_0298CCB8;
|
|
L_0298CCB8: ; // 0x298ccb8
|
|
/* 0298CCB8 */ Gambit_fn_02801BB4(cpu);
|
|
/* 0298CCBC */ cpu->r[0] = 0x00000000u;
|
|
/* 0298CCC0 */ _t9 = cpu->r[31] + 0x0000001Cu;
|
|
/* 0298CCC0 */ rbrew_write32(cpu->mem, _t9, cpu->r[0]);
|
|
L_0298CCC4: ; // 0x298ccc4
|
|
/* 0298CCC4 */ cpu->r[29] = 0x101D0000u;
|
|
/* 0298CCC8 */ _t10 = cpu->r[29] + 0xFFFF9B14u;
|
|
/* 0298CCC8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CCC8 */ cpu->r[29] = _t10;
|
|
/* 0298CCCC */ Gambit_fn_028F00A4(cpu);
|
|
/* 0298CCD0 */ cpu->r[30] = 0x101D0000u;
|
|
/* 0298CCD4 */ _t11 = cpu->r[30] + 0xFFFFAA68u;
|
|
/* 0298CCD4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298CCD8 */ Gambit_fn_02A110EC(cpu);
|
|
/* 0298CCDC */ cpu->r[28] = cpu->r[3];
|
|
/* 0298CCE0 */ _t12 = cpu->r[30] + 0xFFFFAA68u;
|
|
/* 0298CCE0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298CCE4 */ Gambit_fn_02A11260(cpu);
|
|
/* 0298CCE8 */ cpu->r[5] = cpu->r[3];
|
|
/* 0298CCEC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CCF0 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CCF4 */ Gambit_fn_028EFC84(cpu);
|
|
/* 0298CCF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CCFC */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CCFC */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298CCFC */ if (_t14) goto L_0298CD24; else goto L_0298CD00;
|
|
L_0298CD00: ; // 0x298cd00
|
|
/* 0298CD00 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CD00 */ cpu->r[28] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298CD04 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CD04 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298CD08 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CD08 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298CD0C */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CD0C */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298CD10 */ cpu->lr = cpu->r[0];
|
|
/* 0298CD14 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CD14 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298CD18 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298CD1C */ cpu->r[3] = 0x00000001u;
|
|
/* 0298CD20 */ return;
|
|
L_0298CD24: ; // 0x298cd24
|
|
/* 0298CD24 */ _t20 = cpu->r[29] + 0x00000000u;
|
|
/* 0298CD24 */ cpu->r[3] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298CD28 */ Gambit_fn_028F0104(cpu);
|
|
/* 0298CD2C */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CD2C */ cpu->r[28] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298CD30 */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CD30 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298CD34 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CD34 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298CD38 */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CD38 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298CD3C */ cpu->lr = cpu->r[0];
|
|
/* 0298CD40 */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CD40 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298CD44 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298CD48 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298CD4C */ return;
|
|
}
|
|
|
|
// fn_0298CD50 @ 0x298cd50
|
|
void Gambit_fn_0298CD50(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298CD50: ; // 0x298cd50
|
|
/* 0298CD50 */ cpu->r[0] = cpu->lr;
|
|
/* 0298CD54 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298CD54 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CD54 */ cpu->r[1] = _t0;
|
|
/* 0298CD58 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CD58 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298CD5C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CD5C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298CD60 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CD60 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298CD64 */ cpu->r[31] = cpu->r[5];
|
|
/* 0298CD68 */ cpu->r[6] = 0x00000000u;
|
|
/* 0298CD6C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CD6C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298CD70 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298CD74 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298CD78 */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 0298CD78 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298CD7C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CD80 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 0298CD84 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298CD88 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CD8C */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 0298CD90 */ _t6 = cpu->r[29] + 0x00000000u;
|
|
/* 0298CD90 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298CD94 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298CD98 */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
/* 0298CD9C */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CD9C */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298CDA0 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CDA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298CDA4 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CDA4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298CDA8 */ cpu->lr = cpu->r[0];
|
|
/* 0298CDAC */ _t10 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CDAC */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CDB0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298CDB4 */ return;
|
|
}
|
|
|
|
// fn_0298CD54 @ 0x298cd54
|
|
void Gambit_fn_0298CD54(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298CD54: ; // 0x298cd54
|
|
/* 0298CD54 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298CD54 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CD54 */ cpu->r[1] = _t0;
|
|
/* 0298CD58 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CD58 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298CD5C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CD5C */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298CD60 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CD60 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298CD64 */ cpu->r[31] = cpu->r[5];
|
|
/* 0298CD68 */ cpu->r[6] = 0x00000000u;
|
|
/* 0298CD6C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CD6C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298CD70 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298CD74 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298CD78 */ _t5 = cpu->r[29] + 0x00000000u;
|
|
/* 0298CD78 */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298CD7C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CD80 */ rbrew_dispatch(cpu, 0x02d0a6e8u);
|
|
/* 0298CD84 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298CD88 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CD8C */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 0298CD90 */ _t6 = cpu->r[29] + 0x00000000u;
|
|
/* 0298CD90 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298CD94 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298CD98 */ rbrew_dispatch(cpu, 0x02d09330u);
|
|
/* 0298CD9C */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CD9C */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298CDA0 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CDA0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298CDA4 */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CDA4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298CDA8 */ cpu->lr = cpu->r[0];
|
|
/* 0298CDAC */ _t10 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CDAC */ cpu->r[30] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CDB0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298CDB4 */ return;
|
|
}
|
|
|
|
// fn_0298CDB8 @ 0x298cdb8
|
|
void Gambit_fn_0298CDB8(CPUState* cpu) {
|
|
uint32_t _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_0298CDB8: ; // 0x298cdb8
|
|
/* 0298CDB8 */ cpu->r[0] = cpu->lr;
|
|
/* 0298CDBC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298CDBC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CDBC */ cpu->r[1] = _t0;
|
|
/* 0298CDC0 */ _t1 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CDC0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CDC4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CDC4 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298CDC8 */ cpu->r[28] = 0x00000000u;
|
|
/* 0298CDCC */ cpu->r[31] = cpu->r[4];
|
|
/* 0298CDD0 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 0298CDD0 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 0298CDD4 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CDD8 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CDD8 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 0298CDDC */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 0298CDDC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298CDE0 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298CDE4 */ Gambit_fn_028EFC14(cpu);
|
|
/* 0298CDE8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298CDE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298CDEC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CDEC */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298CDEC */ if (_t7) goto L_0298CE6C; else goto L_0298CDF0;
|
|
L_0298CDF0: ; // 0x298cdf0
|
|
/* 0298CDF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CDF4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CDF4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298CDF4 */ if (_t9) goto L_0298CDF8; else goto L_0298CE08;
|
|
L_0298CDF8: ; // 0x298cdf8
|
|
/* 0298CDF8 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298CDFC */ _t10 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 0298CDFC */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CE00 */ Gambit_fn_02826F20(cpu);
|
|
/* 0298CE04 */ cpu->r[31] = cpu->r[3];
|
|
L_0298CE08: ; // 0x298ce08
|
|
/* 0298CE08 */ cpu->r[5] = 0x00000020u;
|
|
/* 0298CE0C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298CE10 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298CE14 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CE14 */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 0298CE18 */ Gambit_fn_0297EA50(cpu);
|
|
/* 0298CE1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CE20 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CE20 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298CE20 */ if (_t13) goto L_0298CE68; else goto L_0298CE24;
|
|
L_0298CE24: ; // 0x298ce24
|
|
/* 0298CE24 */ _t14 = cpu->r[29] + 0x00000018u;
|
|
/* 0298CE24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298CE28 */ cpu->r[28] = cpu->r[3];
|
|
/* 0298CE2C */ cpu->r[5] = cpu->r[30];
|
|
/* 0298CE30 */ _t15 = cpu->r[29] + 0x00000018u;
|
|
/* 0298CE30 */ rbrew_write32(cpu->mem, _t15, cpu->r[28]);
|
|
/* 0298CE34 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298CE38 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CE3C */ _t16 = cpu->r[29] + 0x0000001Cu;
|
|
/* 0298CE3C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 0298CE40 */ Gambit_fn_0298CD50(cpu);
|
|
/* 0298CE44 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298CE48 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CE4C */ cpu->r[3] = cpu->r[29];
|
|
/* 0298CE50 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 0298CE54 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298CE58 */ _t17 = cpu->r[3] + 0xFFFF9B14u;
|
|
/* 0298CE58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298CE5C */ Gambit_fn_028F0104(cpu);
|
|
/* 0298CE60 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298CE64 */ goto L_0298CE8C;
|
|
L_0298CE68: ; // 0x298ce68
|
|
/* 0298CE68 */ cpu->r[30] = 0x00000000u;
|
|
L_0298CE6C: ; // 0x298ce6c
|
|
/* 0298CE6C */ cpu->r[5] = cpu->r[30];
|
|
/* 0298CE70 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CE74 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298CE78 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 0298CE7C */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298CE80 */ _t18 = cpu->r[3] + 0xFFFF9B14u;
|
|
/* 0298CE80 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298CE84 */ Gambit_fn_028F0104(cpu);
|
|
/* 0298CE88 */ cpu->r[3] = 0x00000001u;
|
|
L_0298CE8C: ; // 0x298ce8c
|
|
/* 0298CE8C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CE8C */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298CE90 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CE90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298CE94 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 0298CE94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298CE98 */ _t22 = cpu->r[1] + 0x00000018u;
|
|
/* 0298CE98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298CE9C */ cpu->lr = cpu->r[0];
|
|
/* 0298CEA0 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CEA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298CEA4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298CEA8 */ return;
|
|
}
|
|
|
|
// fn_0298CDBC @ 0x298cdbc
|
|
void Gambit_fn_0298CDBC(CPUState* cpu) {
|
|
uint32_t _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_0298CDBC: ; // 0x298cdbc
|
|
/* 0298CDBC */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298CDBC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CDBC */ cpu->r[1] = _t0;
|
|
/* 0298CDC0 */ _t1 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CDC0 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CDC4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CDC4 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298CDC8 */ cpu->r[28] = 0x00000000u;
|
|
/* 0298CDCC */ cpu->r[31] = cpu->r[4];
|
|
/* 0298CDD0 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 0298CDD0 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 0298CDD4 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CDD8 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CDD8 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 0298CDDC */ _t5 = cpu->r[1] + 0x00000024u;
|
|
/* 0298CDDC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298CDE0 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298CDE4 */ Gambit_fn_028EFC14(cpu);
|
|
/* 0298CDE8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298CDE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298CDEC */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CDEC */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298CDEC */ if (_t7) goto L_0298CE6C; else goto L_0298CDF0;
|
|
L_0298CDF0: ; // 0x298cdf0
|
|
/* 0298CDF0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CDF4 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CDF4 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298CDF4 */ if (_t9) goto L_0298CDF8; else goto L_0298CE08;
|
|
L_0298CDF8: ; // 0x298cdf8
|
|
/* 0298CDF8 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298CDFC */ _t10 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 0298CDFC */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CE00 */ Gambit_fn_02826F20(cpu);
|
|
/* 0298CE04 */ cpu->r[31] = cpu->r[3];
|
|
L_0298CE08: ; // 0x298ce08
|
|
/* 0298CE08 */ cpu->r[5] = 0x00000020u;
|
|
/* 0298CE0C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298CE10 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298CE14 */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CE14 */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 0298CE18 */ Gambit_fn_0297EA50(cpu);
|
|
/* 0298CE1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CE20 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CE20 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298CE20 */ if (_t13) goto L_0298CE68; else goto L_0298CE24;
|
|
L_0298CE24: ; // 0x298ce24
|
|
/* 0298CE24 */ _t14 = cpu->r[29] + 0x00000018u;
|
|
/* 0298CE24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298CE28 */ cpu->r[28] = cpu->r[3];
|
|
/* 0298CE2C */ cpu->r[5] = cpu->r[30];
|
|
/* 0298CE30 */ _t15 = cpu->r[29] + 0x00000018u;
|
|
/* 0298CE30 */ rbrew_write32(cpu->mem, _t15, cpu->r[28]);
|
|
/* 0298CE34 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298CE38 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CE3C */ _t16 = cpu->r[29] + 0x0000001Cu;
|
|
/* 0298CE3C */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 0298CE40 */ Gambit_fn_0298CD50(cpu);
|
|
/* 0298CE44 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298CE48 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CE4C */ cpu->r[3] = cpu->r[29];
|
|
/* 0298CE50 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 0298CE54 */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298CE58 */ _t17 = cpu->r[3] + 0xFFFF9B14u;
|
|
/* 0298CE58 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298CE5C */ Gambit_fn_028F0104(cpu);
|
|
/* 0298CE60 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298CE64 */ goto L_0298CE8C;
|
|
L_0298CE68: ; // 0x298ce68
|
|
/* 0298CE68 */ cpu->r[30] = 0x00000000u;
|
|
L_0298CE6C: ; // 0x298ce6c
|
|
/* 0298CE6C */ cpu->r[5] = cpu->r[30];
|
|
/* 0298CE70 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298CE74 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298CE78 */ Gambit_fn_028EF9F0(cpu);
|
|
/* 0298CE7C */ cpu->r[3] = 0x101D0000u;
|
|
/* 0298CE80 */ _t18 = cpu->r[3] + 0xFFFF9B14u;
|
|
/* 0298CE80 */ cpu->r[3] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298CE84 */ Gambit_fn_028F0104(cpu);
|
|
/* 0298CE88 */ cpu->r[3] = 0x00000001u;
|
|
L_0298CE8C: ; // 0x298ce8c
|
|
/* 0298CE8C */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 0298CE8C */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298CE90 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CE90 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298CE94 */ _t21 = cpu->r[1] + 0x00000024u;
|
|
/* 0298CE94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298CE98 */ _t22 = cpu->r[1] + 0x00000018u;
|
|
/* 0298CE98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298CE9C */ cpu->lr = cpu->r[0];
|
|
/* 0298CEA0 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298CEA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298CEA4 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298CEA8 */ return;
|
|
}
|
|
|
|
// fn_0298CEAC @ 0x298ceac
|
|
void Gambit_fn_0298CEAC(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_0298CEAC: ; // 0x298ceac
|
|
/* 0298CEAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298CEB0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CEB0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298CEB0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298CEB0 */ goto L_0298CEB4;
|
|
L_0298CEB4: ; // 0x298ceb4
|
|
/* 0298CEB4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298CEB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298CEB8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CEB8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298CEB8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298CEB8 */ goto L_0298CEBC;
|
|
L_0298CEBC: ; // 0x298cebc
|
|
/* 0298CEBC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298CEC0 @ 0x298cec0
|
|
void Gambit_fn_0298CEC0(CPUState* cpu) {
|
|
L_0298CEC0: ; // 0x298cec0
|
|
/* 0298CEC0 */ return;
|
|
}
|
|
|
|
// fn_0298CEC4 @ 0x298cec4
|
|
void Gambit_fn_0298CEC4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_0298CEC4: ; // 0x298cec4
|
|
/* 0298CEC4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298CEC8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CEC8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CEC8 */ cpu->r[1] = _t0;
|
|
/* 0298CECC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CECC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CED0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CED0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298CED4 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298CED4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298CED8 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298CEDC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CEDC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298CEE0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CEE0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298CEE0 */ if (_t5) goto L_0298CF18; else goto L_0298CEE4;
|
|
L_0298CEE4: ; // 0x298cee4
|
|
/* 0298CEE4 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298CEE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CEEC */ cpu->r[0] = cpu->r[0] + 0xFFFFF8ACu;
|
|
/* 0298CEF0 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298CEF4 */ _t6 = cpu->r[30] + 0x0000008Cu;
|
|
/* 0298CEF4 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298CEF8 */ cpu->r[12] = cpu->r[12] + 0xFFFFF8C4u;
|
|
/* 0298CEFC */ cpu->r[4] = 0x00000000u;
|
|
/* 0298CF00 */ _t7 = cpu->r[30] + 0x00000090u;
|
|
/* 0298CF00 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 0298CF04 */ Gambit_fn_029905BC(cpu);
|
|
/* 0298CF08 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298CF08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298CF0C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CF0C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298CF0C */ if (_t9) goto L_0298CF18; else goto L_0298CF10;
|
|
L_0298CF10: ; // 0x298cf10
|
|
/* 0298CF10 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CF14 */ Gambit_fn_02801BB0(cpu);
|
|
L_0298CF18: ; // 0x298cf18
|
|
/* 0298CF18 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CF18 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CF1C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CF1C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298CF20 */ cpu->lr = cpu->r[0];
|
|
/* 0298CF24 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CF24 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298CF28 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298CF2C */ return;
|
|
}
|
|
|
|
// fn_0298CEC8 @ 0x298cec8
|
|
void Gambit_fn_0298CEC8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_0298CEC8: ; // 0x298cec8
|
|
/* 0298CEC8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CEC8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CEC8 */ cpu->r[1] = _t0;
|
|
/* 0298CECC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CECC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CED0 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CED0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298CED4 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298CED4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298CED8 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298CEDC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CEDC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298CEE0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CEE0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298CEE0 */ if (_t5) goto L_0298CF18; else goto L_0298CEE4;
|
|
L_0298CEE4: ; // 0x298cee4
|
|
/* 0298CEE4 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298CEE8 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CEEC */ cpu->r[0] = cpu->r[0] + 0xFFFFF8ACu;
|
|
/* 0298CEF0 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298CEF4 */ _t6 = cpu->r[30] + 0x0000008Cu;
|
|
/* 0298CEF4 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298CEF8 */ cpu->r[12] = cpu->r[12] + 0xFFFFF8C4u;
|
|
/* 0298CEFC */ cpu->r[4] = 0x00000000u;
|
|
/* 0298CF00 */ _t7 = cpu->r[30] + 0x00000090u;
|
|
/* 0298CF00 */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
/* 0298CF04 */ Gambit_fn_029905BC(cpu);
|
|
/* 0298CF08 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298CF08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298CF0C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CF0C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298CF0C */ if (_t9) goto L_0298CF18; else goto L_0298CF10;
|
|
L_0298CF10: ; // 0x298cf10
|
|
/* 0298CF10 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298CF14 */ Gambit_fn_02801BB0(cpu);
|
|
L_0298CF18: ; // 0x298cf18
|
|
/* 0298CF18 */ _t10 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CF18 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CF1C */ _t11 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CF1C */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298CF20 */ cpu->lr = cpu->r[0];
|
|
/* 0298CF24 */ _t12 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CF24 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298CF28 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298CF2C */ return;
|
|
}
|
|
|
|
// fn_0298CF30 @ 0x298cf30
|
|
void Gambit_fn_0298CF30(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_0298CF30: ; // 0x298cf30
|
|
/* 0298CF30 */ cpu->r[3] = cpu->r[3] + 0xFFFFFF74u;
|
|
/* 0298CF34 */ goto L_029906F8;
|
|
L_029906F8: ; // 0x29906f8
|
|
/* 029906F8 */ cpu->r[0] = cpu->lr;
|
|
/* 029906FC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029906FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029906FC */ cpu->r[1] = _t0;
|
|
/* 02990700 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02990700 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02990704 */ cpu->r[31] = cpu->r[4];
|
|
/* 02990708 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990708 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0299070C */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 0299070C */ cpu->r[6] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02990710 */ _t4 = cpu->r[5] + 0x00000008u;
|
|
/* 02990710 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02990714 */ _t5 = cpu->r[6] + 0x00000000u;
|
|
/* 02990714 */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02990718 */ cpu->r[9] = 0x34000000u;
|
|
/* 0299071C */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0299071C */ rbrew_write32(cpu->mem, _t6, cpu->r[7]);
|
|
/* 02990720 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 02990720 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02990724 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 02990728 */ cpu->r[8] = cpu->r[8] & cpu->r[9];
|
|
/* 0299072C */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 0299072C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 02990730 */ _t9 = cpu->r[5] + 0x00000000u;
|
|
/* 02990730 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02990734 */ _t10 = cpu->r[5] + 0x00000004u;
|
|
/* 02990734 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02990738 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990738 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 0299073C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 0299073C */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 02990740 */ _t13 = cpu->r[3] + 0x000000E4u;
|
|
/* 02990740 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02990740 */ cpu->r[3] = _t13;
|
|
/* 02990744 */ _t14 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02990744 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990748 */ cpu->ctr = cpu->r[0];
|
|
/* 0299074C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 02990750 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990754 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 02990754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990758 */ _t16 = cpu->r[31] + 0x00000004u;
|
|
/* 02990758 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 0299075C */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299075C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02990760 */ cpu->lr = cpu->r[0];
|
|
/* 02990764 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02990764 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02990768 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0299076C */ return;
|
|
}
|
|
|
|
// fn_0298CF38 @ 0x298cf38
|
|
void Gambit_fn_0298CF38(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298CF38: ; // 0x298cf38
|
|
/* 0298CF38 */ cpu->r[0] = cpu->lr;
|
|
/* 0298CF3C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CF3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CF3C */ cpu->r[1] = _t0;
|
|
/* 0298CF40 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CF40 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CF44 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CF44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CF48 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CF48 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298CF4C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CF4C */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298CF4C */ if (_t4) goto L_0298CF50; else goto L_0298CF60;
|
|
L_0298CF50: ; // 0x298cf50
|
|
/* 0298CF50 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 0298CF54 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298CF58 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CF58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CF5C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CF5C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298CF5C */ if (_t6) goto L_0298CF7C; else goto L_0298CF60;
|
|
L_0298CF60: ; // 0x298cf60
|
|
/* 0298CF60 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CF64 */ Gambit_fn_02997EB0(cpu);
|
|
/* 0298CF68 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298CF6C */ cpu->r[0] = 0x00000000u;
|
|
/* 0298CF70 */ cpu->r[12] = cpu->r[12] + 0xFFFFF8D4u;
|
|
/* 0298CF74 */ _t7 = cpu->r[31] + 0x00000088u;
|
|
/* 0298CF74 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298CF78 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0298CF78 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
L_0298CF7C: ; // 0x298cf7c
|
|
/* 0298CF7C */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CF7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298CF80 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CF84 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CF84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CF88 */ cpu->lr = cpu->r[0];
|
|
/* 0298CF8C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298CF90 */ return;
|
|
}
|
|
|
|
// fn_0298CF3C @ 0x298cf3c
|
|
void Gambit_fn_0298CF3C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298CF3C: ; // 0x298cf3c
|
|
/* 0298CF3C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CF3C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CF3C */ cpu->r[1] = _t0;
|
|
/* 0298CF40 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CF40 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298CF44 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CF44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CF48 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CF48 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298CF4C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CF4C */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298CF4C */ if (_t4) goto L_0298CF50; else goto L_0298CF60;
|
|
L_0298CF50: ; // 0x298cf50
|
|
/* 0298CF50 */ cpu->r[3] = 0x0000008Cu;
|
|
/* 0298CF54 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298CF58 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CF58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CF5C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CF5C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298CF5C */ if (_t6) goto L_0298CF7C; else goto L_0298CF60;
|
|
L_0298CF60: ; // 0x298cf60
|
|
/* 0298CF60 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CF64 */ Gambit_fn_02997EB0(cpu);
|
|
/* 0298CF68 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298CF6C */ cpu->r[0] = 0x00000000u;
|
|
/* 0298CF70 */ cpu->r[12] = cpu->r[12] + 0xFFFFF8D4u;
|
|
/* 0298CF74 */ _t7 = cpu->r[31] + 0x00000088u;
|
|
/* 0298CF74 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298CF78 */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0298CF78 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
L_0298CF7C: ; // 0x298cf7c
|
|
/* 0298CF7C */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CF7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298CF80 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CF84 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CF84 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CF88 */ cpu->lr = cpu->r[0];
|
|
/* 0298CF8C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298CF90 */ return;
|
|
}
|
|
|
|
// fn_0298CF94 @ 0x298cf94
|
|
void Gambit_fn_0298CF94(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298CF94: ; // 0x298cf94
|
|
/* 0298CF94 */ cpu->r[0] = cpu->lr;
|
|
/* 0298CF98 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CF98 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CF98 */ cpu->r[1] = _t0;
|
|
/* 0298CF9C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CF9C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298CFA0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CFA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298CFA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CFA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CFA8 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298CFAC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CFAC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298CFB0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CFB0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298CFB0 */ if (_t5) goto L_0298CFD0; else goto L_0298CFB4;
|
|
L_0298CFB4: ; // 0x298cfb4
|
|
/* 0298CFB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CFB8 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298CFBC */ Gambit_fn_02997F4C(cpu);
|
|
/* 0298CFC0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298CFC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298CFC4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CFC4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298CFC4 */ if (_t7) goto L_0298CFD0; else goto L_0298CFC8;
|
|
L_0298CFC8: ; // 0x298cfc8
|
|
/* 0298CFC8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CFCC */ Gambit_fn_02801BB0(cpu);
|
|
L_0298CFD0: ; // 0x298cfd0
|
|
/* 0298CFD0 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CFD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298CFD4 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CFD4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298CFD8 */ cpu->lr = cpu->r[0];
|
|
/* 0298CFDC */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CFDC */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CFE0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298CFE4 */ return;
|
|
}
|
|
|
|
// fn_0298CF98 @ 0x298cf98
|
|
void Gambit_fn_0298CF98(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298CF98: ; // 0x298cf98
|
|
/* 0298CF98 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CF98 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CF98 */ cpu->r[1] = _t0;
|
|
/* 0298CF9C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CF9C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298CFA0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CFA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298CFA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298CFA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298CFA8 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298CFAC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CFAC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298CFB0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CFB0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298CFB0 */ if (_t5) goto L_0298CFD0; else goto L_0298CFB4;
|
|
L_0298CFB4: ; // 0x298cfb4
|
|
/* 0298CFB4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CFB8 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298CFBC */ Gambit_fn_02997F4C(cpu);
|
|
/* 0298CFC0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[30], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298CFC0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298CFC4 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298CFC4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298CFC4 */ if (_t7) goto L_0298CFD0; else goto L_0298CFC8;
|
|
L_0298CFC8: ; // 0x298cfc8
|
|
/* 0298CFC8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298CFCC */ Gambit_fn_02801BB0(cpu);
|
|
L_0298CFD0: ; // 0x298cfd0
|
|
/* 0298CFD0 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CFD0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298CFD4 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CFD4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298CFD8 */ cpu->lr = cpu->r[0];
|
|
/* 0298CFDC */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CFDC */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298CFE0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298CFE4 */ return;
|
|
}
|
|
|
|
// fn_0298CFE8 @ 0x298cfe8
|
|
void Gambit_fn_0298CFE8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_0298CFE8: ; // 0x298cfe8
|
|
/* 0298CFE8 */ cpu->r[0] = cpu->lr;
|
|
/* 0298CFEC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CFEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CFEC */ cpu->r[1] = _t0;
|
|
/* 0298CFF0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CFF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298CFF4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CFF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298CFF8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CFF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298CFFC */ _t4 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CFFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D000 */ _t5 = cpu->r[10] + 0x0000002Cu;
|
|
/* 0298D000 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D004 */ cpu->ctr = cpu->r[12];
|
|
/* 0298D008 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298D00C */ cpu->r[31] = cpu->r[4];
|
|
/* 0298D010 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D014 */ _t6 = cpu->r[31] + 0x00000010u;
|
|
/* 0298D014 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D018 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 0298D01C */ cpu->r[11] = 0x00000000u;
|
|
/* 0298D020 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D020 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D020 */ if (_t8) goto L_0298D024; else goto L_0298D030;
|
|
L_0298D024: ; // 0x298d024
|
|
/* 0298D024 */ _t9 = cpu->r[31] + 0x00000018u;
|
|
/* 0298D024 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298D028 */ cpu->r[8] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298D02C */ _t10 = cpu->r[8] + cpu->r[9];
|
|
/* 0298D02C */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
L_0298D030: ; // 0x298d030
|
|
/* 0298D030 */ _t11 = cpu->r[30] + 0x00000088u;
|
|
/* 0298D030 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
/* 0298D034 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D034 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298D038 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D038 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D03C */ cpu->lr = cpu->r[0];
|
|
/* 0298D040 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D040 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D044 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D048 */ return;
|
|
}
|
|
|
|
// fn_0298CFEC @ 0x298cfec
|
|
void Gambit_fn_0298CFEC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_0298CFEC: ; // 0x298cfec
|
|
/* 0298CFEC */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298CFEC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298CFEC */ cpu->r[1] = _t0;
|
|
/* 0298CFF0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298CFF0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298CFF4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298CFF4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298CFF8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298CFF8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298CFFC */ _t4 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298CFFC */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D000 */ _t5 = cpu->r[10] + 0x0000002Cu;
|
|
/* 0298D000 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D004 */ cpu->ctr = cpu->r[12];
|
|
/* 0298D008 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298D00C */ cpu->r[31] = cpu->r[4];
|
|
/* 0298D010 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D014 */ _t6 = cpu->r[31] + 0x00000010u;
|
|
/* 0298D014 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D018 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 0298D01C */ cpu->r[11] = 0x00000000u;
|
|
/* 0298D020 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D020 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D020 */ if (_t8) goto L_0298D024; else goto L_0298D030;
|
|
L_0298D024: ; // 0x298d024
|
|
/* 0298D024 */ _t9 = cpu->r[31] + 0x00000018u;
|
|
/* 0298D024 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298D028 */ cpu->r[8] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298D02C */ _t10 = cpu->r[8] + cpu->r[9];
|
|
/* 0298D02C */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
L_0298D030: ; // 0x298d030
|
|
/* 0298D030 */ _t11 = cpu->r[30] + 0x00000088u;
|
|
/* 0298D030 */ rbrew_write32(cpu->mem, _t11, cpu->r[11]);
|
|
/* 0298D034 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D034 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298D038 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D038 */ cpu->r[30] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D03C */ cpu->lr = cpu->r[0];
|
|
/* 0298D040 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D040 */ cpu->r[31] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D044 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D048 */ return;
|
|
}
|
|
|
|
// fn_0298D04C @ 0x298d04c
|
|
void Gambit_fn_0298D04C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_0298D04C: ; // 0x298d04c
|
|
/* 0298D04C */ cpu->r[0] = cpu->lr;
|
|
/* 0298D050 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D050 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D050 */ cpu->r[1] = _t0;
|
|
/* 0298D054 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D054 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298D058 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D058 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298D05C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D05C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D060 */ _t4 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298D060 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D064 */ _t5 = cpu->r[12] + 0x0000002Cu;
|
|
/* 0298D064 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D068 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D06C */ cpu->r[31] = cpu->r[4];
|
|
/* 0298D070 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D074 */ cpu->r[0] = 0x101D0000u;
|
|
/* 0298D078 */ cpu->r[12] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298D07C */ cpu->r[0] = cpu->r[0] + 0xFFFFA6A4u;
|
|
/* 0298D080 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298D084 */ _t6 = cpu->r[12] + cpu->r[0];
|
|
/* 0298D084 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D088 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D088 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D088 */ if (_t8) goto L_0298D08C; else goto L_0298D09C;
|
|
L_0298D08C: ; // 0x298d08c
|
|
/* 0298D08C */ cpu->r[3] = 0x00000008u;
|
|
/* 0298D090 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298D094 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D094 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298D098 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D098 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298D098 */ if (_t10) goto L_0298D0AC; else goto L_0298D09C;
|
|
L_0298D09C: ; // 0x298d09c
|
|
/* 0298D09C */ cpu->r[0] = 0x10150000u;
|
|
/* 0298D0A0 */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 0298D0A0 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 0298D0A4 */ cpu->r[0] = cpu->r[0] + 0xFFFFF550u;
|
|
/* 0298D0A8 */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 0298D0A8 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_0298D0AC: ; // 0x298d0ac
|
|
/* 0298D0AC */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D0AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D0B0 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D0B0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D0B4 */ cpu->lr = cpu->r[0];
|
|
/* 0298D0B8 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D0B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298D0BC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D0C0 */ return;
|
|
}
|
|
|
|
// fn_0298D050 @ 0x298d050
|
|
void Gambit_fn_0298D050(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_0298D050: ; // 0x298d050
|
|
/* 0298D050 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D050 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D050 */ cpu->r[1] = _t0;
|
|
/* 0298D054 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D054 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298D058 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D058 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298D05C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D05C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D060 */ _t4 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298D060 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D064 */ _t5 = cpu->r[12] + 0x0000002Cu;
|
|
/* 0298D064 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D068 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D06C */ cpu->r[31] = cpu->r[4];
|
|
/* 0298D070 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D074 */ cpu->r[0] = 0x101D0000u;
|
|
/* 0298D078 */ cpu->r[12] = rbrew_rlwinm(cpu->r[3], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298D07C */ cpu->r[0] = cpu->r[0] + 0xFFFFA6A4u;
|
|
/* 0298D080 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298D084 */ _t6 = cpu->r[12] + cpu->r[0];
|
|
/* 0298D084 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D088 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D088 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D088 */ if (_t8) goto L_0298D08C; else goto L_0298D09C;
|
|
L_0298D08C: ; // 0x298d08c
|
|
/* 0298D08C */ cpu->r[3] = 0x00000008u;
|
|
/* 0298D090 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298D094 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D094 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298D098 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D098 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298D098 */ if (_t10) goto L_0298D0AC; else goto L_0298D09C;
|
|
L_0298D09C: ; // 0x298d09c
|
|
/* 0298D09C */ cpu->r[0] = 0x10150000u;
|
|
/* 0298D0A0 */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 0298D0A0 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 0298D0A4 */ cpu->r[0] = cpu->r[0] + 0xFFFFF550u;
|
|
/* 0298D0A8 */ _t12 = cpu->r[31] + 0x00000004u;
|
|
/* 0298D0A8 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
L_0298D0AC: ; // 0x298d0ac
|
|
/* 0298D0AC */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D0AC */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D0B0 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D0B0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D0B4 */ cpu->lr = cpu->r[0];
|
|
/* 0298D0B8 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D0B8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298D0BC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D0C0 */ return;
|
|
}
|
|
|
|
// fn_0298D0C4 @ 0x298d0c4
|
|
void Gambit_fn_0298D0C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_0298D0C4: ; // 0x298d0c4
|
|
/* 0298D0C4 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 0298D0C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298D0C8 */ _t1 = cpu->r[12] + 0x00000034u;
|
|
/* 0298D0C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298D0CC */ _t2 = cpu->r[12] + 0x00000000u;
|
|
/* 0298D0CC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t2);
|
|
/* 0298D0D0 */ _t3 = cpu->r[4] + 0x00000000u;
|
|
/* 0298D0D0 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[0]);
|
|
/* 0298D0D4 */ _t4 = cpu->r[12] + 0x00000004u;
|
|
/* 0298D0D4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 0298D0D8 */ _t5 = cpu->r[4] + 0x00000004u;
|
|
/* 0298D0D8 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[0]);
|
|
/* 0298D0DC */ _t6 = cpu->r[12] + 0x00000008u;
|
|
/* 0298D0DC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 0298D0E0 */ _t7 = cpu->r[4] + 0x00000008u;
|
|
/* 0298D0E0 */ rbrew_write_f32(cpu->mem, _t7, cpu->f[0]);
|
|
/* 0298D0E4 */ _t8 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0298D0E4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 0298D0E8 */ _t9 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298D0E8 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[0]);
|
|
/* 0298D0EC */ return;
|
|
}
|
|
|
|
// fn_0298D0F0 @ 0x298d0f0
|
|
void Gambit_fn_0298D0F0(CPUState* cpu) {
|
|
uint32_t _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_0298D0F0: ; // 0x298d0f0
|
|
/* 0298D0F0 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298D0F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D0F0 */ cpu->r[1] = _t0;
|
|
/* 0298D0F4 */ /* nop */
|
|
/* 0298D0F8 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D0FC */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 0298D0FC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298D100 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298D104 */ cpu->r[28] = cpu->r[3];
|
|
/* 0298D108 */ _t2 = cpu->r[28] + 0x00000010u;
|
|
/* 0298D108 */ cpu->r[6] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298D10C */ _t3 = cpu->r[29] + 0x00000002u;
|
|
/* 0298D10C */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 0298D110 */ _t4 = cpu->r[6] + 0x00000000u;
|
|
/* 0298D110 */ cpu->r[8] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D114 */ cpu->r[7] = cpu->r[0] ^ 0x0000000Bu;
|
|
/* 0298D118 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000002u);
|
|
/* 0298D11C */ _t5 = cpu->r[8] + 0x00000034u;
|
|
/* 0298D11C */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D120 */ cpu->r[9] = rbrew_clz32(cpu->r[7]);
|
|
/* 0298D124 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000006u, 0x00000000u, 0x00000019u);
|
|
/* 0298D128 */ _t6 = cpu->r[28] + 0x00000000u;
|
|
/* 0298D128 */ cpu->r[27] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D12C */ cpu->r[12] = cpu->r[11] + 0x00000008u;
|
|
/* 0298D130 */ cpu->r[31] = rbrew_rlwinm(cpu->r[9], 0x0000001Bu, 0x00000005u, 0x0000001Fu);
|
|
/* 0298D134 */ cpu->r[30] = cpu->r[12] + cpu->r[0];
|
|
/* 0298D138 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D138 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D138 */ if (_t8) goto L_0298D158; else goto L_0298D13C;
|
|
L_0298D13C: ; // 0x298d13c
|
|
/* 0298D13C */ _t9 = cpu->r[28] + 0x0000000Cu;
|
|
/* 0298D13C */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298D140 */ _t10 = cpu->r[10] + 0x0000008Cu;
|
|
/* 0298D140 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D144 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D148 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298D14C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D150 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000002u);
|
|
/* 0298D154 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D154 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298D154 */ if (_t12) goto L_0298D1E4; else goto L_0298D158;
|
|
L_0298D158: ; // 0x298d158
|
|
/* 0298D158 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298D15C */ cpu->r[4] = cpu->r[28];
|
|
/* 0298D160 */ Gambit_fn_02994E08(cpu);
|
|
/* 0298D164 */ _t13 = cpu->r[29] + 0x00000002u;
|
|
/* 0298D164 */ cpu->r[0] = rbrew_read8(cpu->mem, _t13);
|
|
/* 0298D168 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298D16C */ cpu->r[6] = cpu->r[28] + cpu->r[12];
|
|
/* 0298D170 */ _t14 = cpu->r[6] + 0x00000020u;
|
|
/* 0298D170 */ cpu->r[5] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D174 */ _t15 = cpu->r[5] + 0x0000000Cu;
|
|
/* 0298D174 */ cpu->r[7] = rbrew_read8(cpu->mem, _t15);
|
|
/* 0298D178 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298D178 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298D17C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D17C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298D17C */ if (_t17) goto L_0298D1B8; else goto L_0298D180;
|
|
L_0298D180: ; // 0x298d180
|
|
/* 0298D180 */ _t18 = cpu->r[27] + 0x00000005u;
|
|
/* 0298D180 */ cpu->r[10] = rbrew_read8(cpu->mem, _t18);
|
|
/* 0298D184 */ _t19 = cpu->r[5] + 0x00000004u;
|
|
/* 0298D184 */ cpu->r[11] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298D188 */ _t20 = cpu->r[5] + 0x00000000u;
|
|
/* 0298D188 */ cpu->r[12] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298D18C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[10] * (int32_t)cpu->r[11]);
|
|
/* 0298D190 */ _t21 = cpu->r[5] + 0x00000008u;
|
|
/* 0298D190 */ cpu->r[4] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298D194 */ cpu->r[3] = cpu->r[12] + cpu->r[9];
|
|
/* 0298D198 */ rbrew_dispatch(cpu, 0x02d05888u);
|
|
/* 0298D19C */ _t22 = cpu->r[27] + 0x00000154u;
|
|
/* 0298D19C */ cpu->r[5] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298D1A0 */ cpu->r[7] = cpu->r[31];
|
|
/* 0298D1A4 */ _t23 = cpu->r[28] + 0x00000088u;
|
|
/* 0298D1A4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298D1A8 */ _t24 = cpu->r[29] + 0x00000002u;
|
|
/* 0298D1A8 */ cpu->r[4] = rbrew_read8(cpu->mem, _t24);
|
|
/* 0298D1AC */ _t25 = cpu->r[27] + 0x00000150u;
|
|
/* 0298D1AC */ cpu->r[6] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298D1B0 */ Gambit_fn_02A29744(cpu);
|
|
/* 0298D1B4 */ goto L_0298D1E4;
|
|
L_0298D1B8: ; // 0x298d1b8
|
|
/* 0298D1B8 */ _t26 = cpu->r[29] + 0x00000001u;
|
|
/* 0298D1B8 */ cpu->r[5] = rbrew_read8(cpu->mem, _t26);
|
|
/* 0298D1BC */ cpu->r[4] = cpu->r[30];
|
|
/* 0298D1C0 */ _t27 = cpu->r[27] + 0x00000005u;
|
|
/* 0298D1C0 */ cpu->r[6] = rbrew_read8(cpu->mem, _t27);
|
|
/* 0298D1C4 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298D1C8 */ Gambit_fn_02998BFC(cpu);
|
|
/* 0298D1CC */ _t28 = cpu->r[27] + 0x00000150u;
|
|
/* 0298D1CC */ cpu->r[6] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298D1D0 */ cpu->r[7] = cpu->r[31];
|
|
/* 0298D1D4 */ _t29 = cpu->r[29] + 0x00000002u;
|
|
/* 0298D1D4 */ cpu->r[4] = rbrew_read8(cpu->mem, _t29);
|
|
/* 0298D1D8 */ _t30 = cpu->r[28] + 0x00000088u;
|
|
/* 0298D1D8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298D1DC */ _t31 = cpu->r[27] + 0x00000154u;
|
|
/* 0298D1DC */ cpu->r[5] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298D1E0 */ Gambit_fn_02A29744(cpu);
|
|
L_0298D1E4: ; // 0x298d1e4
|
|
/* 0298D1E4 */ /* nop */
|
|
/* 0298D1E8 */ _t32 = cpu->r[1] + 0x00000024u;
|
|
/* 0298D1E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298D1EC */ cpu->lr = cpu->r[0];
|
|
/* 0298D1F0 */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298D1F4 */ return;
|
|
}
|
|
|
|
// fn_0298D1F8 @ 0x298d1f8
|
|
void Gambit_fn_0298D1F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_0298D1F8: ; // 0x298d1f8
|
|
/* 0298D1F8 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D1FC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298D1FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D1FC */ cpu->r[1] = _t0;
|
|
/* 0298D200 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298D204 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D204 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298D208 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298D20C */ cpu->r[12] = cpu->r[12] + 0xFFFFF550u;
|
|
/* 0298D210 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D210 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298D214 */ cpu->r[3] = cpu->r[4];
|
|
/* 0298D218 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D218 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D21C */ cpu->r[0] = 0x10150000u;
|
|
/* 0298D220 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D220 */ rbrew_write32(cpu->mem, _t4, cpu->r[12]);
|
|
/* 0298D224 */ cpu->r[0] = cpu->r[0] + 0xFFFFF604u;
|
|
/* 0298D228 */ cpu->r[4] = cpu->r[5];
|
|
/* 0298D22C */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D22C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298D230 */ Gambit_fn_02A27B60(cpu);
|
|
/* 0298D234 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D238 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298D23C */ Gambit_fn_028249FC(cpu);
|
|
/* 0298D240 */ cpu->r[3] = cpu->r[31] + cpu->r[3];
|
|
/* 0298D244 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298D248 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D24C */ cpu->r[6] = 0x00000001u;
|
|
/* 0298D250 */ cpu->r[7] = 0x00000000u;
|
|
/* 0298D254 */ Gambit_fn_028249F8(cpu);
|
|
/* 0298D258 */ _t6 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D258 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D25C */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D25C */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298D260 */ cpu->lr = cpu->r[0];
|
|
/* 0298D264 */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D264 */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298D268 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298D26C */ return;
|
|
}
|
|
|
|
// fn_0298D1FC @ 0x298d1fc
|
|
void Gambit_fn_0298D1FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_0298D1FC: ; // 0x298d1fc
|
|
/* 0298D1FC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298D1FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D1FC */ cpu->r[1] = _t0;
|
|
/* 0298D200 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298D204 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D204 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298D208 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298D20C */ cpu->r[12] = cpu->r[12] + 0xFFFFF550u;
|
|
/* 0298D210 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D210 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298D214 */ cpu->r[3] = cpu->r[4];
|
|
/* 0298D218 */ _t3 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D218 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D21C */ cpu->r[0] = 0x10150000u;
|
|
/* 0298D220 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D220 */ rbrew_write32(cpu->mem, _t4, cpu->r[12]);
|
|
/* 0298D224 */ cpu->r[0] = cpu->r[0] + 0xFFFFF604u;
|
|
/* 0298D228 */ cpu->r[4] = cpu->r[5];
|
|
/* 0298D22C */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D22C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298D230 */ Gambit_fn_02A27B60(cpu);
|
|
/* 0298D234 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D238 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298D23C */ Gambit_fn_028249FC(cpu);
|
|
/* 0298D240 */ cpu->r[3] = cpu->r[31] + cpu->r[3];
|
|
/* 0298D244 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298D248 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D24C */ cpu->r[6] = 0x00000001u;
|
|
/* 0298D250 */ cpu->r[7] = 0x00000000u;
|
|
/* 0298D254 */ Gambit_fn_028249F8(cpu);
|
|
/* 0298D258 */ _t6 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D258 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D25C */ _t7 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D25C */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298D260 */ cpu->lr = cpu->r[0];
|
|
/* 0298D264 */ _t8 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D264 */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298D268 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298D26C */ return;
|
|
}
|
|
|
|
// fn_0298D270 @ 0x298d270
|
|
void Gambit_fn_0298D270(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_0298D270: ; // 0x298d270
|
|
/* 0298D270 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D274 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D274 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D274 */ cpu->r[1] = _t0;
|
|
/* 0298D278 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D278 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298D27C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D280 */ cpu->r[3] = cpu->r[4];
|
|
/* 0298D284 */ cpu->r[4] = cpu->r[5];
|
|
/* 0298D288 */ cpu->r[5] = cpu->r[6];
|
|
/* 0298D28C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D28C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298D290 */ Gambit_fn_0298D1F8(cpu);
|
|
/* 0298D294 */ _t3 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D294 */ rbrew_write32(cpu->mem, _t3, cpu->r[3]);
|
|
/* 0298D298 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D298 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D29C */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D29C */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D2A0 */ cpu->lr = cpu->r[0];
|
|
/* 0298D2A4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D2A8 */ return;
|
|
}
|
|
|
|
// fn_0298D274 @ 0x298d274
|
|
void Gambit_fn_0298D274(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_0298D274: ; // 0x298d274
|
|
/* 0298D274 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D274 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D274 */ cpu->r[1] = _t0;
|
|
/* 0298D278 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D278 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298D27C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D280 */ cpu->r[3] = cpu->r[4];
|
|
/* 0298D284 */ cpu->r[4] = cpu->r[5];
|
|
/* 0298D288 */ cpu->r[5] = cpu->r[6];
|
|
/* 0298D28C */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D28C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298D290 */ Gambit_fn_0298D1F8(cpu);
|
|
/* 0298D294 */ _t3 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D294 */ rbrew_write32(cpu->mem, _t3, cpu->r[3]);
|
|
/* 0298D298 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D298 */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D29C */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D29C */ cpu->r[31] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D2A0 */ cpu->lr = cpu->r[0];
|
|
/* 0298D2A4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D2A8 */ return;
|
|
}
|
|
|
|
// fn_0298D2AC @ 0x298d2ac
|
|
void Gambit_fn_0298D2AC(CPUState* cpu) {
|
|
uint32_t _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_0298D2AC: ; // 0x298d2ac
|
|
/* 0298D2AC */ cpu->r[0] = cpu->lr;
|
|
/* 0298D2B0 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 0298D2B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D2B0 */ cpu->r[1] = _t0;
|
|
/* 0298D2B4 */ cpu->r[11] = cpu->r[4];
|
|
/* 0298D2B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298D2B8 */ /* nop */
|
|
/* 0298D2BC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298D2C0 */ cpu->r[26] = cpu->r[5];
|
|
/* 0298D2C4 */ cpu->r[3] = cpu->r[6];
|
|
/* 0298D2C8 */ cpu->r[27] = cpu->r[8];
|
|
/* 0298D2CC */ cpu->r[4] = cpu->r[7];
|
|
/* 0298D2D0 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298D2D4 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D2D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298D2D8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D2D8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 0298D2D8 */ if (_t3) goto L_0298D3C4; else goto L_0298D2DC;
|
|
L_0298D2DC: ; // 0x298d2dc
|
|
/* 0298D2DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 0298D2E0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D2E0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298D2E0 */ if (_t5) goto L_0298D3C4; else goto L_0298D2E4;
|
|
L_0298D2E4: ; // 0x298d2e4
|
|
/* 0298D2E4 */ cpu->r[8] = 0x00000003u;
|
|
/* 0298D2E8 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298D2EC */ cpu->ctr = cpu->r[8];
|
|
/* 0298D2F0 */ cpu->r[12] = cpu->r[1] + 0x00000004u;
|
|
L_0298D2F4: ; // 0x298d2f4
|
|
/* 0298D2F4 */ _t6 = cpu->r[12] + 0x00000004u;
|
|
/* 0298D2F4 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298D2F4 */ cpu->r[12] = _t6;
|
|
/* 0298D2F8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298D2F8 */ _t7 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298D2F8 */ _t8 = _t7 >> (0x00000002u & 31u);
|
|
/* 0298D2F8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298D2F8 */ if (_t9) goto L_0298D2F4; else goto L_0298D2FC;
|
|
L_0298D2FC: ; // 0x298d2fc
|
|
/* 0298D2FC */ cpu->r[5] = cpu->r[11];
|
|
/* 0298D300 */ Gambit_fn_02A27E5C(cpu);
|
|
/* 0298D304 */ _t10 = cpu->r[30] + 0x00000088u;
|
|
/* 0298D304 */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D308 */ _t11 = cpu->r[7] + 0x000001ACu;
|
|
/* 0298D308 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298D30C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D310 */ cpu->ctr = cpu->r[9];
|
|
/* 0298D314 */ cpu->r[25] = 0x00000000u;
|
|
/* 0298D318 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298D31C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D320 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[3]);
|
|
/* 0298D324 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D324 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298D324 */ if (_t13) goto L_0298D328; else goto L_0298D3A0;
|
|
L_0298D328: ; // 0x298d328
|
|
/* 0298D328 */ cpu->r[29] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D32C */ cpu->r[28] = 0x00000000u;
|
|
L_0298D330: ; // 0x298d330
|
|
/* 0298D330 */ _t14 = cpu->r[30] + 0x00000088u;
|
|
/* 0298D330 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D334 */ _t15 = cpu->r[10] + 0x000001B4u;
|
|
/* 0298D334 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298D338 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D33C */ cpu->r[4] = cpu->r[25];
|
|
/* 0298D340 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298D344 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D348 */ _t16 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298D348 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298D34C */ _t17 = cpu->r[12] + 0x0000002Cu;
|
|
/* 0298D34C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298D350 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D354 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D358 */ _t18 = cpu->r[30] + 0x000000CCu;
|
|
/* 0298D358 */ cpu->r[6] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298D35C */ cpu->r[0] = cpu->r[3];
|
|
/* 0298D360 */ _t19 = cpu->r[30] + 0x00000088u;
|
|
/* 0298D360 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298D364 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000003u);
|
|
/* 0298D368 */ cpu->r[8] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D36C */ _t20 = cpu->r[6] + cpu->r[28];
|
|
/* 0298D36C */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298D370 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D370 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298D370 */ if (_t22) goto L_0298D374; else goto L_0298D37C;
|
|
L_0298D374: ; // 0x298d374
|
|
/* 0298D374 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298D378 */ cpu->r[8] = cpu->r[29] + cpu->r[0];
|
|
L_0298D37C: ; // 0x298d37c
|
|
/* 0298D37C */ _t23 = cpu->r[8] + 0x00000000u;
|
|
/* 0298D37C */ rbrew_write32(cpu->mem, _t23, cpu->r[7]);
|
|
/* 0298D380 */ _t24 = cpu->r[9] + 0x000001ACu;
|
|
/* 0298D380 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298D384 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D388 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 0298D38C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298D390 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298D394 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D398 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[3]);
|
|
/* 0298D39C */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D39C */ _t26 = _t25 & 0x00000001u;
|
|
/* 0298D39C */ if (_t26) goto L_0298D330; else goto L_0298D3A0;
|
|
L_0298D3A0: ; // 0x298d3a0
|
|
/* 0298D3A0 */ _t27 = cpu->r[31] + 0x00000000u;
|
|
/* 0298D3A0 */ cpu->r[11] = rbrew_read8(cpu->mem, _t27);
|
|
/* 0298D3A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298D3A8 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D3A8 */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298D3A8 */ if (_t29) goto L_0298D3AC; else goto L_0298D3C4;
|
|
L_0298D3AC: ; // 0x298d3ac
|
|
/* 0298D3AC */ _t30 = cpu->r[26] + 0x00000000u;
|
|
/* 0298D3AC */ cpu->r[5] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298D3B0 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D3B4 */ cpu->r[7] = cpu->r[27];
|
|
/* 0298D3B8 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298D3BC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D3C0 */ Gambit_fn_02A295D0(cpu);
|
|
L_0298D3C4: ; // 0x298d3c4
|
|
/* 0298D3C4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D3C8 */ /* nop */
|
|
/* 0298D3CC */ _t31 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D3CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298D3D0 */ cpu->lr = cpu->r[0];
|
|
/* 0298D3D4 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 0298D3D8 */ return;
|
|
}
|
|
|
|
// fn_0298D2B0 @ 0x298d2b0
|
|
void Gambit_fn_0298D2B0(CPUState* cpu) {
|
|
uint32_t _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_0298D2B0: ; // 0x298d2b0
|
|
/* 0298D2B0 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 0298D2B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D2B0 */ cpu->r[1] = _t0;
|
|
/* 0298D2B4 */ cpu->r[11] = cpu->r[4];
|
|
/* 0298D2B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298D2B8 */ /* nop */
|
|
/* 0298D2BC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298D2C0 */ cpu->r[26] = cpu->r[5];
|
|
/* 0298D2C4 */ cpu->r[3] = cpu->r[6];
|
|
/* 0298D2C8 */ cpu->r[27] = cpu->r[8];
|
|
/* 0298D2CC */ cpu->r[4] = cpu->r[7];
|
|
/* 0298D2D0 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298D2D4 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D2D4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298D2D8 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D2D8 */ _t3 = _t2 & 0x00000001u;
|
|
/* 0298D2D8 */ if (_t3) goto L_0298D3C4; else goto L_0298D2DC;
|
|
L_0298D2DC: ; // 0x298d2dc
|
|
/* 0298D2DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 0298D2E0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D2E0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298D2E0 */ if (_t5) goto L_0298D3C4; else goto L_0298D2E4;
|
|
L_0298D2E4: ; // 0x298d2e4
|
|
/* 0298D2E4 */ cpu->r[8] = 0x00000003u;
|
|
/* 0298D2E8 */ cpu->r[0] = 0x00000000u;
|
|
/* 0298D2EC */ cpu->ctr = cpu->r[8];
|
|
/* 0298D2F0 */ cpu->r[12] = cpu->r[1] + 0x00000004u;
|
|
L_0298D2F4: ; // 0x298d2f4
|
|
/* 0298D2F4 */ _t6 = cpu->r[12] + 0x00000004u;
|
|
/* 0298D2F4 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298D2F4 */ cpu->r[12] = _t6;
|
|
/* 0298D2F8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298D2F8 */ _t7 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298D2F8 */ _t8 = _t7 >> (0x00000002u & 31u);
|
|
/* 0298D2F8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298D2F8 */ if (_t9) goto L_0298D2F4; else goto L_0298D2FC;
|
|
L_0298D2FC: ; // 0x298d2fc
|
|
/* 0298D2FC */ cpu->r[5] = cpu->r[11];
|
|
/* 0298D300 */ Gambit_fn_02A27E5C(cpu);
|
|
/* 0298D304 */ _t10 = cpu->r[30] + 0x00000088u;
|
|
/* 0298D304 */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D308 */ _t11 = cpu->r[7] + 0x000001ACu;
|
|
/* 0298D308 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298D30C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D310 */ cpu->ctr = cpu->r[9];
|
|
/* 0298D314 */ cpu->r[25] = 0x00000000u;
|
|
/* 0298D318 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298D31C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D320 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[3]);
|
|
/* 0298D324 */ _t12 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D324 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298D324 */ if (_t13) goto L_0298D328; else goto L_0298D3A0;
|
|
L_0298D328: ; // 0x298d328
|
|
/* 0298D328 */ cpu->r[29] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D32C */ cpu->r[28] = 0x00000000u;
|
|
L_0298D330: ; // 0x298d330
|
|
/* 0298D330 */ _t14 = cpu->r[30] + 0x00000088u;
|
|
/* 0298D330 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D334 */ _t15 = cpu->r[10] + 0x000001B4u;
|
|
/* 0298D334 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298D338 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D33C */ cpu->r[4] = cpu->r[25];
|
|
/* 0298D340 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298D344 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D348 */ _t16 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298D348 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298D34C */ _t17 = cpu->r[12] + 0x0000002Cu;
|
|
/* 0298D34C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298D350 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D354 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D358 */ _t18 = cpu->r[30] + 0x000000CCu;
|
|
/* 0298D358 */ cpu->r[6] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298D35C */ cpu->r[0] = cpu->r[3];
|
|
/* 0298D360 */ _t19 = cpu->r[30] + 0x00000088u;
|
|
/* 0298D360 */ cpu->r[9] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298D364 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], 0x00000003u);
|
|
/* 0298D368 */ cpu->r[8] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D36C */ _t20 = cpu->r[6] + cpu->r[28];
|
|
/* 0298D36C */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298D370 */ _t21 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D370 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298D370 */ if (_t22) goto L_0298D374; else goto L_0298D37C;
|
|
L_0298D374: ; // 0x298d374
|
|
/* 0298D374 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298D378 */ cpu->r[8] = cpu->r[29] + cpu->r[0];
|
|
L_0298D37C: ; // 0x298d37c
|
|
/* 0298D37C */ _t23 = cpu->r[8] + 0x00000000u;
|
|
/* 0298D37C */ rbrew_write32(cpu->mem, _t23, cpu->r[7]);
|
|
/* 0298D380 */ _t24 = cpu->r[9] + 0x000001ACu;
|
|
/* 0298D380 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298D384 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D388 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 0298D38C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298D390 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298D394 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D398 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[25], cpu->r[3]);
|
|
/* 0298D39C */ _t25 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D39C */ _t26 = _t25 & 0x00000001u;
|
|
/* 0298D39C */ if (_t26) goto L_0298D330; else goto L_0298D3A0;
|
|
L_0298D3A0: ; // 0x298d3a0
|
|
/* 0298D3A0 */ _t27 = cpu->r[31] + 0x00000000u;
|
|
/* 0298D3A0 */ cpu->r[11] = rbrew_read8(cpu->mem, _t27);
|
|
/* 0298D3A4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298D3A8 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D3A8 */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298D3A8 */ if (_t29) goto L_0298D3AC; else goto L_0298D3C4;
|
|
L_0298D3AC: ; // 0x298d3ac
|
|
/* 0298D3AC */ _t30 = cpu->r[26] + 0x00000000u;
|
|
/* 0298D3AC */ cpu->r[5] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298D3B0 */ cpu->r[6] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D3B4 */ cpu->r[7] = cpu->r[27];
|
|
/* 0298D3B8 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298D3BC */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D3C0 */ Gambit_fn_02A295D0(cpu);
|
|
L_0298D3C4: ; // 0x298d3c4
|
|
/* 0298D3C4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D3C8 */ /* nop */
|
|
/* 0298D3CC */ _t31 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D3CC */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298D3D0 */ cpu->lr = cpu->r[0];
|
|
/* 0298D3D4 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 0298D3D8 */ return;
|
|
}
|
|
|
|
// fn_0298D3E0 @ 0x298d3e0
|
|
void Gambit_fn_0298D3E0(CPUState* cpu) {
|
|
uint32_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_0298D3E0: ; // 0x298d3e0
|
|
/* 0298D3E0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298D3E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D3E0 */ cpu->r[1] = _t0;
|
|
/* 0298D3E4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D3E4 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 0298D3E8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D3E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298D3EC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D3EC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298D3F0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D3F0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298D3F4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D3F4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298D3F8 */ _t6 = cpu->r[3] + 0x00000088u;
|
|
/* 0298D3F8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D3FC */ _t7 = cpu->r[8] + 0x000001ACu;
|
|
/* 0298D3FC */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298D400 */ cpu->ctr = cpu->r[9];
|
|
/* 0298D404 */ cpu->r[29] = 0x00000000u;
|
|
/* 0298D408 */ cpu->r[28] = cpu->r[4];
|
|
/* 0298D40C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D410 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D414 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[3]);
|
|
/* 0298D418 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D418 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298D418 */ if (_t9) goto L_0298D41C; else goto L_0298D454;
|
|
L_0298D41C: ; // 0x298d41c
|
|
/* 0298D41C */ cpu->r[30] = 0x00000000u;
|
|
L_0298D420: ; // 0x298d420
|
|
/* 0298D420 */ _t10 = cpu->r[31] + 0x000000CCu;
|
|
/* 0298D420 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D424 */ _t11 = cpu->r[10] + cpu->r[30];
|
|
/* 0298D424 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298D428 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298D42C */ Gambit_fn_0298CFE8(cpu);
|
|
/* 0298D430 */ _t12 = cpu->r[31] + 0x00000088u;
|
|
/* 0298D430 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298D434 */ _t13 = cpu->r[11] + 0x000001ACu;
|
|
/* 0298D434 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D438 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D43C */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 0298D440 */ cpu->r[30] = cpu->r[30] + 0x00000004u;
|
|
/* 0298D444 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D448 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D44C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[3]);
|
|
/* 0298D450 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D450 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298D450 */ if (_t15) goto L_0298D420; else goto L_0298D454;
|
|
L_0298D454: ; // 0x298d454
|
|
/* 0298D454 */ _t16 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298D454 */ rbrew_write32(cpu->mem, _t16, cpu->r[28]);
|
|
/* 0298D458 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298D45C */ _t17 = cpu->r[31] + 0x00000168u;
|
|
/* 0298D45C */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[0]);
|
|
/* 0298D460 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D460 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298D464 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D464 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298D468 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D468 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298D46C */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D46C */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298D470 */ cpu->lr = cpu->r[0];
|
|
/* 0298D474 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D474 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298D478 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298D47C */ return;
|
|
}
|
|
|
|
// fn_0298D480 @ 0x298d480
|
|
void Gambit_fn_0298D480(CPUState* cpu) {
|
|
uint32_t _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_0298D3DC: ; // 0x298d3dc
|
|
/* 0298D3DC */ cpu->r[0] = cpu->lr;
|
|
/* 0298D3E0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298D3E0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D3E0 */ cpu->r[1] = _t0;
|
|
/* 0298D3E4 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D3E4 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 0298D3E8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D3E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298D3EC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D3EC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298D3F0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D3F0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298D3F4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D3F4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298D3F8 */ _t6 = cpu->r[3] + 0x00000088u;
|
|
/* 0298D3F8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D3FC */ _t7 = cpu->r[8] + 0x000001ACu;
|
|
/* 0298D3FC */ cpu->r[9] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298D400 */ cpu->ctr = cpu->r[9];
|
|
/* 0298D404 */ cpu->r[29] = 0x00000000u;
|
|
/* 0298D408 */ cpu->r[28] = cpu->r[4];
|
|
/* 0298D40C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D410 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D414 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[3]);
|
|
/* 0298D418 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D418 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298D418 */ if (_t9) goto L_0298D41C; else goto L_0298D454;
|
|
L_0298D41C: ; // 0x298d41c
|
|
/* 0298D41C */ cpu->r[30] = 0x00000000u;
|
|
L_0298D420: ; // 0x298d420
|
|
/* 0298D420 */ _t10 = cpu->r[31] + 0x000000CCu;
|
|
/* 0298D420 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D424 */ _t11 = cpu->r[10] + cpu->r[30];
|
|
/* 0298D424 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298D428 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298D42C */ Gambit_fn_0298CFE8(cpu);
|
|
/* 0298D430 */ _t12 = cpu->r[31] + 0x00000088u;
|
|
/* 0298D430 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298D434 */ _t13 = cpu->r[11] + 0x000001ACu;
|
|
/* 0298D434 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D438 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D43C */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 0298D440 */ cpu->r[30] = cpu->r[30] + 0x00000004u;
|
|
/* 0298D444 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D448 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D44C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[3]);
|
|
/* 0298D450 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D450 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298D450 */ if (_t15) goto L_0298D420; else goto L_0298D454;
|
|
L_0298D454: ; // 0x298d454
|
|
/* 0298D454 */ _t16 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298D454 */ rbrew_write32(cpu->mem, _t16, cpu->r[28]);
|
|
/* 0298D458 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298D45C */ _t17 = cpu->r[31] + 0x00000168u;
|
|
/* 0298D45C */ rbrew_write8(cpu->mem, _t17, (uint8_t)cpu->r[0]);
|
|
/* 0298D460 */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D460 */ cpu->r[28] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298D464 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D464 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298D468 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D468 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298D46C */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D46C */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298D470 */ cpu->lr = cpu->r[0];
|
|
/* 0298D474 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D474 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298D478 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298D47C */ return;
|
|
L_0298D480: ; // 0x298d480
|
|
/* 0298D480 */ _t23 = cpu->r[3] + 0x00000158u;
|
|
/* 0298D480 */ rbrew_write32(cpu->mem, _t23, cpu->r[4]);
|
|
/* 0298D484 */ cpu->r[4] = cpu->r[5];
|
|
/* 0298D488 */ goto L_0298D3DC;
|
|
}
|
|
|
|
// fn_0298D48C @ 0x298d48c
|
|
void Gambit_fn_0298D48C(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_0298D48C: ; // 0x298d48c
|
|
/* 0298D48C */ _t0 = cpu->r[3] + 0x00000154u;
|
|
/* 0298D48C */ rbrew_write32(cpu->mem, _t0, cpu->r[4]);
|
|
/* 0298D490 */ return;
|
|
}
|
|
|
|
// fn_0298D494 @ 0x298d494
|
|
void Gambit_fn_0298D494(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_0298D494: ; // 0x298d494
|
|
/* 0298D494 */ _t0 = cpu->r[3] + 0x00000150u;
|
|
/* 0298D494 */ rbrew_write32(cpu->mem, _t0, cpu->r[4]);
|
|
/* 0298D498 */ return;
|
|
}
|
|
|
|
// fn_0298D49C @ 0x298d49c
|
|
void Gambit_fn_0298D49C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_0298D49C: ; // 0x298d49c
|
|
/* 0298D49C */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298D49C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D49C */ cpu->r[1] = _t0;
|
|
/* 0298D4A0 */ /* nop */
|
|
/* 0298D4A4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D4A8 */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 0298D4A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298D4AC */ cpu->r[29] = cpu->r[6];
|
|
/* 0298D4B0 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D4B4 */ cpu->r[27] = cpu->r[4];
|
|
/* 0298D4B8 */ _t2 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D4B8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298D4BC */ cpu->r[28] = cpu->r[5];
|
|
/* 0298D4C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298D4C4 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298D4C8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D4C8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298D4C8 */ if (_t4) goto L_0298D4CC; else goto L_0298D4E4;
|
|
L_0298D4CC: ; // 0x298d4cc
|
|
/* 0298D4CC */ _t5 = cpu->r[31] + 0x00000160u;
|
|
/* 0298D4CC */ cpu->r[4] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D4D0 */ cpu->r[6] = cpu->r[29];
|
|
/* 0298D4D4 */ cpu->r[5] = cpu->r[28];
|
|
/* 0298D4D8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D4DC */ Gambit_fn_0298D270(cpu);
|
|
/* 0298D4E0 */ _t6 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D4E0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t6);
|
|
L_0298D4E4: ; // 0x298d4e4
|
|
/* 0298D4E4 */ cpu->r[8] = cpu->r[30];
|
|
/* 0298D4E8 */ cpu->r[7] = cpu->r[29];
|
|
/* 0298D4EC */ cpu->r[6] = cpu->r[28];
|
|
/* 0298D4F0 */ cpu->r[5] = cpu->r[27];
|
|
/* 0298D4F4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D4F8 */ Gambit_fn_0298D2AC(cpu);
|
|
/* 0298D4FC */ cpu->r[5] = cpu->r[3];
|
|
/* 0298D4FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 0298D500 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D500 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D500 */ if (_t8) goto L_0298D570; else goto L_0298D504;
|
|
L_0298D504: ; // 0x298d504
|
|
/* 0298D504 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298D508 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D50C */ Gambit_fn_0298D480(cpu);
|
|
/* 0298D510 */ _t9 = cpu->r[28] + 0x00000000u;
|
|
/* 0298D510 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298D514 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298D518 */ Gambit_fn_0282A11C(cpu);
|
|
/* 0298D51C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000001u);
|
|
/* 0298D520 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D520 */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298D520 */ if (_t11) goto L_0298D524; else goto L_0298D540;
|
|
L_0298D524: ; // 0x298d524
|
|
/* 0298D524 */ cpu->r[9] = (uint32_t)(-(int32_t)cpu->r[30]);
|
|
/* 0298D528 */ cpu->r[10] = cpu->r[30] & cpu->r[9];
|
|
/* 0298D52C */ cpu->r[3] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 0298D530 */ Gambit_fn_0282A11C(cpu);
|
|
/* 0298D534 */ cpu->r[4] = cpu->r[3];
|
|
/* 0298D538 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D53C */ Gambit_fn_0298D48C(cpu);
|
|
L_0298D540: ; // 0x298d540
|
|
/* 0298D540 */ _t12 = cpu->r[29] + 0x00000000u;
|
|
/* 0298D540 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298D544 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298D548 */ Gambit_fn_0282A11C(cpu);
|
|
/* 0298D54C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000001u);
|
|
/* 0298D550 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D550 */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298D550 */ if (_t14) goto L_0298D554; else goto L_0298D570;
|
|
L_0298D554: ; // 0x298d554
|
|
/* 0298D554 */ cpu->r[0] = (uint32_t)(-(int32_t)cpu->r[30]);
|
|
/* 0298D558 */ cpu->r[12] = cpu->r[30] & cpu->r[0];
|
|
/* 0298D55C */ cpu->r[3] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 0298D560 */ Gambit_fn_0282A11C(cpu);
|
|
/* 0298D564 */ cpu->r[4] = cpu->r[3];
|
|
/* 0298D568 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D56C */ Gambit_fn_0298D494(cpu);
|
|
L_0298D570: ; // 0x298d570
|
|
/* 0298D570 */ /* nop */
|
|
/* 0298D574 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 0298D574 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298D578 */ cpu->lr = cpu->r[0];
|
|
/* 0298D57C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298D580 */ return;
|
|
}
|
|
|
|
// fn_0298D584 @ 0x298d584
|
|
void Gambit_fn_0298D584(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_0298D584: ; // 0x298d584
|
|
/* 0298D584 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D588 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D588 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D588 */ cpu->r[1] = _t0;
|
|
/* 0298D58C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D58C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298D590 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298D598 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D598 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298D59C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D59C */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298D59C */ if (_t4) goto L_0298D5BC; else goto L_0298D5A0;
|
|
L_0298D5A0: ; // 0x298d5a0
|
|
/* 0298D5A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D5A4 */ Gambit_fn_0298D49C(cpu);
|
|
/* 0298D5A8 */ _t5 = cpu->r[31] + 0x0000016Cu;
|
|
/* 0298D5A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D5AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298D5B0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D5B0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298D5B0 */ if (_t7) goto L_0298D5BC; else goto L_0298D5B4;
|
|
L_0298D5B4: ; // 0x298d5b4
|
|
/* 0298D5B4 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298D5B8 */ Gambit_fn_02981FA4(cpu);
|
|
L_0298D5BC: ; // 0x298d5bc
|
|
/* 0298D5BC */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D5BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298D5C0 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D5C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298D5C4 */ cpu->lr = cpu->r[0];
|
|
/* 0298D5C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D5CC */ return;
|
|
}
|
|
|
|
// fn_0298D588 @ 0x298d588
|
|
void Gambit_fn_0298D588(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_0298D588: ; // 0x298d588
|
|
/* 0298D588 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D588 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D588 */ cpu->r[1] = _t0;
|
|
/* 0298D58C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D58C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298D590 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298D598 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D598 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298D59C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D59C */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298D59C */ if (_t4) goto L_0298D5BC; else goto L_0298D5A0;
|
|
L_0298D5A0: ; // 0x298d5a0
|
|
/* 0298D5A0 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298D5A4 */ Gambit_fn_0298D49C(cpu);
|
|
/* 0298D5A8 */ _t5 = cpu->r[31] + 0x0000016Cu;
|
|
/* 0298D5A8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D5AC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298D5B0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D5B0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298D5B0 */ if (_t7) goto L_0298D5BC; else goto L_0298D5B4;
|
|
L_0298D5B4: ; // 0x298d5b4
|
|
/* 0298D5B4 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298D5B8 */ Gambit_fn_02981FA4(cpu);
|
|
L_0298D5BC: ; // 0x298d5bc
|
|
/* 0298D5BC */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D5BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298D5C0 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D5C0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298D5C4 */ cpu->lr = cpu->r[0];
|
|
/* 0298D5C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D5CC */ return;
|
|
}
|
|
|
|
// fn_0298D5D0 @ 0x298d5d0
|
|
void Gambit_fn_0298D5D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_0298D5D0: ; // 0x298d5d0
|
|
/* 0298D5D0 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D5D4 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 0298D5D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 0298D5D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298D5DC */ _t1 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298D5DC */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 0298D5DC */ cpu->r[1] = _t1;
|
|
/* 0298D5E0 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D5E0 */ _t3 = _t2 & 0x00000001u;
|
|
/* 0298D5E0 */ if (_t3) goto L_0298D604; else goto L_0298D5E4;
|
|
L_0298D5E4: ; // 0x298d5e4
|
|
/* 0298D5E4 */ _t4 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298D5E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D5E8 */ cpu->r[7] = cpu->r[5];
|
|
/* 0298D5EC */ _t5 = cpu->r[4] + 0x00000010u;
|
|
/* 0298D5EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298D5F0 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D5F4 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D5F4 */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 0298D5F8 */ cpu->r[6] = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D5FC */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D5FC */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298D600 */ Gambit_fn_0298D584(cpu);
|
|
L_0298D604: ; // 0x298d604
|
|
/* 0298D604 */ _t8 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298D608 */ cpu->lr = cpu->r[0];
|
|
/* 0298D60C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298D610 */ return;
|
|
}
|
|
|
|
// fn_0298D5DC @ 0x298d5dc
|
|
void Gambit_fn_0298D5DC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_0298D5DC: ; // 0x298d5dc
|
|
/* 0298D5DC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298D5DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D5DC */ cpu->r[1] = _t0;
|
|
/* 0298D5E0 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D5E0 */ _t2 = _t1 & 0x00000001u;
|
|
/* 0298D5E0 */ if (_t2) goto L_0298D604; else goto L_0298D5E4;
|
|
L_0298D5E4: ; // 0x298d5e4
|
|
/* 0298D5E4 */ _t3 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298D5E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298D5E8 */ cpu->r[7] = cpu->r[5];
|
|
/* 0298D5EC */ _t4 = cpu->r[4] + 0x00000010u;
|
|
/* 0298D5EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D5F0 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D5F4 */ _t5 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D5F4 */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 0298D5F8 */ cpu->r[6] = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D5FC */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D5FC */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298D600 */ Gambit_fn_0298D584(cpu);
|
|
L_0298D604: ; // 0x298d604
|
|
/* 0298D604 */ _t7 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D604 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298D608 */ cpu->lr = cpu->r[0];
|
|
/* 0298D60C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298D610 */ return;
|
|
}
|
|
|
|
// fn_0298D614 @ 0x298d614
|
|
void Gambit_fn_0298D614(CPUState* cpu) {
|
|
uint32_t _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_0298D614: ; // 0x298d614
|
|
/* 0298D614 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D618 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D618 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D618 */ cpu->r[1] = _t0;
|
|
/* 0298D61C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D61C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298D620 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D620 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298D624 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298D628 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D62C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298D630 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D630 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D634 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D634 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298D634 */ if (_t5) goto L_0298D668; else goto L_0298D638;
|
|
L_0298D638: ; // 0x298d638
|
|
/* 0298D638 */ _t6 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D638 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D63C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298D640 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D640 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D640 */ if (_t8) goto L_0298D694; else goto L_0298D644;
|
|
L_0298D644: ; // 0x298d644
|
|
/* 0298D644 */ _t9 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298D644 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298D648 */ _t10 = cpu->r[10] + 0x00000024u;
|
|
/* 0298D648 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D64C */ cpu->ctr = cpu->r[11];
|
|
/* 0298D650 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D654 */ _t11 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298D654 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 0298D658 */ _t12 = cpu->r[31] + 0x00000168u;
|
|
/* 0298D658 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[30]);
|
|
/* 0298D65C */ _t13 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D65C */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 0298D660 */ _t14 = cpu->r[31] + 0x00000158u;
|
|
/* 0298D660 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 0298D664 */ goto L_0298D6A0;
|
|
L_0298D668: ; // 0x298d668
|
|
/* 0298D668 */ _t15 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298D668 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298D66C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298D670 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D670 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298D670 */ if (_t17) goto L_0298D694; else goto L_0298D674;
|
|
L_0298D674: ; // 0x298d674
|
|
/* 0298D674 */ _t18 = cpu->r[12] + 0x00000000u;
|
|
/* 0298D674 */ cpu->r[0] = rbrew_read8(cpu->mem, _t18);
|
|
/* 0298D678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298D67C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D67C */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298D67C */ if (_t20) goto L_0298D694; else goto L_0298D680;
|
|
L_0298D680: ; // 0x298d680
|
|
/* 0298D680 */ _t21 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D680 */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298D684 */ _t22 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298D684 */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298D688 */ _t23 = cpu->r[8] + 0x0000005Cu;
|
|
/* 0298D688 */ cpu->r[9] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298D68C */ cpu->ctr = cpu->r[9];
|
|
/* 0298D690 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298D694: ; // 0x298d694
|
|
/* 0298D694 */ _t24 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298D694 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 0298D698 */ _t25 = cpu->r[31] + 0x00000158u;
|
|
/* 0298D698 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 0298D69C */ _t26 = cpu->r[31] + 0x00000168u;
|
|
/* 0298D69C */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[30]);
|
|
L_0298D6A0: ; // 0x298d6a0
|
|
/* 0298D6A0 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D6A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298D6A4 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D6A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298D6A8 */ cpu->lr = cpu->r[0];
|
|
/* 0298D6AC */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D6AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 0298D6B0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D6B4 */ return;
|
|
}
|
|
|
|
// fn_0298D618 @ 0x298d618
|
|
void Gambit_fn_0298D618(CPUState* cpu) {
|
|
uint32_t _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_0298D618: ; // 0x298d618
|
|
/* 0298D618 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D618 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D618 */ cpu->r[1] = _t0;
|
|
/* 0298D61C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D61C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298D620 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D620 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298D624 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298D628 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D62C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298D630 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D630 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D634 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D634 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298D634 */ if (_t5) goto L_0298D668; else goto L_0298D638;
|
|
L_0298D638: ; // 0x298d638
|
|
/* 0298D638 */ _t6 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D638 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D63C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298D640 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D640 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D640 */ if (_t8) goto L_0298D694; else goto L_0298D644;
|
|
L_0298D644: ; // 0x298d644
|
|
/* 0298D644 */ _t9 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298D644 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298D648 */ _t10 = cpu->r[10] + 0x00000024u;
|
|
/* 0298D648 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D64C */ cpu->ctr = cpu->r[11];
|
|
/* 0298D650 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D654 */ _t11 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298D654 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 0298D658 */ _t12 = cpu->r[31] + 0x00000168u;
|
|
/* 0298D658 */ rbrew_write8(cpu->mem, _t12, (uint8_t)cpu->r[30]);
|
|
/* 0298D65C */ _t13 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D65C */ rbrew_write32(cpu->mem, _t13, cpu->r[30]);
|
|
/* 0298D660 */ _t14 = cpu->r[31] + 0x00000158u;
|
|
/* 0298D660 */ rbrew_write32(cpu->mem, _t14, cpu->r[30]);
|
|
/* 0298D664 */ goto L_0298D6A0;
|
|
L_0298D668: ; // 0x298d668
|
|
/* 0298D668 */ _t15 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298D668 */ cpu->r[12] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298D66C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298D670 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D670 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298D670 */ if (_t17) goto L_0298D694; else goto L_0298D674;
|
|
L_0298D674: ; // 0x298d674
|
|
/* 0298D674 */ _t18 = cpu->r[12] + 0x00000000u;
|
|
/* 0298D674 */ cpu->r[0] = rbrew_read8(cpu->mem, _t18);
|
|
/* 0298D678 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298D67C */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D67C */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298D67C */ if (_t20) goto L_0298D694; else goto L_0298D680;
|
|
L_0298D680: ; // 0x298d680
|
|
/* 0298D680 */ _t21 = cpu->r[31] + 0x00000164u;
|
|
/* 0298D680 */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298D684 */ _t22 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298D684 */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298D688 */ _t23 = cpu->r[8] + 0x0000005Cu;
|
|
/* 0298D688 */ cpu->r[9] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298D68C */ cpu->ctr = cpu->r[9];
|
|
/* 0298D690 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298D694: ; // 0x298d694
|
|
/* 0298D694 */ _t24 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298D694 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 0298D698 */ _t25 = cpu->r[31] + 0x00000158u;
|
|
/* 0298D698 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
/* 0298D69C */ _t26 = cpu->r[31] + 0x00000168u;
|
|
/* 0298D69C */ rbrew_write8(cpu->mem, _t26, (uint8_t)cpu->r[30]);
|
|
L_0298D6A0: ; // 0x298d6a0
|
|
/* 0298D6A0 */ _t27 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D6A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298D6A4 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D6A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298D6A8 */ cpu->lr = cpu->r[0];
|
|
/* 0298D6AC */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D6AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 0298D6B0 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D6B4 */ return;
|
|
}
|
|
|
|
// fn_0298D6B8 @ 0x298d6b8
|
|
void Gambit_fn_0298D6B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_0298D6B8: ; // 0x298d6b8
|
|
/* 0298D6B8 */ _t0 = cpu->r[3] + 0x00000158u;
|
|
/* 0298D6B8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298D6BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298D6C0 */ cpu->r[8] = 0x00000000u;
|
|
/* 0298D6C4 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D6C4 */ _t2 = _t1 & 0x00000001u;
|
|
/* 0298D6C4 */ if (_t2) goto L_0298D6FC; else goto L_0298D6C8;
|
|
L_0298D6C8: ; // 0x298d6c8
|
|
/* 0298D6C8 */ _t3 = cpu->r[11] + 0x00000004u;
|
|
/* 0298D6C8 */ cpu->r[0] = rbrew_read8(cpu->mem, _t3);
|
|
/* 0298D6CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298D6D0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D6D0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298D6D0 */ if (_t5) goto L_0298D6FC; else goto L_0298D6D4;
|
|
L_0298D6D4: ; // 0x298d6d4
|
|
/* 0298D6D4 */ _t6 = cpu->r[3] + 0x0000015Cu;
|
|
/* 0298D6D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D6D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298D6DC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D6DC */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D6DC */ if (_t8) goto L_0298D6FC; else goto L_0298D6E0;
|
|
L_0298D6E0: ; // 0x298d6e0
|
|
/* 0298D6E0 */ _t9 = cpu->r[12] + 0x00000000u;
|
|
/* 0298D6E0 */ cpu->r[9] = rbrew_read8(cpu->mem, _t9);
|
|
/* 0298D6E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 0298D6E8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D6E8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298D6E8 */ if (_t11) goto L_0298D6FC; else goto L_0298D6EC;
|
|
L_0298D6EC: ; // 0x298d6ec
|
|
/* 0298D6EC */ _t12 = cpu->r[3] + 0x00000168u;
|
|
/* 0298D6EC */ cpu->r[0] = rbrew_read8(cpu->mem, _t12);
|
|
/* 0298D6F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298D6F4 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D6F4 */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298D6F4 */ if (_t14) goto L_0298D6FC; else goto L_0298D6F8;
|
|
L_0298D6F8: ; // 0x298d6f8
|
|
/* 0298D6F8 */ cpu->r[8] = 0x00000001u;
|
|
L_0298D6FC: ; // 0x298d6fc
|
|
/* 0298D6FC */ cpu->r[3] = rbrew_rlwinm(cpu->r[8], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298D700 */ return;
|
|
}
|
|
|
|
// fn_0298D704 @ 0x298d704
|
|
void Gambit_fn_0298D704(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_0298D704: ; // 0x298d704
|
|
/* 0298D704 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D708 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D708 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D708 */ cpu->r[1] = _t0;
|
|
/* 0298D70C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D70C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298D710 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298D714 */ cpu->r[3] = cpu->r[4];
|
|
/* 0298D718 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D718 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298D71C */ cpu->r[4] = cpu->r[30] + 0x00000104u;
|
|
/* 0298D720 */ cpu->r[31] = cpu->r[5];
|
|
/* 0298D724 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D724 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D728 */ Gambit_fn_02C69510(cpu);
|
|
/* 0298D72C */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 0298D72C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 0298D730 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298D734 */ _t5 = cpu->r[30] + 0x00000134u;
|
|
/* 0298D734 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 0298D738 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 0298D738 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 0298D73C */ cpu->r[12] = cpu->r[12] + 0xFFFFF540u;
|
|
/* 0298D740 */ _t7 = cpu->r[30] + 0x0000013Cu;
|
|
/* 0298D740 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 0298D744 */ cpu->f[10] = cpu->f[11] * cpu->f[0];
|
|
/* 0298D748 */ _t8 = cpu->r[30] + 0x00000138u;
|
|
/* 0298D748 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 0298D74C */ /* nop */
|
|
/* 0298D750 */ cpu->f[7] = cpu->f[12] * cpu->f[13];
|
|
/* 0298D754 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 0298D754 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 0298D758 */ /* nop */
|
|
/* 0298D75C */ cpu->f[8] = cpu->f[0] * cpu->f[9];
|
|
/* 0298D760 */ /* nop */
|
|
/* 0298D764 */ /* nop */
|
|
/* 0298D768 */ _t10 = cpu->r[30] + 0x000000C8u;
|
|
/* 0298D768 */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 0298D76C */ /* nop */
|
|
/* 0298D770 */ /* nop */
|
|
/* 0298D774 */ /* nop */
|
|
/* 0298D778 */ cpu->r[0] = cpu->r[0] | 0x0000000Au;
|
|
/* 0298D77C */ /* nop */
|
|
/* 0298D780 */ /* nop */
|
|
/* 0298D784 */ _t11 = cpu->r[30] + 0x000000C8u;
|
|
/* 0298D784 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[0]);
|
|
/* 0298D788 */ /* nop */
|
|
/* 0298D78C */ /* nop */
|
|
/* 0298D790 */ /* nop */
|
|
/* 0298D794 */ /* nop */
|
|
/* 0298D798 */ /* nop */
|
|
/* 0298D79C */ /* nop */
|
|
/* 0298D7A0 */ /* nop */
|
|
/* 0298D7A4 */ /* nop */
|
|
/* 0298D7A8 */ /* nop */
|
|
/* 0298D7AC */ /* nop */
|
|
/* 0298D7B0 */ /* nop */
|
|
/* 0298D7B4 */ /* nop */
|
|
/* 0298D7B8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D7B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298D7BC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D7BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D7C0 */ cpu->lr = cpu->r[0];
|
|
/* 0298D7C4 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D7C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D7C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D7CC */ return;
|
|
}
|
|
|
|
// fn_0298D708 @ 0x298d708
|
|
void Gambit_fn_0298D708(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_0298D708: ; // 0x298d708
|
|
/* 0298D708 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D708 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D708 */ cpu->r[1] = _t0;
|
|
/* 0298D70C */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D70C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298D710 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298D714 */ cpu->r[3] = cpu->r[4];
|
|
/* 0298D718 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D718 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298D71C */ cpu->r[4] = cpu->r[30] + 0x00000104u;
|
|
/* 0298D720 */ cpu->r[31] = cpu->r[5];
|
|
/* 0298D724 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D724 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D728 */ Gambit_fn_02C69510(cpu);
|
|
/* 0298D72C */ _t4 = cpu->r[31] + 0x00000000u;
|
|
/* 0298D72C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 0298D730 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298D734 */ _t5 = cpu->r[30] + 0x00000134u;
|
|
/* 0298D734 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t5);
|
|
/* 0298D738 */ _t6 = cpu->r[31] + 0x00000008u;
|
|
/* 0298D738 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t6);
|
|
/* 0298D73C */ cpu->r[12] = cpu->r[12] + 0xFFFFF540u;
|
|
/* 0298D740 */ _t7 = cpu->r[30] + 0x0000013Cu;
|
|
/* 0298D740 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t7);
|
|
/* 0298D744 */ cpu->f[10] = cpu->f[11] * cpu->f[0];
|
|
/* 0298D748 */ _t8 = cpu->r[30] + 0x00000138u;
|
|
/* 0298D748 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t8);
|
|
/* 0298D74C */ /* nop */
|
|
/* 0298D750 */ cpu->f[7] = cpu->f[12] * cpu->f[13];
|
|
/* 0298D754 */ _t9 = cpu->r[31] + 0x00000004u;
|
|
/* 0298D754 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 0298D758 */ /* nop */
|
|
/* 0298D75C */ cpu->f[8] = cpu->f[0] * cpu->f[9];
|
|
/* 0298D760 */ /* nop */
|
|
/* 0298D764 */ /* nop */
|
|
/* 0298D768 */ _t10 = cpu->r[30] + 0x000000C8u;
|
|
/* 0298D768 */ cpu->r[0] = rbrew_read8(cpu->mem, _t10);
|
|
/* 0298D76C */ /* nop */
|
|
/* 0298D770 */ /* nop */
|
|
/* 0298D774 */ /* nop */
|
|
/* 0298D778 */ cpu->r[0] = cpu->r[0] | 0x0000000Au;
|
|
/* 0298D77C */ /* nop */
|
|
/* 0298D780 */ /* nop */
|
|
/* 0298D784 */ _t11 = cpu->r[30] + 0x000000C8u;
|
|
/* 0298D784 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[0]);
|
|
/* 0298D788 */ /* nop */
|
|
/* 0298D78C */ /* nop */
|
|
/* 0298D790 */ /* nop */
|
|
/* 0298D794 */ /* nop */
|
|
/* 0298D798 */ /* nop */
|
|
/* 0298D79C */ /* nop */
|
|
/* 0298D7A0 */ /* nop */
|
|
/* 0298D7A4 */ /* nop */
|
|
/* 0298D7A8 */ /* nop */
|
|
/* 0298D7AC */ /* nop */
|
|
/* 0298D7B0 */ /* nop */
|
|
/* 0298D7B4 */ /* nop */
|
|
/* 0298D7B8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D7B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298D7BC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D7BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D7C0 */ cpu->lr = cpu->r[0];
|
|
/* 0298D7C4 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D7C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D7C8 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298D7CC */ return;
|
|
}
|
|
|
|
// fn_0298D7D0 @ 0x298d7d0
|
|
void Gambit_fn_0298D7D0(CPUState* cpu) {
|
|
uint32_t _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_0298D7D0: ; // 0x298d7d0
|
|
/* 0298D7D0 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D7D4 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 0298D7D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D7D4 */ cpu->r[1] = _t0;
|
|
/* 0298D7D8 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298D7D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298D7DC */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D7E0 */ _t2 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D7E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298D7E4 */ _t3 = cpu->r[31] + 0x000000C8u;
|
|
/* 0298D7E4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t3);
|
|
/* 0298D7E8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298D7E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298D7EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D7EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298D7EC */ if (_t5) goto L_0298D888; else goto L_0298D7F0;
|
|
L_0298D7F0: ; // 0x298d7f0
|
|
/* 0298D7F0 */ _t6 = cpu->r[31] + 0x00000034u;
|
|
/* 0298D7F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D7F4 */ cpu->r[10] = cpu->r[31] + 0x00000024u;
|
|
/* 0298D7F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 0298D7FC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D7FC */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D7FC */ if (_t8) goto L_0298D800; else goto L_0298D888;
|
|
L_0298D800: ; // 0x298d800
|
|
/* 0298D800 */ Gambit_fn_02970038(cpu);
|
|
/* 0298D804 */ cpu->r[11] = 0x101D0000u;
|
|
/* 0298D808 */ _t9 = cpu->r[11] + 0xFFFFA68Cu;
|
|
/* 0298D808 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 0298D80C */ cpu->f[0] = cpu->f[0] * cpu->f[1];
|
|
/* 0298D810 */ _t10 = cpu->r[31] + 0x00000034u;
|
|
/* 0298D810 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D814 */ cpu->r[9] = 0x10200000u;
|
|
/* 0298D818 */ _t11 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0298D818 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 0298D81C */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298D820 */ cpu->r[9] = cpu->r[9] + 0xFFFF8800u;
|
|
/* 0298D824 */ _t12 = cpu->r[12] + 0xFFFFA688u;
|
|
/* 0298D824 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 0298D828 */ /* nop */
|
|
/* 0298D82C */ cpu->f[12] = cpu->f[13] * cpu->f[1];
|
|
/* 0298D830 */ /* nop */
|
|
/* 0298D834 */ _t13 = cpu->r[9] + 0x00000008u;
|
|
/* 0298D834 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 0298D838 */ /* nop */
|
|
/* 0298D83C */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D83C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D840 */ cpu->f[13] = cpu->f[0] * cpu->f[12];
|
|
/* 0298D844 */ _t15 = cpu->r[1] + 0x00000020u;
|
|
/* 0298D844 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 0298D848 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D848 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298D84C */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D84C */ rbrew_write_f32(cpu->mem, _t17, cpu->f[13]);
|
|
/* 0298D850 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D850 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298D854 */ cpu->r[3] = cpu->r[31] + 0x00000104u;
|
|
/* 0298D858 */ _t19 = cpu->r[1] + 0x00000024u;
|
|
/* 0298D858 */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 0298D85C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 0298D860 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298D864 */ _t20 = cpu->r[1] + 0x00000028u;
|
|
/* 0298D864 */ rbrew_write32(cpu->mem, _t20, cpu->r[9]);
|
|
/* 0298D868 */ Gambit_fn_02C69468(cpu);
|
|
/* 0298D86C */ _t21 = cpu->r[31] + 0x00000034u;
|
|
/* 0298D86C */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298D870 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D870 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 0298D874 */ _t23 = cpu->r[12] + 0x00000000u;
|
|
/* 0298D874 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[12]);
|
|
/* 0298D878 */ _t24 = cpu->r[1] + 0x00000018u;
|
|
/* 0298D878 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0298D87C */ _t25 = cpu->r[12] + 0x00000004u;
|
|
/* 0298D87C */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 0298D880 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D880 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 0298D884 */ _t27 = cpu->r[12] + 0x00000008u;
|
|
/* 0298D884 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[12]);
|
|
L_0298D888: ; // 0x298d888
|
|
/* 0298D888 */ _t28 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D888 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298D88C */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298D88C */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 0298D890 */ cpu->lr = cpu->r[0];
|
|
/* 0298D894 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 0298D898 */ return;
|
|
}
|
|
|
|
// fn_0298D7D4 @ 0x298d7d4
|
|
void Gambit_fn_0298D7D4(CPUState* cpu) {
|
|
uint32_t _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_0298D7D4: ; // 0x298d7d4
|
|
/* 0298D7D4 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 0298D7D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D7D4 */ cpu->r[1] = _t0;
|
|
/* 0298D7D8 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298D7D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298D7DC */ cpu->r[31] = cpu->r[3];
|
|
/* 0298D7E0 */ _t2 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D7E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298D7E4 */ _t3 = cpu->r[31] + 0x000000C8u;
|
|
/* 0298D7E4 */ cpu->r[9] = rbrew_read8(cpu->mem, _t3);
|
|
/* 0298D7E8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298D7E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298D7EC */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D7EC */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298D7EC */ if (_t5) goto L_0298D888; else goto L_0298D7F0;
|
|
L_0298D7F0: ; // 0x298d7f0
|
|
/* 0298D7F0 */ _t6 = cpu->r[31] + 0x00000034u;
|
|
/* 0298D7F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D7F4 */ cpu->r[10] = cpu->r[31] + 0x00000024u;
|
|
/* 0298D7F8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[10]);
|
|
/* 0298D7FC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D7FC */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D7FC */ if (_t8) goto L_0298D800; else goto L_0298D888;
|
|
L_0298D800: ; // 0x298d800
|
|
/* 0298D800 */ Gambit_fn_02970038(cpu);
|
|
/* 0298D804 */ cpu->r[11] = 0x101D0000u;
|
|
/* 0298D808 */ _t9 = cpu->r[11] + 0xFFFFA68Cu;
|
|
/* 0298D808 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t9);
|
|
/* 0298D80C */ cpu->f[0] = cpu->f[0] * cpu->f[1];
|
|
/* 0298D810 */ _t10 = cpu->r[31] + 0x00000034u;
|
|
/* 0298D810 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D814 */ cpu->r[9] = 0x10200000u;
|
|
/* 0298D818 */ _t11 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0298D818 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 0298D81C */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298D820 */ cpu->r[9] = cpu->r[9] + 0xFFFF8800u;
|
|
/* 0298D824 */ _t12 = cpu->r[12] + 0xFFFFA688u;
|
|
/* 0298D824 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 0298D828 */ /* nop */
|
|
/* 0298D82C */ cpu->f[12] = cpu->f[13] * cpu->f[1];
|
|
/* 0298D830 */ /* nop */
|
|
/* 0298D834 */ _t13 = cpu->r[9] + 0x00000008u;
|
|
/* 0298D834 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 0298D838 */ /* nop */
|
|
/* 0298D83C */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D83C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298D840 */ cpu->f[13] = cpu->f[0] * cpu->f[12];
|
|
/* 0298D844 */ _t15 = cpu->r[1] + 0x00000020u;
|
|
/* 0298D844 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 0298D848 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D848 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298D84C */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D84C */ rbrew_write_f32(cpu->mem, _t17, cpu->f[13]);
|
|
/* 0298D850 */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 0298D850 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298D854 */ cpu->r[3] = cpu->r[31] + 0x00000104u;
|
|
/* 0298D858 */ _t19 = cpu->r[1] + 0x00000024u;
|
|
/* 0298D858 */ rbrew_write32(cpu->mem, _t19, cpu->r[10]);
|
|
/* 0298D85C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 0298D860 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298D864 */ _t20 = cpu->r[1] + 0x00000028u;
|
|
/* 0298D864 */ rbrew_write32(cpu->mem, _t20, cpu->r[9]);
|
|
/* 0298D868 */ Gambit_fn_02C69468(cpu);
|
|
/* 0298D86C */ _t21 = cpu->r[31] + 0x00000034u;
|
|
/* 0298D86C */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298D870 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D870 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t22);
|
|
/* 0298D874 */ _t23 = cpu->r[12] + 0x00000000u;
|
|
/* 0298D874 */ rbrew_write_f32(cpu->mem, _t23, cpu->f[12]);
|
|
/* 0298D878 */ _t24 = cpu->r[1] + 0x00000018u;
|
|
/* 0298D878 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0298D87C */ _t25 = cpu->r[12] + 0x00000004u;
|
|
/* 0298D87C */ rbrew_write_f32(cpu->mem, _t25, cpu->f[0]);
|
|
/* 0298D880 */ _t26 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298D880 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 0298D884 */ _t27 = cpu->r[12] + 0x00000008u;
|
|
/* 0298D884 */ rbrew_write_f32(cpu->mem, _t27, cpu->f[12]);
|
|
L_0298D888: ; // 0x298d888
|
|
/* 0298D888 */ _t28 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D888 */ cpu->r[0] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298D88C */ _t29 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298D88C */ cpu->r[31] = rbrew_read32(cpu->mem, _t29);
|
|
/* 0298D890 */ cpu->lr = cpu->r[0];
|
|
/* 0298D894 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 0298D898 */ return;
|
|
}
|
|
|
|
// fn_0298D89C @ 0x298d89c
|
|
void Gambit_fn_0298D89C(CPUState* cpu) {
|
|
uint32_t _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_0298D89C: ; // 0x298d89c
|
|
/* 0298D89C */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 0298D89C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D89C */ cpu->r[1] = _t0;
|
|
/* 0298D8A0 */ /* nop */
|
|
/* 0298D8A4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D8A8 */ cpu->r[28] = 0x101D0000u;
|
|
/* 0298D8AC */ cpu->r[24] = 0x10150000u;
|
|
/* 0298D8B0 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D8B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298D8B4 */ cpu->r[29] = 0x00080000u;
|
|
/* 0298D8B8 */ cpu->r[31] = 0x10110000u;
|
|
/* 0298D8BC */ cpu->r[25] = cpu->r[4];
|
|
/* 0298D8C0 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298D8C4 */ cpu->r[26] = 0x00000005u;
|
|
/* 0298D8C8 */ cpu->r[24] = cpu->r[24] + 0xFFFFF550u;
|
|
/* 0298D8CC */ cpu->r[28] = cpu->r[28] + 0xFFFFA68Cu;
|
|
/* 0298D8D0 */ _t2 = cpu->r[31] + 0x00007399u;
|
|
/* 0298D8D0 */ cpu->r[31] = rbrew_read8(cpu->mem, _t2);
|
|
/* 0298D8D4 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
L_0298D8D8: ; // 0x298d8d8
|
|
/* 0298D8D8 */ _t3 = cpu->r[28] + 0x00000004u;
|
|
/* 0298D8D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298D8D8 */ cpu->r[28] = _t3;
|
|
/* 0298D8DC */ _t4 = cpu->r[25] + 0x00000004u;
|
|
/* 0298D8DC */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298D8E0 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D8E0 */ rbrew_write32(cpu->mem, _t5, cpu->r[24]);
|
|
/* 0298D8E4 */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D8E4 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298D8E8 */ _t7 = cpu->r[12] + 0x00000014u;
|
|
/* 0298D8E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298D8EC */ cpu->ctr = cpu->r[0];
|
|
/* 0298D8F0 */ cpu->r[3] = cpu->r[25];
|
|
/* 0298D8F4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D8F8 */ _t8 = cpu->r[25] + 0x00000004u;
|
|
/* 0298D8F8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298D8FC */ _t9 = cpu->r[5] + 0x00000014u;
|
|
/* 0298D8FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298D900 */ cpu->ctr = cpu->r[0];
|
|
/* 0298D904 */ cpu->r[3] = cpu->r[25];
|
|
/* 0298D908 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D90C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D90C */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298D910 */ _t11 = cpu->r[7] + 0x00000014u;
|
|
/* 0298D910 */ cpu->r[9] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298D914 */ cpu->ctr = cpu->r[9];
|
|
/* 0298D918 */ _t12 = cpu->r[25] + 0x00000000u;
|
|
/* 0298D918 */ cpu->r[27] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298D91C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298D920 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298D924 */ _t13 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D924 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D928 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[0]);
|
|
/* 0298D92C */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D92C */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298D92C */ if (_t15) goto L_0298D964; else goto L_0298D930;
|
|
L_0298D930: ; // 0x298d930
|
|
/* 0298D930 */ _t16 = cpu->r[25] + 0x00000000u;
|
|
/* 0298D930 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298D934 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D934 */ cpu->r[8] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298D938 */ cpu->r[10] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 0298D93C */ cpu->ctr = cpu->r[29];
|
|
/* 0298D940 */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
L_0298D944: ; // 0x298d944
|
|
/* 0298D944 */ _t18 = cpu->r[10] + 0x00000001u;
|
|
/* 0298D944 */ cpu->r[0] = rbrew_read8(cpu->mem, _t18);
|
|
/* 0298D944 */ cpu->r[10] = _t18;
|
|
/* 0298D948 */ _t19 = cpu->r[8] + 0x00000001u;
|
|
/* 0298D948 */ cpu->r[12] = rbrew_read8(cpu->mem, _t19);
|
|
/* 0298D948 */ cpu->r[8] = _t19;
|
|
/* 0298D94C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 0298D950 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D950 */ _t21 = _t20 & 0x00000001u;
|
|
/* 0298D950 */ if (_t21) goto L_0298D954; else goto L_0298D97C;
|
|
L_0298D954: ; // 0x298d954
|
|
/* 0298D954 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 0298D958 */ _t22 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D958 */ _t23 = _t22 & 0x00000001u;
|
|
/* 0298D958 */ if (_t23) goto L_0298D964; else goto L_0298D95C;
|
|
L_0298D95C: ; // 0x298d95c
|
|
/* 0298D95C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298D95C */ _t24 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298D95C */ _t25 = _t24 >> (0x00000002u & 31u);
|
|
/* 0298D95C */ _t26 = _t25 & 0x00000001u;
|
|
/* 0298D95C */ if (_t26) goto L_0298D944; else goto L_0298D960;
|
|
L_0298D960: ; // 0x298d960
|
|
/* 0298D960 */ goto L_0298D97C;
|
|
L_0298D964: ; // 0x298d964
|
|
/* 0298D964 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298D968 */ /* nop */
|
|
/* 0298D96C */ _t27 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D96C */ cpu->r[0] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298D970 */ cpu->lr = cpu->r[0];
|
|
/* 0298D974 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 0298D978 */ return;
|
|
L_0298D97C: ; // 0x298d97c
|
|
/* 0298D97C */ cpu->r[26] = cpu->r[26] + 0xFFFFFFFFu;
|
|
/* 0298D97C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 0298D980 */ cpu->r[30] = cpu->r[30] + 0x00000001u;
|
|
/* 0298D984 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D984 */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298D984 */ if (_t29) goto L_0298D988; else goto L_0298D8D8;
|
|
L_0298D988: ; // 0x298d988
|
|
/* 0298D988 */ /* nop */
|
|
/* 0298D98C */ _t30 = cpu->r[1] + 0x00000034u;
|
|
/* 0298D98C */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298D990 */ cpu->lr = cpu->r[0];
|
|
/* 0298D994 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 0298D998 */ cpu->r[3] = 0xFFFFFFFFu;
|
|
/* 0298D99C */ return;
|
|
}
|
|
|
|
// fn_0298D9A0 @ 0x298d9a0
|
|
void Gambit_fn_0298D9A0(CPUState* cpu) {
|
|
uint32_t _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_0298D9A0: ; // 0x298d9a0
|
|
/* 0298D9A0 */ cpu->r[0] = cpu->lr;
|
|
/* 0298D9A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D9A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D9A4 */ cpu->r[1] = _t0;
|
|
/* 0298D9A8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D9A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298D9AC */ cpu->r[30] = 0x10150000u;
|
|
/* 0298D9B0 */ cpu->r[30] = cpu->r[30] + 0xFFFFF550u;
|
|
/* 0298D9B4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D9B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298D9B8 */ cpu->r[3] = cpu->r[4];
|
|
/* 0298D9BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000005u);
|
|
/* 0298D9C0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D9C0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D9C4 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D9C4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298D9C4 */ if (_t5) goto L_0298D9C8; else goto L_0298DA10;
|
|
L_0298D9C8: ; // 0x298d9c8
|
|
/* 0298D9C8 */ cpu->r[0] = 0x101D0000u;
|
|
/* 0298D9CC */ cpu->r[10] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298D9D0 */ cpu->r[0] = cpu->r[0] + 0xFFFFA690u;
|
|
/* 0298D9D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298D9D8 */ _t6 = cpu->r[10] + cpu->r[0];
|
|
/* 0298D9D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D9DC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D9DC */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D9DC */ if (_t8) goto L_0298D9E0; else goto L_0298D9F0;
|
|
L_0298D9E0: ; // 0x298d9e0
|
|
/* 0298D9E0 */ cpu->r[3] = 0x00000008u;
|
|
/* 0298D9E4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298D9E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298D9EC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D9EC */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298D9EC */ if (_t10) goto L_0298DA38; else goto L_0298D9F0;
|
|
L_0298D9F0: ; // 0x298d9f0
|
|
/* 0298D9F0 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 0298D9F0 */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 0298D9F4 */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 0298D9F4 */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
/* 0298D9F8 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D9F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D9FC */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D9FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298DA00 */ cpu->lr = cpu->r[0];
|
|
/* 0298DA04 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DA04 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298DA08 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DA0C */ return;
|
|
L_0298DA10: ; // 0x298da10
|
|
/* 0298DA10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DA14 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DA14 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298DA14 */ if (_t17) goto L_0298DA18; else goto L_0298DA28;
|
|
L_0298DA18: ; // 0x298da18
|
|
/* 0298DA18 */ cpu->r[3] = 0x00000008u;
|
|
/* 0298DA1C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298DA20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DA24 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DA24 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298DA24 */ if (_t19) goto L_0298DA38; else goto L_0298DA28;
|
|
L_0298DA28: ; // 0x298da28
|
|
/* 0298DA28 */ cpu->r[12] = 0x101F0000u;
|
|
/* 0298DA2C */ _t20 = cpu->r[3] + 0x00000004u;
|
|
/* 0298DA2C */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 0298DA30 */ _t21 = cpu->r[12] + 0x000066E8u;
|
|
/* 0298DA30 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298DA34 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 0298DA34 */ rbrew_write32(cpu->mem, _t22, cpu->r[12]);
|
|
L_0298DA38: ; // 0x298da38
|
|
/* 0298DA38 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DA38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298DA3C */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DA3C */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298DA40 */ cpu->lr = cpu->r[0];
|
|
/* 0298DA44 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DA44 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298DA48 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DA4C */ return;
|
|
}
|
|
|
|
// fn_0298D9A4 @ 0x298d9a4
|
|
void Gambit_fn_0298D9A4(CPUState* cpu) {
|
|
uint32_t _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_0298D9A4: ; // 0x298d9a4
|
|
/* 0298D9A4 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298D9A4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298D9A4 */ cpu->r[1] = _t0;
|
|
/* 0298D9A8 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D9A8 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298D9AC */ cpu->r[30] = 0x10150000u;
|
|
/* 0298D9B0 */ cpu->r[30] = cpu->r[30] + 0xFFFFF550u;
|
|
/* 0298D9B4 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298D9B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298D9B8 */ cpu->r[3] = cpu->r[4];
|
|
/* 0298D9BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000005u);
|
|
/* 0298D9C0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D9C0 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298D9C4 */ _t4 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298D9C4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298D9C4 */ if (_t5) goto L_0298D9C8; else goto L_0298DA10;
|
|
L_0298D9C8: ; // 0x298d9c8
|
|
/* 0298D9C8 */ cpu->r[0] = 0x101D0000u;
|
|
/* 0298D9CC */ cpu->r[10] = rbrew_rlwinm(cpu->r[5], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298D9D0 */ cpu->r[0] = cpu->r[0] + 0xFFFFA690u;
|
|
/* 0298D9D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298D9D8 */ _t6 = cpu->r[10] + cpu->r[0];
|
|
/* 0298D9D8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298D9DC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D9DC */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298D9DC */ if (_t8) goto L_0298D9E0; else goto L_0298D9F0;
|
|
L_0298D9E0: ; // 0x298d9e0
|
|
/* 0298D9E0 */ cpu->r[3] = 0x00000008u;
|
|
/* 0298D9E4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298D9E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298D9EC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298D9EC */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298D9EC */ if (_t10) goto L_0298DA38; else goto L_0298D9F0;
|
|
L_0298D9F0: ; // 0x298d9f0
|
|
/* 0298D9F0 */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 0298D9F0 */ rbrew_write32(cpu->mem, _t11, cpu->r[31]);
|
|
/* 0298D9F4 */ _t12 = cpu->r[3] + 0x00000004u;
|
|
/* 0298D9F4 */ rbrew_write32(cpu->mem, _t12, cpu->r[30]);
|
|
/* 0298D9F8 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 0298D9F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298D9FC */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298D9FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298DA00 */ cpu->lr = cpu->r[0];
|
|
/* 0298DA04 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DA04 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298DA08 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DA0C */ return;
|
|
L_0298DA10: ; // 0x298da10
|
|
/* 0298DA10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DA14 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DA14 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298DA14 */ if (_t17) goto L_0298DA18; else goto L_0298DA28;
|
|
L_0298DA18: ; // 0x298da18
|
|
/* 0298DA18 */ cpu->r[3] = 0x00000008u;
|
|
/* 0298DA1C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298DA20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DA24 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DA24 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298DA24 */ if (_t19) goto L_0298DA38; else goto L_0298DA28;
|
|
L_0298DA28: ; // 0x298da28
|
|
/* 0298DA28 */ cpu->r[12] = 0x101F0000u;
|
|
/* 0298DA2C */ _t20 = cpu->r[3] + 0x00000004u;
|
|
/* 0298DA2C */ rbrew_write32(cpu->mem, _t20, cpu->r[30]);
|
|
/* 0298DA30 */ _t21 = cpu->r[12] + 0x000066E8u;
|
|
/* 0298DA30 */ cpu->r[12] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298DA34 */ _t22 = cpu->r[3] + 0x00000000u;
|
|
/* 0298DA34 */ rbrew_write32(cpu->mem, _t22, cpu->r[12]);
|
|
L_0298DA38: ; // 0x298da38
|
|
/* 0298DA38 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DA38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298DA3C */ _t24 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DA3C */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298DA40 */ cpu->lr = cpu->r[0];
|
|
/* 0298DA44 */ _t25 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DA44 */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298DA48 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DA4C */ return;
|
|
}
|
|
|
|
// fn_0298DA50 @ 0x298da50
|
|
void Gambit_fn_0298DA50(CPUState* cpu) {
|
|
uint32_t _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_0298DA50: ; // 0x298da50
|
|
/* 0298DA50 */ cpu->r[0] = cpu->lr;
|
|
/* 0298DA54 */ _t0 = cpu->r[1] + 0xFFFFFF50u;
|
|
/* 0298DA54 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DA54 */ cpu->r[1] = _t0;
|
|
/* 0298DA58 */ _t1 = cpu->r[1] + 0x000000ACu;
|
|
/* 0298DA58 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298DA5C */ cpu->r[31] = cpu->r[5];
|
|
/* 0298DA60 */ _t2 = cpu->r[1] + 0x000000A8u;
|
|
/* 0298DA60 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298DA64 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298DA68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000005u);
|
|
/* 0298DA6C */ _t3 = cpu->r[1] + 0x000000A4u;
|
|
/* 0298DA6C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298DA70 */ _t4 = cpu->r[1] + 0x000000B4u;
|
|
/* 0298DA70 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298DA74 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298DA78 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DA78 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298DA78 */ if (_t6) goto L_0298DA7C; else goto L_0298DCA0;
|
|
L_0298DA7C: ; // 0x298da7c
|
|
/* 0298DA7C */ _t7 = cpu->r[29] + 0x00000158u;
|
|
/* 0298DA7C */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298DA80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298DA84 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DA84 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298DA84 */ if (_t9) goto L_0298DC54; else goto L_0298DA88;
|
|
L_0298DA88: ; // 0x298da88
|
|
/* 0298DA88 */ _t10 = cpu->r[10] + 0x00000000u;
|
|
/* 0298DA88 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298DA8C */ cpu->r[3] = cpu->r[1] + 0x00000050u;
|
|
/* 0298DA90 */ Gambit_fn_02C6DB08(cpu);
|
|
/* 0298DA94 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000002u);
|
|
/* 0298DA98 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DA98 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298DA98 */ if (_t12) goto L_0298DA9C; else goto L_0298DAA8;
|
|
L_0298DA9C: ; // 0x298da9c
|
|
/* 0298DA9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000001u);
|
|
/* 0298DAA0 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DAA0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298DAA0 */ if (_t14) goto L_0298DAD0; else goto L_0298DAA4;
|
|
L_0298DAA4: ; // 0x298daa4
|
|
/* 0298DAA4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DAA4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 0298DAA4 */ if (_t16) goto L_0298DAF8; else goto L_0298DAA8;
|
|
L_0298DAA8: ; // 0x298daa8
|
|
/* 0298DAA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000003u);
|
|
/* 0298DAAC */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DAAC */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298DAAC */ if (_t18) goto L_0298DB48; else goto L_0298DAB0;
|
|
L_0298DAB0: ; // 0x298dab0
|
|
/* 0298DAB0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DAB0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298DAB0 */ if (_t20) goto L_0298DB9C; else goto L_0298DAB4;
|
|
L_0298DAB4: ; // 0x298dab4
|
|
/* 0298DAB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000004u);
|
|
/* 0298DAB8 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DAB8 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298DAB8 */ if (_t22) goto L_0298DC00; else goto L_0298DABC;
|
|
L_0298DABC: ; // 0x298dabc
|
|
/* 0298DABC */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DAC0 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DAC4 */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DAC8 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DACC */ goto L_0298DCA0;
|
|
L_0298DAD0: ; // 0x298dad0
|
|
/* 0298DAD0 */ _t23 = cpu->r[1] + 0x00000058u;
|
|
/* 0298DAD0 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 0298DAD4 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DAD8 */ _t24 = cpu->r[1] + 0x00000054u;
|
|
/* 0298DAD8 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0298DADC */ _t25 = cpu->r[1] + 0x00000050u;
|
|
/* 0298DADC */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 0298DAE0 */ Gambit_fn_02C69840(cpu);
|
|
/* 0298DAE4 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DAE8 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DAEC */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DAF0 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DAF4 */ goto L_0298DCA0;
|
|
L_0298DAF8: ; // 0x298daf8
|
|
/* 0298DAF8 */ _t26 = cpu->r[1] + 0x00000068u;
|
|
/* 0298DAF8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 0298DAFC */ _t27 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0298DAFC */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 0298DB00 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DB00 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 0298DB04 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DB04 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[10]);
|
|
/* 0298DB08 */ _t30 = cpu->r[1] + 0x00000060u;
|
|
/* 0298DB08 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 0298DB0C */ _t31 = cpu->r[1] + 0x0000005Cu;
|
|
/* 0298DB0C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 0298DB10 */ _t32 = cpu->r[1] + 0x00000018u;
|
|
/* 0298DB10 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[0]);
|
|
/* 0298DB14 */ _t33 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DB14 */ rbrew_write_f32(cpu->mem, _t33, cpu->f[9]);
|
|
/* 0298DB18 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DB1C */ _t34 = cpu->r[1] + 0x00000070u;
|
|
/* 0298DB1C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 0298DB20 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 0298DB24 */ _t35 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298DB24 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[9]);
|
|
/* 0298DB28 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DB2C */ _t36 = cpu->r[1] + 0x00000010u;
|
|
/* 0298DB2C */ rbrew_write_f32(cpu->mem, _t36, cpu->f[0]);
|
|
/* 0298DB30 */ Gambit_fn_023D860C(cpu);
|
|
/* 0298DB34 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DB38 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DB3C */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DB40 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DB44 */ goto L_0298DCA0;
|
|
L_0298DB48: ; // 0x298db48
|
|
/* 0298DB48 */ _t37 = cpu->r[1] + 0x00000074u;
|
|
/* 0298DB48 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 0298DB4C */ _t38 = cpu->r[1] + 0x00000078u;
|
|
/* 0298DB4C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 0298DB50 */ _t39 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DB50 */ rbrew_write_f32(cpu->mem, _t39, cpu->f[12]);
|
|
/* 0298DB54 */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DB54 */ rbrew_write_f32(cpu->mem, _t40, cpu->f[13]);
|
|
/* 0298DB58 */ _t41 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298DB58 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 0298DB5C */ _t42 = cpu->r[1] + 0x00000080u;
|
|
/* 0298DB5C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 0298DB60 */ _t43 = cpu->r[1] + 0x00000010u;
|
|
/* 0298DB60 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[10]);
|
|
/* 0298DB64 */ _t44 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DB64 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[11]);
|
|
/* 0298DB68 */ _t45 = cpu->r[1] + 0x00000088u;
|
|
/* 0298DB68 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 0298DB6C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 0298DB70 */ _t46 = cpu->r[1] + 0x00000084u;
|
|
/* 0298DB70 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 0298DB74 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DB78 */ _t47 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298DB78 */ rbrew_write_f32(cpu->mem, _t47, cpu->f[0]);
|
|
/* 0298DB7C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DB80 */ _t48 = cpu->r[1] + 0x00000018u;
|
|
/* 0298DB80 */ rbrew_write_f32(cpu->mem, _t48, cpu->f[13]);
|
|
/* 0298DB84 */ Gambit_fn_023D860C(cpu);
|
|
/* 0298DB88 */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DB8C */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DB90 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DB94 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DB98 */ goto L_0298DCA0;
|
|
L_0298DB9C: ; // 0x298db9c
|
|
/* 0298DB9C */ _t49 = cpu->r[1] + 0x00000080u;
|
|
/* 0298DB9C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 0298DBA0 */ _t50 = cpu->r[1] + 0x00000074u;
|
|
/* 0298DBA0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 0298DBA4 */ cpu->f[13] = -cpu->f[12];
|
|
/* 0298DBA8 */ _t51 = cpu->r[1] + 0x00000084u;
|
|
/* 0298DBA8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 0298DBAC */ cpu->f[0] = -cpu->f[0];
|
|
/* 0298DBB0 */ _t52 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298DBB0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 0298DBB4 */ _t53 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DBB4 */ rbrew_write_f32(cpu->mem, _t53, cpu->f[13]);
|
|
/* 0298DBB8 */ _t54 = cpu->r[1] + 0x00000018u;
|
|
/* 0298DBB8 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[11]);
|
|
/* 0298DBBC */ _t55 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DBBC */ rbrew_write_f32(cpu->mem, _t55, cpu->f[0]);
|
|
/* 0298DBC0 */ cpu->f[13] = -cpu->f[10];
|
|
/* 0298DBC4 */ _t56 = cpu->r[1] + 0x00000078u;
|
|
/* 0298DBC4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 0298DBC8 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 0298DBCC */ _t57 = cpu->r[1] + 0x00000088u;
|
|
/* 0298DBCC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 0298DBD0 */ cpu->f[9] = -cpu->f[9];
|
|
/* 0298DBD4 */ _t58 = cpu->r[1] + 0x00000010u;
|
|
/* 0298DBD4 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[13]);
|
|
/* 0298DBD8 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DBDC */ _t59 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298DBDC */ rbrew_write_f32(cpu->mem, _t59, cpu->f[0]);
|
|
/* 0298DBE0 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DBE4 */ _t60 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DBE4 */ rbrew_write_f32(cpu->mem, _t60, cpu->f[9]);
|
|
/* 0298DBE8 */ Gambit_fn_023D860C(cpu);
|
|
/* 0298DBEC */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DBF0 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DBF4 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DBF8 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DBFC */ goto L_0298DCA0;
|
|
L_0298DC00: ; // 0x298dc00
|
|
/* 0298DC00 */ _t61 = cpu->r[1] + 0x00000090u;
|
|
/* 0298DC00 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 0298DC04 */ _t62 = cpu->r[1] + 0x0000009Cu;
|
|
/* 0298DC04 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 0298DC08 */ _t63 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DC08 */ rbrew_write_f32(cpu->mem, _t63, cpu->f[10]);
|
|
/* 0298DC0C */ _t64 = cpu->r[1] + 0x00000018u;
|
|
/* 0298DC0C */ rbrew_write_f32(cpu->mem, _t64, cpu->f[9]);
|
|
/* 0298DC10 */ _t65 = cpu->r[1] + 0x00000098u;
|
|
/* 0298DC10 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 0298DC14 */ _t66 = cpu->r[1] + 0x00000094u;
|
|
/* 0298DC14 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 0298DC18 */ _t67 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DC18 */ rbrew_write_f32(cpu->mem, _t67, cpu->f[13]);
|
|
/* 0298DC1C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DC20 */ _t68 = cpu->r[1] + 0x00000010u;
|
|
/* 0298DC20 */ rbrew_write_f32(cpu->mem, _t68, cpu->f[11]);
|
|
/* 0298DC24 */ _t69 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298DC24 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 0298DC28 */ _t70 = cpu->r[1] + 0x000000A0u;
|
|
/* 0298DC28 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 0298DC2C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 0298DC30 */ _t71 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DC30 */ rbrew_write_f32(cpu->mem, _t71, cpu->f[12]);
|
|
/* 0298DC34 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DC38 */ _t72 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298DC38 */ rbrew_write_f32(cpu->mem, _t72, cpu->f[0]);
|
|
/* 0298DC3C */ Gambit_fn_023D860C(cpu);
|
|
/* 0298DC40 */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DC44 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DC48 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DC4C */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DC50 */ goto L_0298DCA0;
|
|
L_0298DC54: ; // 0x298dc54
|
|
/* 0298DC54 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298DC58 */ cpu->r[9] = cpu->r[9] + 0xFFFFF530u;
|
|
/* 0298DC5C */ cpu->r[11] = 0x10150000u;
|
|
/* 0298DC60 */ /* nop */
|
|
/* 0298DC64 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298DC68 */ cpu->r[11] = cpu->r[11] + 0xFFFFF528u;
|
|
/* 0298DC6C */ /* nop */
|
|
/* 0298DC70 */ /* nop */
|
|
/* 0298DC74 */ cpu->r[12] = cpu->r[12] + 0xFFFFF538u;
|
|
/* 0298DC78 */ /* nop */
|
|
/* 0298DC7C */ /* nop */
|
|
/* 0298DC80 */ /* nop */
|
|
/* 0298DC84 */ /* nop */
|
|
/* 0298DC88 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DC8C */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DC90 */ /* nop */
|
|
/* 0298DC94 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DC98 */ /* nop */
|
|
/* 0298DC9C */ Gambit_fn_02C69544(cpu);
|
|
L_0298DCA0: ; // 0x298dca0
|
|
/* 0298DCA0 */ _t73 = cpu->r[1] + 0x000000A4u;
|
|
/* 0298DCA0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t73);
|
|
/* 0298DCA4 */ _t74 = cpu->r[1] + 0x000000B4u;
|
|
/* 0298DCA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 0298DCA8 */ _t75 = cpu->r[1] + 0x000000A8u;
|
|
/* 0298DCA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t75);
|
|
/* 0298DCAC */ cpu->lr = cpu->r[0];
|
|
/* 0298DCB0 */ _t76 = cpu->r[1] + 0x000000ACu;
|
|
/* 0298DCB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t76);
|
|
/* 0298DCB4 */ cpu->r[1] = cpu->r[1] + 0x000000B0u;
|
|
/* 0298DCB8 */ return;
|
|
}
|
|
|
|
// fn_0298DA54 @ 0x298da54
|
|
void Gambit_fn_0298DA54(CPUState* cpu) {
|
|
uint32_t _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_0298DA54: ; // 0x298da54
|
|
/* 0298DA54 */ _t0 = cpu->r[1] + 0xFFFFFF50u;
|
|
/* 0298DA54 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DA54 */ cpu->r[1] = _t0;
|
|
/* 0298DA58 */ _t1 = cpu->r[1] + 0x000000ACu;
|
|
/* 0298DA58 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298DA5C */ cpu->r[31] = cpu->r[5];
|
|
/* 0298DA60 */ _t2 = cpu->r[1] + 0x000000A8u;
|
|
/* 0298DA60 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298DA64 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298DA68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000005u);
|
|
/* 0298DA6C */ _t3 = cpu->r[1] + 0x000000A4u;
|
|
/* 0298DA6C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298DA70 */ _t4 = cpu->r[1] + 0x000000B4u;
|
|
/* 0298DA70 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298DA74 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298DA78 */ _t5 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DA78 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298DA78 */ if (_t6) goto L_0298DA7C; else goto L_0298DCA0;
|
|
L_0298DA7C: ; // 0x298da7c
|
|
/* 0298DA7C */ _t7 = cpu->r[29] + 0x00000158u;
|
|
/* 0298DA7C */ cpu->r[10] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298DA80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298DA84 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DA84 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298DA84 */ if (_t9) goto L_0298DC54; else goto L_0298DA88;
|
|
L_0298DA88: ; // 0x298da88
|
|
/* 0298DA88 */ _t10 = cpu->r[10] + 0x00000000u;
|
|
/* 0298DA88 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298DA8C */ cpu->r[3] = cpu->r[1] + 0x00000050u;
|
|
/* 0298DA90 */ Gambit_fn_02C6DB08(cpu);
|
|
/* 0298DA94 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000002u);
|
|
/* 0298DA98 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DA98 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298DA98 */ if (_t12) goto L_0298DA9C; else goto L_0298DAA8;
|
|
L_0298DA9C: ; // 0x298da9c
|
|
/* 0298DA9C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000001u);
|
|
/* 0298DAA0 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DAA0 */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298DAA0 */ if (_t14) goto L_0298DAD0; else goto L_0298DAA4;
|
|
L_0298DAA4: ; // 0x298daa4
|
|
/* 0298DAA4 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DAA4 */ _t16 = _t15 & 0x00000001u;
|
|
/* 0298DAA4 */ if (_t16) goto L_0298DAF8; else goto L_0298DAA8;
|
|
L_0298DAA8: ; // 0x298daa8
|
|
/* 0298DAA8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000003u);
|
|
/* 0298DAAC */ _t17 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DAAC */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298DAAC */ if (_t18) goto L_0298DB48; else goto L_0298DAB0;
|
|
L_0298DAB0: ; // 0x298dab0
|
|
/* 0298DAB0 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DAB0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298DAB0 */ if (_t20) goto L_0298DB9C; else goto L_0298DAB4;
|
|
L_0298DAB4: ; // 0x298dab4
|
|
/* 0298DAB4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], 0x00000004u);
|
|
/* 0298DAB8 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DAB8 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298DAB8 */ if (_t22) goto L_0298DC00; else goto L_0298DABC;
|
|
L_0298DABC: ; // 0x298dabc
|
|
/* 0298DABC */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DAC0 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DAC4 */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DAC8 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DACC */ goto L_0298DCA0;
|
|
L_0298DAD0: ; // 0x298dad0
|
|
/* 0298DAD0 */ _t23 = cpu->r[1] + 0x00000058u;
|
|
/* 0298DAD0 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t23);
|
|
/* 0298DAD4 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DAD8 */ _t24 = cpu->r[1] + 0x00000054u;
|
|
/* 0298DAD8 */ cpu->f[2] = rbrew_read_f32(cpu->mem, _t24);
|
|
/* 0298DADC */ _t25 = cpu->r[1] + 0x00000050u;
|
|
/* 0298DADC */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t25);
|
|
/* 0298DAE0 */ Gambit_fn_02C69840(cpu);
|
|
/* 0298DAE4 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DAE8 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DAEC */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DAF0 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DAF4 */ goto L_0298DCA0;
|
|
L_0298DAF8: ; // 0x298daf8
|
|
/* 0298DAF8 */ _t26 = cpu->r[1] + 0x00000068u;
|
|
/* 0298DAF8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t26);
|
|
/* 0298DAFC */ _t27 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0298DAFC */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 0298DB00 */ _t28 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DB00 */ rbrew_write_f32(cpu->mem, _t28, cpu->f[0]);
|
|
/* 0298DB04 */ _t29 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DB04 */ rbrew_write_f32(cpu->mem, _t29, cpu->f[10]);
|
|
/* 0298DB08 */ _t30 = cpu->r[1] + 0x00000060u;
|
|
/* 0298DB08 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 0298DB0C */ _t31 = cpu->r[1] + 0x0000005Cu;
|
|
/* 0298DB0C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t31);
|
|
/* 0298DB10 */ _t32 = cpu->r[1] + 0x00000018u;
|
|
/* 0298DB10 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[0]);
|
|
/* 0298DB14 */ _t33 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DB14 */ rbrew_write_f32(cpu->mem, _t33, cpu->f[9]);
|
|
/* 0298DB18 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DB1C */ _t34 = cpu->r[1] + 0x00000070u;
|
|
/* 0298DB1C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 0298DB20 */ cpu->r[4] = cpu->r[1] + 0x00000014u;
|
|
/* 0298DB24 */ _t35 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298DB24 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[9]);
|
|
/* 0298DB28 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DB2C */ _t36 = cpu->r[1] + 0x00000010u;
|
|
/* 0298DB2C */ rbrew_write_f32(cpu->mem, _t36, cpu->f[0]);
|
|
/* 0298DB30 */ Gambit_fn_023D860C(cpu);
|
|
/* 0298DB34 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DB38 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DB3C */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DB40 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DB44 */ goto L_0298DCA0;
|
|
L_0298DB48: ; // 0x298db48
|
|
/* 0298DB48 */ _t37 = cpu->r[1] + 0x00000074u;
|
|
/* 0298DB48 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 0298DB4C */ _t38 = cpu->r[1] + 0x00000078u;
|
|
/* 0298DB4C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 0298DB50 */ _t39 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DB50 */ rbrew_write_f32(cpu->mem, _t39, cpu->f[12]);
|
|
/* 0298DB54 */ _t40 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DB54 */ rbrew_write_f32(cpu->mem, _t40, cpu->f[13]);
|
|
/* 0298DB58 */ _t41 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298DB58 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 0298DB5C */ _t42 = cpu->r[1] + 0x00000080u;
|
|
/* 0298DB5C */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 0298DB60 */ _t43 = cpu->r[1] + 0x00000010u;
|
|
/* 0298DB60 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[10]);
|
|
/* 0298DB64 */ _t44 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DB64 */ rbrew_write_f32(cpu->mem, _t44, cpu->f[11]);
|
|
/* 0298DB68 */ _t45 = cpu->r[1] + 0x00000088u;
|
|
/* 0298DB68 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t45);
|
|
/* 0298DB6C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 0298DB70 */ _t46 = cpu->r[1] + 0x00000084u;
|
|
/* 0298DB70 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 0298DB74 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DB78 */ _t47 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298DB78 */ rbrew_write_f32(cpu->mem, _t47, cpu->f[0]);
|
|
/* 0298DB7C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DB80 */ _t48 = cpu->r[1] + 0x00000018u;
|
|
/* 0298DB80 */ rbrew_write_f32(cpu->mem, _t48, cpu->f[13]);
|
|
/* 0298DB84 */ Gambit_fn_023D860C(cpu);
|
|
/* 0298DB88 */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DB8C */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DB90 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DB94 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DB98 */ goto L_0298DCA0;
|
|
L_0298DB9C: ; // 0x298db9c
|
|
/* 0298DB9C */ _t49 = cpu->r[1] + 0x00000080u;
|
|
/* 0298DB9C */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 0298DBA0 */ _t50 = cpu->r[1] + 0x00000074u;
|
|
/* 0298DBA0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 0298DBA4 */ cpu->f[13] = -cpu->f[12];
|
|
/* 0298DBA8 */ _t51 = cpu->r[1] + 0x00000084u;
|
|
/* 0298DBA8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 0298DBAC */ cpu->f[0] = -cpu->f[0];
|
|
/* 0298DBB0 */ _t52 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0298DBB0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 0298DBB4 */ _t53 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DBB4 */ rbrew_write_f32(cpu->mem, _t53, cpu->f[13]);
|
|
/* 0298DBB8 */ _t54 = cpu->r[1] + 0x00000018u;
|
|
/* 0298DBB8 */ rbrew_write_f32(cpu->mem, _t54, cpu->f[11]);
|
|
/* 0298DBBC */ _t55 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DBBC */ rbrew_write_f32(cpu->mem, _t55, cpu->f[0]);
|
|
/* 0298DBC0 */ cpu->f[13] = -cpu->f[10];
|
|
/* 0298DBC4 */ _t56 = cpu->r[1] + 0x00000078u;
|
|
/* 0298DBC4 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t56);
|
|
/* 0298DBC8 */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 0298DBCC */ _t57 = cpu->r[1] + 0x00000088u;
|
|
/* 0298DBCC */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 0298DBD0 */ cpu->f[9] = -cpu->f[9];
|
|
/* 0298DBD4 */ _t58 = cpu->r[1] + 0x00000010u;
|
|
/* 0298DBD4 */ rbrew_write_f32(cpu->mem, _t58, cpu->f[13]);
|
|
/* 0298DBD8 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DBDC */ _t59 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298DBDC */ rbrew_write_f32(cpu->mem, _t59, cpu->f[0]);
|
|
/* 0298DBE0 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DBE4 */ _t60 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DBE4 */ rbrew_write_f32(cpu->mem, _t60, cpu->f[9]);
|
|
/* 0298DBE8 */ Gambit_fn_023D860C(cpu);
|
|
/* 0298DBEC */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DBF0 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DBF4 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DBF8 */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DBFC */ goto L_0298DCA0;
|
|
L_0298DC00: ; // 0x298dc00
|
|
/* 0298DC00 */ _t61 = cpu->r[1] + 0x00000090u;
|
|
/* 0298DC00 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t61);
|
|
/* 0298DC04 */ _t62 = cpu->r[1] + 0x0000009Cu;
|
|
/* 0298DC04 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t62);
|
|
/* 0298DC08 */ _t63 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DC08 */ rbrew_write_f32(cpu->mem, _t63, cpu->f[10]);
|
|
/* 0298DC0C */ _t64 = cpu->r[1] + 0x00000018u;
|
|
/* 0298DC0C */ rbrew_write_f32(cpu->mem, _t64, cpu->f[9]);
|
|
/* 0298DC10 */ _t65 = cpu->r[1] + 0x00000098u;
|
|
/* 0298DC10 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 0298DC14 */ _t66 = cpu->r[1] + 0x00000094u;
|
|
/* 0298DC14 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t66);
|
|
/* 0298DC18 */ _t67 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DC18 */ rbrew_write_f32(cpu->mem, _t67, cpu->f[13]);
|
|
/* 0298DC1C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DC20 */ _t68 = cpu->r[1] + 0x00000010u;
|
|
/* 0298DC20 */ rbrew_write_f32(cpu->mem, _t68, cpu->f[11]);
|
|
/* 0298DC24 */ _t69 = cpu->r[1] + 0x0000008Cu;
|
|
/* 0298DC24 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t69);
|
|
/* 0298DC28 */ _t70 = cpu->r[1] + 0x000000A0u;
|
|
/* 0298DC28 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 0298DC2C */ cpu->r[5] = cpu->r[1] + 0x00000014u;
|
|
/* 0298DC30 */ _t71 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DC30 */ rbrew_write_f32(cpu->mem, _t71, cpu->f[12]);
|
|
/* 0298DC34 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DC38 */ _t72 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298DC38 */ rbrew_write_f32(cpu->mem, _t72, cpu->f[0]);
|
|
/* 0298DC3C */ Gambit_fn_023D860C(cpu);
|
|
/* 0298DC40 */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DC44 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DC48 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DC4C */ Gambit_fn_02C69544(cpu);
|
|
/* 0298DC50 */ goto L_0298DCA0;
|
|
L_0298DC54: ; // 0x298dc54
|
|
/* 0298DC54 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298DC58 */ cpu->r[9] = cpu->r[9] + 0xFFFFF530u;
|
|
/* 0298DC5C */ cpu->r[11] = 0x10150000u;
|
|
/* 0298DC60 */ /* nop */
|
|
/* 0298DC64 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298DC68 */ cpu->r[11] = cpu->r[11] + 0xFFFFF528u;
|
|
/* 0298DC6C */ /* nop */
|
|
/* 0298DC70 */ /* nop */
|
|
/* 0298DC74 */ cpu->r[12] = cpu->r[12] + 0xFFFFF538u;
|
|
/* 0298DC78 */ /* nop */
|
|
/* 0298DC7C */ /* nop */
|
|
/* 0298DC80 */ /* nop */
|
|
/* 0298DC84 */ /* nop */
|
|
/* 0298DC88 */ cpu->r[5] = cpu->r[30];
|
|
/* 0298DC8C */ cpu->r[3] = cpu->r[29] + 0x00000104u;
|
|
/* 0298DC90 */ /* nop */
|
|
/* 0298DC94 */ cpu->r[4] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DC98 */ /* nop */
|
|
/* 0298DC9C */ Gambit_fn_02C69544(cpu);
|
|
L_0298DCA0: ; // 0x298dca0
|
|
/* 0298DCA0 */ _t73 = cpu->r[1] + 0x000000A4u;
|
|
/* 0298DCA0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t73);
|
|
/* 0298DCA4 */ _t74 = cpu->r[1] + 0x000000B4u;
|
|
/* 0298DCA4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 0298DCA8 */ _t75 = cpu->r[1] + 0x000000A8u;
|
|
/* 0298DCA8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t75);
|
|
/* 0298DCAC */ cpu->lr = cpu->r[0];
|
|
/* 0298DCB0 */ _t76 = cpu->r[1] + 0x000000ACu;
|
|
/* 0298DCB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t76);
|
|
/* 0298DCB4 */ cpu->r[1] = cpu->r[1] + 0x000000B0u;
|
|
/* 0298DCB8 */ return;
|
|
}
|
|
|
|
// fn_0298DCBC @ 0x298dcbc
|
|
void Gambit_fn_0298DCBC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298DCBC: ; // 0x298dcbc
|
|
/* 0298DCBC */ cpu->r[0] = cpu->lr;
|
|
/* 0298DCC0 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 0298DCC0 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 0298DCC4 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 0298DCC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 0298DCC4 */ cpu->r[1] = _t1;
|
|
/* 0298DCC8 */ _t2 = cpu->r[3] + 0x00000000u;
|
|
/* 0298DCC8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t2);
|
|
/* 0298DCCC */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298DCCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298DCD0 */ cpu->r[10] = 0x00000000u;
|
|
/* 0298DCD4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DCD4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298DCD4 */ if (_t4) goto L_0298DCF4; else goto L_0298DCD8;
|
|
L_0298DCD8: ; // 0x298dcd8
|
|
/* 0298DCD8 */ _t5 = cpu->r[3] + 0x0000000Au;
|
|
/* 0298DCD8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t5);
|
|
/* 0298DCDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298DCE0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DCE0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298DCE0 */ if (_t7) goto L_0298DCF4; else goto L_0298DCE4;
|
|
L_0298DCE4: ; // 0x298dce4
|
|
/* 0298DCE4 */ Gambit_fn_0298D6B8(cpu);
|
|
/* 0298DCE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DCEC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DCEC */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298DCEC */ if (_t9) goto L_0298DCF4; else goto L_0298DCF0;
|
|
L_0298DCF0: ; // 0x298dcf0
|
|
/* 0298DCF0 */ cpu->r[10] = 0x00000001u;
|
|
L_0298DCF4: ; // 0x298dcf4
|
|
/* 0298DCF4 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DCF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298DCF8 */ cpu->lr = cpu->r[0];
|
|
/* 0298DCFC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DD00 */ cpu->r[3] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298DD04 */ return;
|
|
}
|
|
|
|
// fn_0298DCC4 @ 0x298dcc4
|
|
void Gambit_fn_0298DCC4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_0298DCC4: ; // 0x298dcc4
|
|
/* 0298DCC4 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 0298DCC4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DCC4 */ cpu->r[1] = _t0;
|
|
/* 0298DCC8 */ _t1 = cpu->r[3] + 0x00000000u;
|
|
/* 0298DCC8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t1);
|
|
/* 0298DCCC */ cpu->r[0] = rbrew_rlwinm(cpu->r[12], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298DCCC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298DCD0 */ cpu->r[10] = 0x00000000u;
|
|
/* 0298DCD4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DCD4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 0298DCD4 */ if (_t3) goto L_0298DCF4; else goto L_0298DCD8;
|
|
L_0298DCD8: ; // 0x298dcd8
|
|
/* 0298DCD8 */ _t4 = cpu->r[3] + 0x0000000Au;
|
|
/* 0298DCD8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t4);
|
|
/* 0298DCDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298DCE0 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DCE0 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298DCE0 */ if (_t6) goto L_0298DCF4; else goto L_0298DCE4;
|
|
L_0298DCE4: ; // 0x298dce4
|
|
/* 0298DCE4 */ Gambit_fn_0298D6B8(cpu);
|
|
/* 0298DCE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DCEC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DCEC */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298DCEC */ if (_t8) goto L_0298DCF4; else goto L_0298DCF0;
|
|
L_0298DCF0: ; // 0x298dcf0
|
|
/* 0298DCF0 */ cpu->r[10] = 0x00000001u;
|
|
L_0298DCF4: ; // 0x298dcf4
|
|
/* 0298DCF4 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DCF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298DCF8 */ cpu->lr = cpu->r[0];
|
|
/* 0298DCFC */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DD00 */ cpu->r[3] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298DD04 */ return;
|
|
}
|
|
|
|
// fn_0298DD08 @ 0x298dd08
|
|
void Gambit_fn_0298DD08(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298DD08: ; // 0x298dd08
|
|
/* 0298DD08 */ cpu->r[0] = cpu->lr;
|
|
/* 0298DD0C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298DD0C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DD0C */ cpu->r[1] = _t0;
|
|
/* 0298DD10 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DD10 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298DD14 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298DD18 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DD18 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298DD1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DD1C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298DD20 */ Gambit_fn_02992AAC(cpu);
|
|
/* 0298DD24 */ _t4 = cpu->r[31] + 0x00000158u;
|
|
/* 0298DD24 */ cpu->r[30] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298DD28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298DD2C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DD2C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298DD2C */ if (_t6) goto L_0298DD50; else goto L_0298DD30;
|
|
L_0298DD30: ; // 0x298dd30
|
|
/* 0298DD30 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298DD34 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298DD38 */ Gambit_fn_0298D614(cpu);
|
|
/* 0298DD3C */ cpu->r[5] = 0x00000000u;
|
|
/* 0298DD40 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298DD44 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298DD48 */ _t7 = cpu->r[31] + 0x00000158u;
|
|
/* 0298DD48 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 0298DD4C */ Gambit_fn_0298D5D0(cpu);
|
|
L_0298DD50: ; // 0x298dd50
|
|
/* 0298DD50 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DD50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298DD54 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DD54 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298DD58 */ cpu->lr = cpu->r[0];
|
|
/* 0298DD5C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DD5C */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298DD60 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DD64 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298DD68 */ return;
|
|
}
|
|
|
|
// fn_0298DD0C @ 0x298dd0c
|
|
void Gambit_fn_0298DD0C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298DD0C: ; // 0x298dd0c
|
|
/* 0298DD0C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298DD0C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DD0C */ cpu->r[1] = _t0;
|
|
/* 0298DD10 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DD10 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298DD14 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298DD18 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DD18 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298DD1C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DD1C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298DD20 */ Gambit_fn_02992AAC(cpu);
|
|
/* 0298DD24 */ _t4 = cpu->r[31] + 0x00000158u;
|
|
/* 0298DD24 */ cpu->r[30] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298DD28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298DD2C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DD2C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298DD2C */ if (_t6) goto L_0298DD50; else goto L_0298DD30;
|
|
L_0298DD30: ; // 0x298dd30
|
|
/* 0298DD30 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298DD34 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298DD38 */ Gambit_fn_0298D614(cpu);
|
|
/* 0298DD3C */ cpu->r[5] = 0x00000000u;
|
|
/* 0298DD40 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298DD44 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298DD48 */ _t7 = cpu->r[31] + 0x00000158u;
|
|
/* 0298DD48 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 0298DD4C */ Gambit_fn_0298D5D0(cpu);
|
|
L_0298DD50: ; // 0x298dd50
|
|
/* 0298DD50 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DD50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298DD54 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 0298DD54 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298DD58 */ cpu->lr = cpu->r[0];
|
|
/* 0298DD5C */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DD5C */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298DD60 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DD64 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298DD68 */ return;
|
|
}
|
|
|
|
// fn_0298DD6C @ 0x298dd6c
|
|
void Gambit_fn_0298DD6C(CPUState* cpu) {
|
|
uint32_t _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_0298DD6C: ; // 0x298dd6c
|
|
/* 0298DD6C */ goto L_0298EAB8;
|
|
L_0298EAB8: ; // 0x298eab8
|
|
/* 0298EAB8 */ cpu->r[0] = cpu->lr;
|
|
/* 0298EABC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298EABC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EABC */ cpu->r[1] = _t0;
|
|
/* 0298EAC0 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EAC0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298EAC4 */ cpu->r[30] = cpu->r[5];
|
|
/* 0298EAC8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EAC8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298EACC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EACC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298EAD0 */ cpu->r[5] = 0x0000008Cu;
|
|
/* 0298EAD4 */ cpu->r[6] = cpu->r[30];
|
|
/* 0298EAD8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EAD8 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 0298EADC */ cpu->r[28] = cpu->r[3];
|
|
/* 0298EAE0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EAE0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298EAE4 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298EAE8 */ Gambit_fn_029928D4(cpu);
|
|
/* 0298EAEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EAF0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EAF0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298EAF0 */ if (_t7) goto L_0298EB58; else goto L_0298EAF4;
|
|
L_0298EAF4: ; // 0x298eaf4
|
|
/* 0298EAF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EAF8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EAF8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298EAF8 */ if (_t9) goto L_0298EB00; else goto L_0298EAFC;
|
|
L_0298EAFC: ; // 0x298eafc
|
|
/* 0298EAFC */ Gambit_fn_0298CF38(cpu);
|
|
L_0298EB00: ; // 0x298eb00
|
|
/* 0298EB00 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298EB00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298EB04 */ _t11 = cpu->r[12] + 0x00000014u;
|
|
/* 0298EB04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298EB08 */ cpu->ctr = cpu->r[0];
|
|
/* 0298EB0C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298EB10 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298EB14 */ cpu->r[6] = cpu->r[30];
|
|
/* 0298EB18 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298EB1C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298EB20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EB24 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EB24 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298EB24 */ if (_t13) goto L_0298EB58; else goto L_0298EB28;
|
|
L_0298EB28: ; // 0x298eb28
|
|
/* 0298EB28 */ _t14 = cpu->r[28] + 0x000000CCu;
|
|
/* 0298EB28 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298EB2C */ cpu->r[10] = rbrew_rlwinm(cpu->r[29], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298EB30 */ _t15 = cpu->r[10] + cpu->r[11];
|
|
/* 0298EB30 */ rbrew_write32(cpu->mem, _t15, cpu->r[31]);
|
|
/* 0298EB34 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EB34 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298EB38 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EB38 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298EB3C */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EB3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298EB40 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298EB44 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EB44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298EB48 */ cpu->lr = cpu->r[0];
|
|
/* 0298EB4C */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EB4C */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298EB50 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298EB54 */ return;
|
|
L_0298EB58: ; // 0x298eb58
|
|
/* 0298EB58 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EB58 */ cpu->r[28] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298EB5C */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EB5C */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298EB60 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EB60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298EB64 */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EB64 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298EB68 */ cpu->lr = cpu->r[0];
|
|
/* 0298EB6C */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EB6C */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298EB70 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298EB74 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298EB78 */ return;
|
|
}
|
|
|
|
// fn_0298DD70 @ 0x298dd70
|
|
void Gambit_fn_0298DD70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_0298DD70: ; // 0x298dd70
|
|
/* 0298DD70 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 0298DD70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DD70 */ cpu->r[1] = _t0;
|
|
/* 0298DD74 */ /* nop */
|
|
/* 0298DD78 */ cpu->r[0] = cpu->lr;
|
|
/* 0298DD7C */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 0298DD7C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298DD80 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298DD84 */ _t2 = cpu->r[30] + 0x000000A8u;
|
|
/* 0298DD84 */ cpu->r[9] = rbrew_read16(cpu->mem, _t2);
|
|
/* 0298DD88 */ cpu->r[26] = 0x00000000u;
|
|
/* 0298DD8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[9]);
|
|
/* 0298DD90 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298DD94 */ _t3 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DD94 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298DD94 */ if (_t4) goto L_0298DD98; else goto L_0298DE00;
|
|
L_0298DD98: ; // 0x298dd98
|
|
/* 0298DD98 */ cpu->r[29] = cpu->r[30] + 0x00000104u;
|
|
/* 0298DD9C */ cpu->r[28] = 0x00000000u;
|
|
L_0298DDA0: ; // 0x298dda0
|
|
/* 0298DDA0 */ _t5 = cpu->r[30] + 0x000000B0u;
|
|
/* 0298DDA0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298DDA4 */ cpu->r[12] = cpu->r[10] + cpu->r[28];
|
|
/* 0298DDA8 */ _t6 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0298DDA8 */ cpu->r[27] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298DDAC */ cpu->r[4] = cpu->r[31];
|
|
/* 0298DDB0 */ cpu->r[3] = cpu->r[27];
|
|
/* 0298DDB4 */ Gambit_fn_02C6544C(cpu);
|
|
/* 0298DDB8 */ cpu->r[6] = cpu->r[29];
|
|
/* 0298DDBC */ cpu->r[8] = cpu->r[6] + 0x00000030u;
|
|
/* 0298DDC0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[8]);
|
|
/* 0298DDC4 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DDC4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298DDC4 */ if (_t8) goto L_0298DDE0; else goto L_0298DDC8;
|
|
L_0298DDC8: ; // 0x298ddc8
|
|
/* 0298DDC8 */ _t9 = cpu->r[6] + 0x00000000u;
|
|
/* 0298DDC8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298DDCC */ cpu->r[6] = cpu->r[6] + 0x00000004u;
|
|
/* 0298DDD0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[8]);
|
|
/* 0298DDD4 */ /* nop */
|
|
/* 0298DDD8 */ cpu->r[3] = cpu->r[3] + 0x00000004u;
|
|
/* 0298DDDC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DDDC */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298DDDC */ if (_t11) goto L_0298DDE0; else goto L_0298DDC8;
|
|
L_0298DDE0: ; // 0x298dde0
|
|
/* 0298DDE0 */ cpu->r[3] = cpu->r[27];
|
|
/* 0298DDE4 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298DDE8 */ Gambit_fn_02C6530C(cpu);
|
|
/* 0298DDEC */ _t12 = cpu->r[30] + 0x000000A8u;
|
|
/* 0298DDEC */ cpu->r[0] = rbrew_read16(cpu->mem, _t12);
|
|
/* 0298DDF0 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 0298DDF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[0]);
|
|
/* 0298DDF8 */ cpu->r[28] = cpu->r[28] + 0x00000034u;
|
|
/* 0298DDFC */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298DDFC */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298DDFC */ if (_t14) goto L_0298DDA0; else goto L_0298DE00;
|
|
L_0298DE00: ; // 0x298de00
|
|
/* 0298DE00 */ /* nop */
|
|
/* 0298DE04 */ _t15 = cpu->r[1] + 0x00000024u;
|
|
/* 0298DE04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298DE08 */ cpu->lr = cpu->r[0];
|
|
/* 0298DE0C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 0298DE10 */ return;
|
|
}
|
|
|
|
// fn_0298DE14 @ 0x298de14
|
|
void Gambit_fn_0298DE14(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8;
|
|
|
|
L_0298DE14: ; // 0x298de14
|
|
/* 0298DE14 */ cpu->r[0] = cpu->lr;
|
|
/* 0298DE18 */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 0298DE18 */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 0298DE1C */ cpu->r[3] = cpu->r[4];
|
|
/* 0298DE1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DE20 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 0298DE20 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 0298DE20 */ cpu->r[1] = _t1;
|
|
/* 0298DE24 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DE24 */ _t3 = _t2 & 0x00000001u;
|
|
/* 0298DE24 */ if (_t3) goto L_0298DE28; else goto L_0298DE38;
|
|
L_0298DE28: ; // 0x298de28
|
|
/* 0298DE28 */ cpu->r[3] = 0x00000008u;
|
|
/* 0298DE2C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298DE30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DE34 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DE34 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298DE34 */ if (_t5) goto L_0298DE50; else goto L_0298DE38;
|
|
L_0298DE38: ; // 0x298de38
|
|
/* 0298DE38 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298DE3C */ cpu->r[12] = 0x10150000u;
|
|
/* 0298DE40 */ cpu->r[0] = cpu->r[0] + 0xFFFFF550u;
|
|
/* 0298DE44 */ cpu->r[12] = cpu->r[12] + 0xFFFFF618u;
|
|
/* 0298DE48 */ _t6 = cpu->r[3] + 0x00000004u;
|
|
/* 0298DE48 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0298DE4C */ _t7 = cpu->r[3] + 0x00000000u;
|
|
/* 0298DE4C */ rbrew_write32(cpu->mem, _t7, cpu->r[12]);
|
|
L_0298DE50: ; // 0x298de50
|
|
/* 0298DE50 */ _t8 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DE50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298DE54 */ cpu->lr = cpu->r[0];
|
|
/* 0298DE58 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DE5C */ return;
|
|
}
|
|
|
|
// fn_0298DE20 @ 0x298de20
|
|
void Gambit_fn_0298DE20(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_0298DE20: ; // 0x298de20
|
|
/* 0298DE20 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 0298DE20 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DE20 */ cpu->r[1] = _t0;
|
|
/* 0298DE24 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DE24 */ _t2 = _t1 & 0x00000001u;
|
|
/* 0298DE24 */ if (_t2) goto L_0298DE28; else goto L_0298DE38;
|
|
L_0298DE28: ; // 0x298de28
|
|
/* 0298DE28 */ cpu->r[3] = 0x00000008u;
|
|
/* 0298DE2C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298DE30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DE34 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DE34 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298DE34 */ if (_t4) goto L_0298DE50; else goto L_0298DE38;
|
|
L_0298DE38: ; // 0x298de38
|
|
/* 0298DE38 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298DE3C */ cpu->r[12] = 0x10150000u;
|
|
/* 0298DE40 */ cpu->r[0] = cpu->r[0] + 0xFFFFF550u;
|
|
/* 0298DE44 */ cpu->r[12] = cpu->r[12] + 0xFFFFF618u;
|
|
/* 0298DE48 */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 0298DE48 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298DE4C */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 0298DE4C */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
L_0298DE50: ; // 0x298de50
|
|
/* 0298DE50 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DE50 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298DE54 */ cpu->lr = cpu->r[0];
|
|
/* 0298DE58 */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 0298DE5C */ return;
|
|
}
|
|
|
|
// fn_0298DE60 @ 0x298de60
|
|
void Gambit_fn_0298DE60(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298DE60: ; // 0x298de60
|
|
/* 0298DE60 */ cpu->r[0] = cpu->lr;
|
|
/* 0298DE64 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298DE64 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DE64 */ cpu->r[1] = _t0;
|
|
/* 0298DE68 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DE68 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298DE6C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298DE6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298DE70 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DE70 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298DE74 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DE74 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298DE74 */ if (_t4) goto L_0298DE78; else goto L_0298DE88;
|
|
L_0298DE78: ; // 0x298de78
|
|
/* 0298DE78 */ cpu->r[3] = 0x00000170u;
|
|
/* 0298DE7C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298DE80 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298DE80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298DE84 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DE84 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298DE84 */ if (_t6) goto L_0298DF70; else goto L_0298DE88;
|
|
L_0298DE88: ; // 0x298de88
|
|
/* 0298DE88 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298DE8C */ Gambit_fn_02990778(cpu);
|
|
/* 0298DE90 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298DE94 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298DE98 */ cpu->r[9] = 0x101F0000u;
|
|
/* 0298DE9C */ cpu->r[0] = cpu->r[0] + 0xFFFFF8ACu;
|
|
/* 0298DEA0 */ cpu->r[12] = cpu->r[12] + 0xFFFFF624u;
|
|
/* 0298DEA4 */ _t7 = cpu->r[31] + 0x0000008Cu;
|
|
/* 0298DEA4 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298DEA8 */ cpu->r[9] = cpu->r[9] + 0x00005E2Cu;
|
|
/* 0298DEAC */ cpu->r[8] = 0x10150000u;
|
|
/* 0298DEB0 */ _t8 = cpu->r[31] + 0x00000088u;
|
|
/* 0298DEB0 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 0298DEB4 */ cpu->r[12] = 0x00000003u;
|
|
/* 0298DEB8 */ cpu->r[11] = cpu->r[31] + 0x00000100u;
|
|
/* 0298DEBC */ cpu->r[8] = cpu->r[8] + 0xFFFFF8C4u;
|
|
/* 0298DEC0 */ cpu->ctr = cpu->r[12];
|
|
/* 0298DEC4 */ _t9 = cpu->r[31] + 0x00000090u;
|
|
/* 0298DEC4 */ rbrew_write32(cpu->mem, _t9, cpu->r[8]);
|
|
L_0298DEC8: ; // 0x298dec8
|
|
/* 0298DEC8 */ _t10 = cpu->r[9] + 0x00000004u;
|
|
/* 0298DEC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298DECC */ _t11 = cpu->r[11] + 0x00000004u;
|
|
/* 0298DECC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 0298DED0 */ _t12 = cpu->r[9] + 0x00000008u;
|
|
/* 0298DED0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298DED4 */ _t13 = cpu->r[11] + 0x00000008u;
|
|
/* 0298DED4 */ rbrew_write32(cpu->mem, _t13, cpu->r[8]);
|
|
/* 0298DED8 */ _t14 = cpu->r[9] + 0x0000000Cu;
|
|
/* 0298DED8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298DEDC */ _t15 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0298DEDC */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 0298DEE0 */ _t16 = cpu->r[9] + 0x00000010u;
|
|
/* 0298DEE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298DEE0 */ cpu->r[9] = _t16;
|
|
/* 0298DEE4 */ _t17 = cpu->r[11] + 0x00000010u;
|
|
/* 0298DEE4 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 0298DEE4 */ cpu->r[11] = _t17;
|
|
/* 0298DEE8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298DEE8 */ _t18 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298DEE8 */ _t19 = _t18 >> (0x00000002u & 31u);
|
|
/* 0298DEE8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298DEE8 */ if (_t20) goto L_0298DEC8; else goto L_0298DEEC;
|
|
L_0298DEEC: ; // 0x298deec
|
|
/* 0298DEEC */ cpu->r[12] = 0x101F0000u;
|
|
/* 0298DEF0 */ _t21 = cpu->r[12] + 0x00006368u;
|
|
/* 0298DEF0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298DEF0 */ cpu->r[12] = _t21;
|
|
/* 0298DEF4 */ _t22 = cpu->r[31] + 0x00000134u;
|
|
/* 0298DEF4 */ rbrew_write32(cpu->mem, _t22, cpu->r[8]);
|
|
/* 0298DEF8 */ _t23 = cpu->r[12] + 0x00000004u;
|
|
/* 0298DEF8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298DEFC */ _t24 = cpu->r[31] + 0x00000138u;
|
|
/* 0298DEFC */ rbrew_write32(cpu->mem, _t24, cpu->r[9]);
|
|
/* 0298DF00 */ _t25 = cpu->r[12] + 0x00000008u;
|
|
/* 0298DF00 */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298DF04 */ cpu->r[3] = cpu->r[31] + 0x00000140u;
|
|
/* 0298DF04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DF08 */ _t26 = cpu->r[31] + 0x0000013Cu;
|
|
/* 0298DF08 */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 0298DF0C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DF0C */ _t28 = _t27 & 0x00000001u;
|
|
/* 0298DF0C */ if (_t28) goto L_0298DF10; else goto L_0298DF20;
|
|
L_0298DF10: ; // 0x298df10
|
|
/* 0298DF10 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298DF14 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298DF18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DF1C */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DF1C */ _t30 = _t29 & 0x00000001u;
|
|
/* 0298DF1C */ if (_t30) goto L_0298DF48; else goto L_0298DF20;
|
|
L_0298DF20: ; // 0x298df20
|
|
/* 0298DF20 */ cpu->r[11] = 0x101F0000u;
|
|
/* 0298DF24 */ _t31 = cpu->r[11] + 0x00006338u;
|
|
/* 0298DF24 */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298DF24 */ cpu->r[11] = _t31;
|
|
/* 0298DF28 */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 0298DF28 */ rbrew_write32(cpu->mem, _t32, cpu->r[12]);
|
|
/* 0298DF2C */ _t33 = cpu->r[11] + 0x00000004u;
|
|
/* 0298DF2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298DF30 */ _t34 = cpu->r[3] + 0x00000004u;
|
|
/* 0298DF30 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 0298DF34 */ _t35 = cpu->r[11] + 0x00000008u;
|
|
/* 0298DF34 */ cpu->r[8] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298DF38 */ cpu->r[10] = 0x101D0000u;
|
|
/* 0298DF3C */ _t36 = cpu->r[3] + 0x00000008u;
|
|
/* 0298DF3C */ rbrew_write32(cpu->mem, _t36, cpu->r[8]);
|
|
/* 0298DF40 */ _t37 = cpu->r[10] + 0xFFFFA68Cu;
|
|
/* 0298DF40 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 0298DF44 */ _t38 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298DF44 */ rbrew_write_f32(cpu->mem, _t38, cpu->f[0]);
|
|
L_0298DF48: ; // 0x298df48
|
|
/* 0298DF48 */ cpu->r[9] = 0x00000000u;
|
|
/* 0298DF4C */ _t39 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298DF4C */ rbrew_write32(cpu->mem, _t39, cpu->r[9]);
|
|
/* 0298DF50 */ _t40 = cpu->r[31] + 0x00000158u;
|
|
/* 0298DF50 */ rbrew_write32(cpu->mem, _t40, cpu->r[9]);
|
|
/* 0298DF54 */ _t41 = cpu->r[31] + 0x00000154u;
|
|
/* 0298DF54 */ rbrew_write32(cpu->mem, _t41, cpu->r[9]);
|
|
/* 0298DF58 */ _t42 = cpu->r[31] + 0x00000150u;
|
|
/* 0298DF58 */ rbrew_write32(cpu->mem, _t42, cpu->r[9]);
|
|
/* 0298DF5C */ _t43 = cpu->r[31] + 0x0000016Cu;
|
|
/* 0298DF5C */ rbrew_write32(cpu->mem, _t43, cpu->r[9]);
|
|
/* 0298DF60 */ _t44 = cpu->r[31] + 0x00000169u;
|
|
/* 0298DF60 */ rbrew_write8(cpu->mem, _t44, (uint8_t)cpu->r[9]);
|
|
/* 0298DF64 */ _t45 = cpu->r[31] + 0x00000168u;
|
|
/* 0298DF64 */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[9]);
|
|
/* 0298DF68 */ _t46 = cpu->r[31] + 0x00000164u;
|
|
/* 0298DF68 */ rbrew_write32(cpu->mem, _t46, cpu->r[9]);
|
|
/* 0298DF6C */ _t47 = cpu->r[31] + 0x00000160u;
|
|
/* 0298DF6C */ rbrew_write32(cpu->mem, _t47, cpu->r[9]);
|
|
L_0298DF70: ; // 0x298df70
|
|
/* 0298DF70 */ _t48 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DF70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 0298DF74 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298DF78 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DF78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298DF7C */ cpu->lr = cpu->r[0];
|
|
/* 0298DF80 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DF84 */ return;
|
|
}
|
|
|
|
// fn_0298DE64 @ 0x298de64
|
|
void Gambit_fn_0298DE64(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298DE64: ; // 0x298de64
|
|
/* 0298DE64 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298DE64 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DE64 */ cpu->r[1] = _t0;
|
|
/* 0298DE68 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DE68 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298DE6C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298DE6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298DE70 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DE70 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298DE74 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DE74 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298DE74 */ if (_t4) goto L_0298DE78; else goto L_0298DE88;
|
|
L_0298DE78: ; // 0x298de78
|
|
/* 0298DE78 */ cpu->r[3] = 0x00000170u;
|
|
/* 0298DE7C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298DE80 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298DE80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298DE84 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DE84 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298DE84 */ if (_t6) goto L_0298DF70; else goto L_0298DE88;
|
|
L_0298DE88: ; // 0x298de88
|
|
/* 0298DE88 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298DE8C */ Gambit_fn_02990778(cpu);
|
|
/* 0298DE90 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298DE94 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298DE98 */ cpu->r[9] = 0x101F0000u;
|
|
/* 0298DE9C */ cpu->r[0] = cpu->r[0] + 0xFFFFF8ACu;
|
|
/* 0298DEA0 */ cpu->r[12] = cpu->r[12] + 0xFFFFF624u;
|
|
/* 0298DEA4 */ _t7 = cpu->r[31] + 0x0000008Cu;
|
|
/* 0298DEA4 */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 0298DEA8 */ cpu->r[9] = cpu->r[9] + 0x00005E2Cu;
|
|
/* 0298DEAC */ cpu->r[8] = 0x10150000u;
|
|
/* 0298DEB0 */ _t8 = cpu->r[31] + 0x00000088u;
|
|
/* 0298DEB0 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 0298DEB4 */ cpu->r[12] = 0x00000003u;
|
|
/* 0298DEB8 */ cpu->r[11] = cpu->r[31] + 0x00000100u;
|
|
/* 0298DEBC */ cpu->r[8] = cpu->r[8] + 0xFFFFF8C4u;
|
|
/* 0298DEC0 */ cpu->ctr = cpu->r[12];
|
|
/* 0298DEC4 */ _t9 = cpu->r[31] + 0x00000090u;
|
|
/* 0298DEC4 */ rbrew_write32(cpu->mem, _t9, cpu->r[8]);
|
|
L_0298DEC8: ; // 0x298dec8
|
|
/* 0298DEC8 */ _t10 = cpu->r[9] + 0x00000004u;
|
|
/* 0298DEC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298DECC */ _t11 = cpu->r[11] + 0x00000004u;
|
|
/* 0298DECC */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
/* 0298DED0 */ _t12 = cpu->r[9] + 0x00000008u;
|
|
/* 0298DED0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298DED4 */ _t13 = cpu->r[11] + 0x00000008u;
|
|
/* 0298DED4 */ rbrew_write32(cpu->mem, _t13, cpu->r[8]);
|
|
/* 0298DED8 */ _t14 = cpu->r[9] + 0x0000000Cu;
|
|
/* 0298DED8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298DEDC */ _t15 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0298DEDC */ rbrew_write32(cpu->mem, _t15, cpu->r[10]);
|
|
/* 0298DEE0 */ _t16 = cpu->r[9] + 0x00000010u;
|
|
/* 0298DEE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298DEE0 */ cpu->r[9] = _t16;
|
|
/* 0298DEE4 */ _t17 = cpu->r[11] + 0x00000010u;
|
|
/* 0298DEE4 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 0298DEE4 */ cpu->r[11] = _t17;
|
|
/* 0298DEE8 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298DEE8 */ _t18 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298DEE8 */ _t19 = _t18 >> (0x00000002u & 31u);
|
|
/* 0298DEE8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298DEE8 */ if (_t20) goto L_0298DEC8; else goto L_0298DEEC;
|
|
L_0298DEEC: ; // 0x298deec
|
|
/* 0298DEEC */ cpu->r[12] = 0x101F0000u;
|
|
/* 0298DEF0 */ _t21 = cpu->r[12] + 0x00006368u;
|
|
/* 0298DEF0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298DEF0 */ cpu->r[12] = _t21;
|
|
/* 0298DEF4 */ _t22 = cpu->r[31] + 0x00000134u;
|
|
/* 0298DEF4 */ rbrew_write32(cpu->mem, _t22, cpu->r[8]);
|
|
/* 0298DEF8 */ _t23 = cpu->r[12] + 0x00000004u;
|
|
/* 0298DEF8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298DEFC */ _t24 = cpu->r[31] + 0x00000138u;
|
|
/* 0298DEFC */ rbrew_write32(cpu->mem, _t24, cpu->r[9]);
|
|
/* 0298DF00 */ _t25 = cpu->r[12] + 0x00000008u;
|
|
/* 0298DF00 */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298DF04 */ cpu->r[3] = cpu->r[31] + 0x00000140u;
|
|
/* 0298DF04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DF08 */ _t26 = cpu->r[31] + 0x0000013Cu;
|
|
/* 0298DF08 */ rbrew_write32(cpu->mem, _t26, cpu->r[10]);
|
|
/* 0298DF0C */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DF0C */ _t28 = _t27 & 0x00000001u;
|
|
/* 0298DF0C */ if (_t28) goto L_0298DF10; else goto L_0298DF20;
|
|
L_0298DF10: ; // 0x298df10
|
|
/* 0298DF10 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298DF14 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298DF18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DF1C */ _t29 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DF1C */ _t30 = _t29 & 0x00000001u;
|
|
/* 0298DF1C */ if (_t30) goto L_0298DF48; else goto L_0298DF20;
|
|
L_0298DF20: ; // 0x298df20
|
|
/* 0298DF20 */ cpu->r[11] = 0x101F0000u;
|
|
/* 0298DF24 */ _t31 = cpu->r[11] + 0x00006338u;
|
|
/* 0298DF24 */ cpu->r[12] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298DF24 */ cpu->r[11] = _t31;
|
|
/* 0298DF28 */ _t32 = cpu->r[3] + 0x00000000u;
|
|
/* 0298DF28 */ rbrew_write32(cpu->mem, _t32, cpu->r[12]);
|
|
/* 0298DF2C */ _t33 = cpu->r[11] + 0x00000004u;
|
|
/* 0298DF2C */ cpu->r[0] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298DF30 */ _t34 = cpu->r[3] + 0x00000004u;
|
|
/* 0298DF30 */ rbrew_write32(cpu->mem, _t34, cpu->r[0]);
|
|
/* 0298DF34 */ _t35 = cpu->r[11] + 0x00000008u;
|
|
/* 0298DF34 */ cpu->r[8] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298DF38 */ cpu->r[10] = 0x101D0000u;
|
|
/* 0298DF3C */ _t36 = cpu->r[3] + 0x00000008u;
|
|
/* 0298DF3C */ rbrew_write32(cpu->mem, _t36, cpu->r[8]);
|
|
/* 0298DF40 */ _t37 = cpu->r[10] + 0xFFFFA68Cu;
|
|
/* 0298DF40 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 0298DF44 */ _t38 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298DF44 */ rbrew_write_f32(cpu->mem, _t38, cpu->f[0]);
|
|
L_0298DF48: ; // 0x298df48
|
|
/* 0298DF48 */ cpu->r[9] = 0x00000000u;
|
|
/* 0298DF4C */ _t39 = cpu->r[31] + 0x0000015Cu;
|
|
/* 0298DF4C */ rbrew_write32(cpu->mem, _t39, cpu->r[9]);
|
|
/* 0298DF50 */ _t40 = cpu->r[31] + 0x00000158u;
|
|
/* 0298DF50 */ rbrew_write32(cpu->mem, _t40, cpu->r[9]);
|
|
/* 0298DF54 */ _t41 = cpu->r[31] + 0x00000154u;
|
|
/* 0298DF54 */ rbrew_write32(cpu->mem, _t41, cpu->r[9]);
|
|
/* 0298DF58 */ _t42 = cpu->r[31] + 0x00000150u;
|
|
/* 0298DF58 */ rbrew_write32(cpu->mem, _t42, cpu->r[9]);
|
|
/* 0298DF5C */ _t43 = cpu->r[31] + 0x0000016Cu;
|
|
/* 0298DF5C */ rbrew_write32(cpu->mem, _t43, cpu->r[9]);
|
|
/* 0298DF60 */ _t44 = cpu->r[31] + 0x00000169u;
|
|
/* 0298DF60 */ rbrew_write8(cpu->mem, _t44, (uint8_t)cpu->r[9]);
|
|
/* 0298DF64 */ _t45 = cpu->r[31] + 0x00000168u;
|
|
/* 0298DF64 */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[9]);
|
|
/* 0298DF68 */ _t46 = cpu->r[31] + 0x00000164u;
|
|
/* 0298DF68 */ rbrew_write32(cpu->mem, _t46, cpu->r[9]);
|
|
/* 0298DF6C */ _t47 = cpu->r[31] + 0x00000160u;
|
|
/* 0298DF6C */ rbrew_write32(cpu->mem, _t47, cpu->r[9]);
|
|
L_0298DF70: ; // 0x298df70
|
|
/* 0298DF70 */ _t48 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DF70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 0298DF74 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298DF78 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DF78 */ cpu->r[31] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298DF7C */ cpu->lr = cpu->r[0];
|
|
/* 0298DF80 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DF84 */ return;
|
|
}
|
|
|
|
// fn_0298DF88 @ 0x298df88
|
|
void Gambit_fn_0298DF88(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_0298DF88: ; // 0x298df88
|
|
/* 0298DF88 */ cpu->r[0] = cpu->lr;
|
|
/* 0298DF8C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298DF8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DF8C */ cpu->r[1] = _t0;
|
|
/* 0298DF90 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DF90 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298DF94 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298DF98 */ cpu->r[3] = 0x00000170u;
|
|
/* 0298DF9C */ cpu->r[5] = 0x00000004u;
|
|
/* 0298DFA0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DFA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298DFA4 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298DFA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DFAC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DFAC */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298DFAC */ if (_t4) goto L_0298DFB8; else goto L_0298DFB0;
|
|
L_0298DFB0: ; // 0x298dfb0
|
|
/* 0298DFB0 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298DFB4 */ Gambit_fn_0298DE60(cpu);
|
|
L_0298DFB8: ; // 0x298dfb8
|
|
/* 0298DFB8 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DFB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298DFBC */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DFBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298DFC0 */ cpu->lr = cpu->r[0];
|
|
/* 0298DFC4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DFC8 */ return;
|
|
}
|
|
|
|
// fn_0298DF8C @ 0x298df8c
|
|
void Gambit_fn_0298DF8C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_0298DF8C: ; // 0x298df8c
|
|
/* 0298DF8C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298DF8C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DF8C */ cpu->r[1] = _t0;
|
|
/* 0298DF90 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DF90 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298DF94 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298DF98 */ cpu->r[3] = 0x00000170u;
|
|
/* 0298DF9C */ cpu->r[5] = 0x00000004u;
|
|
/* 0298DFA0 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DFA0 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298DFA4 */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298DFA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298DFAC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DFAC */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298DFAC */ if (_t4) goto L_0298DFB8; else goto L_0298DFB0;
|
|
L_0298DFB0: ; // 0x298dfb0
|
|
/* 0298DFB0 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298DFB4 */ Gambit_fn_0298DE60(cpu);
|
|
L_0298DFB8: ; // 0x298dfb8
|
|
/* 0298DFB8 */ _t5 = cpu->r[1] + 0x00000014u;
|
|
/* 0298DFB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298DFBC */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298DFBC */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298DFC0 */ cpu->lr = cpu->r[0];
|
|
/* 0298DFC4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298DFC8 */ return;
|
|
}
|
|
|
|
// fn_0298DFCC @ 0x298dfcc
|
|
void Gambit_fn_0298DFCC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_0298DFCC: ; // 0x298dfcc
|
|
/* 0298DFCC */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 0298DFCC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298DFCC */ cpu->r[1] = _t0;
|
|
/* 0298DFD0 */ cpu->r[0] = cpu->lr;
|
|
/* 0298DFD4 */ /* nop */
|
|
/* 0298DFD8 */ cpu->r[26] = cpu->r[3];
|
|
/* 0298DFDC */ cpu->r[27] = cpu->r[4];
|
|
/* 0298DFE0 */ cpu->r[28] = cpu->r[5];
|
|
/* 0298DFE4 */ cpu->r[30] = cpu->r[7];
|
|
/* 0298DFE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298DFE8 */ cpu->r[25] = 0x101D0000u;
|
|
/* 0298DFEC */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298DFEC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298DFF0 */ cpu->r[29] = cpu->r[6];
|
|
/* 0298DFF4 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298DFF4 */ _t3 = _t2 & 0x00000001u;
|
|
/* 0298DFF4 */ if (_t3) goto L_0298DFF8; else goto L_0298E004;
|
|
L_0298DFF8: ; // 0x298dff8
|
|
/* 0298DFF8 */ _t4 = cpu->r[25] + 0xFFFF98F0u;
|
|
/* 0298DFF8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298DFFC */ Gambit_fn_02826F20(cpu);
|
|
/* 0298E000 */ cpu->r[30] = cpu->r[3];
|
|
L_0298E004: ; // 0x298e004
|
|
/* 0298E004 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298E008 */ cpu->r[31] = 0x00000001u;
|
|
/* 0298E00C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E00C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298E00C */ if (_t6) goto L_0298E020; else goto L_0298E010;
|
|
L_0298E010: ; // 0x298e010
|
|
/* 0298E010 */ _t7 = cpu->r[25] + 0xFFFF98F0u;
|
|
/* 0298E010 */ cpu->r[3] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298E014 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298E018 */ Gambit_fn_02827008(cpu);
|
|
/* 0298E01C */ cpu->r[31] = cpu->r[3];
|
|
L_0298E020: ; // 0x298e020
|
|
/* 0298E020 */ cpu->r[6] = cpu->r[30];
|
|
/* 0298E024 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298E028 */ cpu->r[4] = cpu->r[27];
|
|
/* 0298E02C */ cpu->r[5] = cpu->r[29];
|
|
/* 0298E030 */ _t8 = cpu->r[26] + 0x00000160u;
|
|
/* 0298E030 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 0298E034 */ Gambit_fn_02991264(cpu);
|
|
/* 0298E038 */ cpu->r[8] = 0x00000001u;
|
|
/* 0298E03C */ cpu->r[12] = 0x10150000u;
|
|
/* 0298E040 */ _t9 = cpu->r[26] + 0x00000169u;
|
|
/* 0298E040 */ rbrew_write8(cpu->mem, _t9, (uint8_t)cpu->r[8]);
|
|
/* 0298E044 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298E048 */ cpu->r[0] = 0x00000003u;
|
|
/* 0298E04C */ _t10 = cpu->r[12] + 0xFFFFF61Cu;
|
|
/* 0298E04C */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 0298E050 */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 0298E054 */ cpu->r[5] = 0x00000000u;
|
|
/* 0298E058 */ _t11 = cpu->r[26] + 0x00000008u;
|
|
/* 0298E058 */ rbrew_write8(cpu->mem, _t11, (uint8_t)cpu->r[0]);
|
|
/* 0298E05C */ Gambit_fn_029DB28C(cpu);
|
|
/* 0298E060 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298E064 */ _t12 = cpu->r[26] + 0x00000008u;
|
|
/* 0298E064 */ cpu->r[10] = rbrew_read8(cpu->mem, _t12);
|
|
/* 0298E068 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298E06C */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 0298E070 */ _t13 = cpu->r[11] + 0xFFFFF620u;
|
|
/* 0298E070 */ cpu->f[1] = rbrew_read_f32(cpu->mem, _t13);
|
|
/* 0298E074 */ cpu->r[5] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 0298E078 */ Gambit_fn_029DB28C(cpu);
|
|
/* 0298E07C */ cpu->r[3] = cpu->r[26];
|
|
/* 0298E080 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298E084 */ cpu->r[5] = 0x00000000u;
|
|
/* 0298E088 */ Gambit_fn_0298D5D0(cpu);
|
|
/* 0298E08C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000001u);
|
|
/* 0298E090 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E090 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298E090 */ if (_t15) goto L_0298E0A0; else goto L_0298E094;
|
|
L_0298E094: ; // 0x298e094
|
|
/* 0298E094 */ _t16 = cpu->r[25] + 0xFFFF98F0u;
|
|
/* 0298E094 */ cpu->r[3] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298E098 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298E09C */ Gambit_fn_02827008(cpu);
|
|
L_0298E0A0: ; // 0x298e0a0
|
|
/* 0298E0A0 */ /* nop */
|
|
/* 0298E0A4 */ _t17 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298E0A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298E0A8 */ cpu->lr = cpu->r[0];
|
|
/* 0298E0AC */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 0298E0B0 */ return;
|
|
}
|
|
|
|
// fn_0298E0B4 @ 0x298e0b4
|
|
void Gambit_fn_0298E0B4(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_0298E0B4: ; // 0x298e0b4
|
|
/* 0298E0B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298E0B8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E0B8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298E0B8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298E0B8 */ goto L_0298E0BC;
|
|
L_0298E0BC: ; // 0x298e0bc
|
|
/* 0298E0BC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298E0BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E0C0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E0C0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298E0C0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0298E0C0 */ goto L_0298E0C4;
|
|
L_0298E0C4: ; // 0x298e0c4
|
|
/* 0298E0C4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_0298E0C8 @ 0x298e0c8
|
|
void Gambit_fn_0298E0C8(CPUState* cpu) {
|
|
L_0298E0C8: ; // 0x298e0c8
|
|
/* 0298E0C8 */ return;
|
|
}
|
|
|
|
// fn_0298E0CC @ 0x298e0cc
|
|
void Gambit_fn_0298E0CC(CPUState* cpu) {
|
|
L_0298E0CC: ; // 0x298e0cc
|
|
/* 0298E0CC */ cpu->r[3] = cpu->r[6];
|
|
/* 0298E0D0 */ return;
|
|
}
|
|
|
|
// fn_0298E0D4 @ 0x298e0d4
|
|
void Gambit_fn_0298E0D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_0298E0D4: ; // 0x298e0d4
|
|
/* 0298E0D4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298E0D8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298E0D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298E0D8 */ cpu->r[1] = _t0;
|
|
/* 0298E0DC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298E0DC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298E0E0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E0E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298E0E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E0E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298E0E8 */ _t4 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298E0E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298E0EC */ _t5 = cpu->r[12] + 0x0000002Cu;
|
|
/* 0298E0EC */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E0F0 */ cpu->ctr = cpu->r[11];
|
|
/* 0298E0F4 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 0298E0F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298E0F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298E0FC */ cpu->r[31] = cpu->r[3];
|
|
/* 0298E100 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298E104 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298E108 */ Gambit_fn_029DA9EC(cpu);
|
|
/* 0298E10C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 0298E110 */ _t7 = cpu->r[30] + 0x00000040u;
|
|
/* 0298E110 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298E114 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 0298E114 */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298E118 */ cpu->r[12] = cpu->r[11] + cpu->r[0];
|
|
/* 0298E11C */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E11C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E120 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E120 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298E124 */ cpu->lr = cpu->r[0];
|
|
/* 0298E128 */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 0298E128 */ cpu->r[3] = rbrew_read8(cpu->mem, _t11);
|
|
/* 0298E12C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298E130 */ return;
|
|
}
|
|
|
|
// fn_0298E0D8 @ 0x298e0d8
|
|
void Gambit_fn_0298E0D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11;
|
|
|
|
L_0298E0D8: ; // 0x298e0d8
|
|
/* 0298E0D8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298E0D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298E0D8 */ cpu->r[1] = _t0;
|
|
/* 0298E0DC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298E0DC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298E0E0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E0E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298E0E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E0E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298E0E8 */ _t4 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298E0E8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298E0EC */ _t5 = cpu->r[12] + 0x0000002Cu;
|
|
/* 0298E0EC */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E0F0 */ cpu->ctr = cpu->r[11];
|
|
/* 0298E0F4 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 0298E0F4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298E0F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298E0FC */ cpu->r[31] = cpu->r[3];
|
|
/* 0298E100 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298E104 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298E108 */ Gambit_fn_029DA9EC(cpu);
|
|
/* 0298E10C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x0000000Cu);
|
|
/* 0298E110 */ _t7 = cpu->r[30] + 0x00000040u;
|
|
/* 0298E110 */ cpu->r[11] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298E114 */ _t8 = cpu->r[1] + 0x00000008u;
|
|
/* 0298E114 */ cpu->r[30] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298E118 */ cpu->r[12] = cpu->r[11] + cpu->r[0];
|
|
/* 0298E11C */ _t9 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E11C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E120 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E120 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298E124 */ cpu->lr = cpu->r[0];
|
|
/* 0298E128 */ _t11 = cpu->r[12] + 0x00000008u;
|
|
/* 0298E128 */ cpu->r[3] = rbrew_read8(cpu->mem, _t11);
|
|
/* 0298E12C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298E130 */ return;
|
|
}
|
|
|
|
// fn_0298E134 @ 0x298e134
|
|
void Gambit_fn_0298E134(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_0298E134: ; // 0x298e134
|
|
/* 0298E134 */ _t0 = cpu->r[3] + 0x00000010u;
|
|
/* 0298E134 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E138 */ _t1 = cpu->r[12] + 0x00000000u;
|
|
/* 0298E138 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E13C */ _t2 = cpu->r[12] + 0x0000000Eu;
|
|
/* 0298E13C */ cpu->r[3] = rbrew_read16(cpu->mem, _t2);
|
|
/* 0298E140 */ return;
|
|
}
|
|
|
|
// fn_0298E144 @ 0x298e144
|
|
void Gambit_fn_0298E144(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_0298E144: ; // 0x298e144
|
|
/* 0298E144 */ _t0 = cpu->r[3] + 0x0000007Cu;
|
|
/* 0298E144 */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E148 */ return;
|
|
}
|
|
|
|
// fn_0298E14C @ 0x298e14c
|
|
void Gambit_fn_0298E14C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5;
|
|
|
|
L_0298E14C: ; // 0x298e14c
|
|
/* 0298E14C */ _t0 = cpu->r[3] + 0x00000010u;
|
|
/* 0298E14C */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E150 */ _t1 = cpu->r[11] + 0x00000000u;
|
|
/* 0298E150 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E154 */ _t2 = cpu->r[12] + 0x00000024u;
|
|
/* 0298E154 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E154 */ cpu->r[12] = _t2;
|
|
/* 0298E158 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E15C */ cpu->r[11] = 0x00000000u;
|
|
/* 0298E160 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E160 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298E160 */ if (_t4) goto L_0298E168; else goto L_0298E164;
|
|
L_0298E164: ; // 0x298e164
|
|
/* 0298E164 */ cpu->r[11] = cpu->r[12] + cpu->r[0];
|
|
L_0298E168: ; // 0x298e168
|
|
/* 0298E168 */ _t5 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0298E168 */ cpu->r[3] = rbrew_read16(cpu->mem, _t5);
|
|
/* 0298E16C */ return;
|
|
}
|
|
|
|
// fn_0298E170 @ 0x298e170
|
|
void Gambit_fn_0298E170(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_0298E170: ; // 0x298e170
|
|
/* 0298E170 */ _t0 = cpu->r[3] + 0x000000C8u;
|
|
/* 0298E170 */ cpu->r[0] = rbrew_read8(cpu->mem, _t0);
|
|
/* 0298E174 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x00000030u);
|
|
/* 0298E178 */ _t1 = cpu->r[3] + 0x000000D8u;
|
|
/* 0298E178 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E17C */ cpu->r[0] = cpu->r[0] | 0x00000004u;
|
|
/* 0298E180 */ _t2 = cpu->r[3] + 0x000000C8u;
|
|
/* 0298E180 */ rbrew_write8(cpu->mem, _t2, (uint8_t)cpu->r[0]);
|
|
/* 0298E184 */ cpu->r[3] = cpu->r[12] + cpu->r[11];
|
|
/* 0298E188 */ return;
|
|
}
|
|
|
|
// fn_0298E18C @ 0x298e18c
|
|
void Gambit_fn_0298E18C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_0298E18C: ; // 0x298e18c
|
|
/* 0298E18C */ /* nop */
|
|
/* 0298E190 */ _t0 = cpu->r[3] + 0x00000098u;
|
|
/* 0298E190 */ cpu->r[7] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E194 */ cpu->r[6] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E198 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Bu, 0x0000001Fu);
|
|
/* 0298E19C */ cpu->r[9] = 0x00000001u;
|
|
/* 0298E1A0 */ _t1 = cpu->r[7] + cpu->r[6];
|
|
/* 0298E1A0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E1A4 */ /* nop */
|
|
/* 0298E1A8 */ /* nop */
|
|
/* 0298E1AC */ _t2 = ~cpu->r[8];
|
|
/* 0298E1AC */ cpu->r[0] = cpu->r[10] & _t2;
|
|
/* 0298E1B0 */ cpu->r[12] = cpu->r[0] | cpu->r[11];
|
|
/* 0298E1B4 */ _t3 = cpu->r[7] + cpu->r[6];
|
|
/* 0298E1B4 */ rbrew_write32(cpu->mem, _t3, cpu->r[12]);
|
|
/* 0298E1B8 */ return;
|
|
}
|
|
|
|
// fn_0298E1BC @ 0x298e1bc
|
|
void Gambit_fn_0298E1BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_0298E1BC: ; // 0x298e1bc
|
|
/* 0298E1BC */ /* nop */
|
|
/* 0298E1C0 */ _t0 = cpu->r[3] + 0x00000098u;
|
|
/* 0298E1C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E1C4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E1C8 */ _t1 = cpu->r[11] + cpu->r[12];
|
|
/* 0298E1C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E1CC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Bu, 0x0000001Fu);
|
|
/* 0298E1D0 */ /* nop */
|
|
/* 0298E1D4 */ cpu->r[3] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298E1D8 */ return;
|
|
}
|
|
|
|
// fn_0298E1DC @ 0x298e1dc
|
|
void Gambit_fn_0298E1DC(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298E1DC: ; // 0x298e1dc
|
|
/* 0298E1DC */ _t0 = cpu->r[3] + 0x000000ACu;
|
|
/* 0298E1DC */ cpu->r[3] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E1E0 */ goto L_02C59BC4;
|
|
L_02C59BC4: ; // 0x2c59bc4
|
|
/* 02C59BC4 */ _t1 = cpu->r[1] + 0xFFFFFF98u;
|
|
/* 02C59BC4 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 02C59BC4 */ cpu->r[1] = _t1;
|
|
/* 02C59BC8 */ _t2 = cpu->r[1] + 0x00000028u;
|
|
/* 02C59BC8 */ rbrew_write_f64(cpu->mem, _t2, cpu->f[28]);
|
|
/* 02C59BCC */ /* nop */
|
|
/* 02C59BD0 */ _t3 = cpu->r[1] + 0x00000038u;
|
|
/* 02C59BD0 */ rbrew_write_f64(cpu->mem, _t3, cpu->f[29]);
|
|
/* 02C59BD4 */ /* nop */
|
|
/* 02C59BD8 */ _t4 = cpu->r[1] + 0x00000048u;
|
|
/* 02C59BD8 */ rbrew_write_f64(cpu->mem, _t4, cpu->f[30]);
|
|
/* 02C59BDC */ /* nop */
|
|
/* 02C59BE0 */ _t5 = cpu->r[1] + 0x00000058u;
|
|
/* 02C59BE0 */ rbrew_write_f64(cpu->mem, _t5, cpu->f[31]);
|
|
/* 02C59BE4 */ /* nop */
|
|
/* 02C59BE8 */ _t6 = cpu->r[1] + 0x00000030u;
|
|
/* 02C59BE8 */ rbrew_write_f32(cpu->mem, _t6, cpu->f[28]);
|
|
/* 02C59BEC */ _t7 = cpu->r[1] + 0x00000040u;
|
|
/* 02C59BEC */ rbrew_write_f32(cpu->mem, _t7, cpu->f[29]);
|
|
/* 02C59BF0 */ _t8 = cpu->r[1] + 0x00000050u;
|
|
/* 02C59BF0 */ rbrew_write_f32(cpu->mem, _t8, cpu->f[30]);
|
|
/* 02C59BF4 */ _t9 = cpu->r[1] + 0x00000060u;
|
|
/* 02C59BF4 */ rbrew_write_f32(cpu->mem, _t9, cpu->f[31]);
|
|
/* 02C59BF8 */ _t10 = cpu->r[3] + 0x00000004u;
|
|
/* 02C59BF8 */ cpu->r[11] = rbrew_read16(cpu->mem, _t10);
|
|
/* 02C59BFC */ _t11 = cpu->r[3] + 0x00000000u;
|
|
/* 02C59BFC */ cpu->r[8] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02C59C00 */ cpu->r[11] = cpu->r[11] | 0x00000004u;
|
|
/* 02C59C04 */ _t12 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02C59C04 */ cpu->r[6] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02C59C08 */ cpu->r[12] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000011u, 0x00000013u);
|
|
/* 02C59C08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02C59C0C */ _t13 = cpu->r[3] + 0x00000004u;
|
|
/* 02C59C0C */ rbrew_write16(cpu->mem, _t13, (uint16_t)cpu->r[11]);
|
|
/* 02C59C10 */ _t14 = cpu->r[8] + 0x00000008u;
|
|
/* 02C59C10 */ cpu->r[12] = rbrew_read16(cpu->mem, _t14);
|
|
/* 02C59C14 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02C59C14 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02C59C14 */ if (_t16) goto L_02C59E04; else goto L_02C59C18;
|
|
L_02C59C18: ; // 0x2c59c18
|
|
/* 02C59C18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02C59C1C */ _t17 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02C59C1C */ _t18 = _t17 & 0x00000001u;
|
|
/* 02C59C1C */ if (_t18) goto L_02C59C20; else goto L_02C59F24;
|
|
L_02C59C20: ; // 0x2c59c20
|
|
/* 02C59C20 */ cpu->r[11] = 0x101B0000u;
|
|
/* 02C59C24 */ _t19 = cpu->r[11] + 0xFFFFEF48u;
|
|
/* 02C59C24 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t19);
|
|
/* 02C59C28 */ cpu->r[11] = 0x101B0000u;
|
|
/* 02C59C2C */ cpu->r[7] = 0x00000000u;
|
|
/* 02C59C30 */ _t20 = cpu->r[11] + 0xFFFFEF50u;
|
|
/* 02C59C30 */ cpu->f[12] = rbrew_read_f64(cpu->mem, _t20);
|
|
/* 02C59C34 */ cpu->r[11] = 0x101B0000u;
|
|
/* 02C59C38 */ cpu->r[9] = 0x101B0000u;
|
|
/* 02C59C3C */ _t21 = cpu->r[11] + 0xFFFFEF58u;
|
|
/* 02C59C3C */ cpu->f[0] = rbrew_read_f64(cpu->mem, _t21);
|
|
/* 02C59C40 */ cpu->r[9] = cpu->r[9] + 0xFFFFF1DCu;
|
|
L_02C59C44: ; // 0x2c59c44
|
|
/* 02C59C44 */ _t22 = cpu->r[8] + 0x00000014u;
|
|
/* 02C59C44 */ cpu->r[10] = rbrew_read32(cpu->mem, _t22);
|
|
/* 02C59C48 */ cpu->r[5] = 0x00000000u;
|
|
/* 02C59C4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 02C59C50 */ cpu->r[11] = cpu->r[8] + 0x00000014u;
|
|
/* 02C59C54 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02C59C54 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02C59C54 */ if (_t24) goto L_02C59C5C; else goto L_02C59C58;
|
|
L_02C59C58: ; // 0x2c59c58
|
|
/* 02C59C58 */ cpu->r[5] = cpu->r[11] + cpu->r[10];
|
|
L_02C59C5C: ; // 0x2c59c5c
|
|
/* 02C59C5C */ cpu->r[4] = cpu->r[5] + cpu->r[7];
|
|
/* 02C59C60 */ cpu->r[10] = 0x00000003u;
|
|
/* 02C59C64 */ _t25 = cpu->r[4] + 0x00000010u;
|
|
/* 02C59C64 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02C59C68 */ cpu->ctr = cpu->r[10];
|
|
/* 02C59C6C */ cpu->r[11] = cpu->r[11] & 0x0F870000u;
|
|
/* 02C59C6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02C59C70 */ cpu->r[10] = 0x00000000u;
|
|
/* 02C59C74 */ cpu->r[5] = cpu->r[6] + cpu->r[7];
|
|
/* 02C59C78 */ _t26 = cpu->r[6] + cpu->r[7];
|
|
/* 02C59C78 */ rbrew_write32(cpu->mem, _t26, cpu->r[11]);
|
|
L_02C59C7C: ; // 0x2c59c7c
|
|
/* 02C59C7C */ cpu->r[11] = cpu->r[4] + 0x00000014u;
|
|
/* 02C59C80 */ _t27 = cpu->r[11] + cpu->r[10];
|
|
/* 02C59C80 */ cpu->r[11] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02C59C84 */ cpu->r[11] = cpu->r[5] + 0x00000004u;
|
|
/* 02C59C88 */ _t28 = cpu->r[11] + cpu->r[10];
|
|
/* 02C59C88 */ rbrew_write32(cpu->mem, _t28, cpu->r[11]);
|
|
/* 02C59C8C */ cpu->r[10] = cpu->r[10] + 0x00000004u;
|
|
/* 02C59C90 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02C59C90 */ _t29 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02C59C90 */ _t30 = _t29 >> (0x00000002u & 31u);
|
|
/* 02C59C90 */ _t31 = _t30 & 0x00000001u;
|
|
/* 02C59C90 */ if (_t31) goto L_02C59C7C; else goto L_02C59C94;
|
|
L_02C59C94: ; // 0x2c59c94
|
|
/* 02C59C94 */ _t32 = cpu->r[4] + 0x00000020u;
|
|
/* 02C59C94 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 02C59C98 */ cpu->r[11] = 0x43300000u;
|
|
/* 02C59C9C */ cpu->f[11] = fma(cpu->f[11], cpu->f[0], cpu->f[12]);
|
|
/* 02C59CA0 */ _t33 = cpu->r[1] + 0x00000008u;
|
|
/* 02C59CA0 */ rbrew_write32(cpu->mem, _t33, cpu->r[11]);
|
|
/* 02C59CA4 */ cpu->r[11] = 0x101B0000u;
|
|
/* 02C59CA8 */ _t34 = cpu->r[11] + 0xFFFFEF70u;
|
|
/* 02C59CA8 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t34);
|
|
/* 02C59CAC */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02C59CAC */ rbrew_write_f64(cpu->mem, _t35, cpu->f[11]);
|
|
/* 02C59CB0 */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 02C59CB0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t36);
|
|
/* 02C59CB4 */ _t37 = cpu->r[4] + 0x00000024u;
|
|
/* 02C59CB4 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t37);
|
|
/* 02C59CB8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000008u, 0x0000001Fu);
|
|
/* 02C59CBC */ cpu->r[10] = rbrew_rlwinm(cpu->r[10], 0x0000000Cu, 0x00000014u, 0x0000001Bu);
|
|
/* 02C59CC0 */ _t38 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02C59CC0 */ rbrew_write32(cpu->mem, _t38, cpu->r[11]);
|
|
/* 02C59CC4 */ _t39 = cpu->r[1] + 0x00000008u;
|
|
/* 02C59CC4 */ cpu->f[10] = rbrew_read_f64(cpu->mem, _t39);
|
|
/* 02C59CC8 */ cpu->r[10] = cpu->r[9] + cpu->r[10];
|
|
/* 02C59CCC */ cpu->f[9] = cpu->f[10] - cpu->f[28];
|
|
/* 02C59CD0 */ _t40 = cpu->r[10] + 0x00000008u;
|
|
/* 02C59CD0 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 02C59CD4 */ cpu->f[10] = fma(cpu->f[11], cpu->f[0], cpu->f[12]);
|
|
/* 02C59CD8 */ _t41 = cpu->r[10] + 0x00000000u;
|
|
/* 02C59CD8 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t41);
|
|
/* 02C59CDC */ cpu->f[11] = (double)(float)cpu->f[9];
|
|
/* 02C59CE0 */ _t42 = cpu->r[1] + 0x00000018u;
|
|
/* 02C59CE0 */ rbrew_write_f64(cpu->mem, _t42, cpu->f[10]);
|
|
/* 02C59CE4 */ _t43 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02C59CE4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t43);
|
|
/* 02C59CE8 */ cpu->f[9] = cpu->f[11] * cpu->f[13];
|
|
/* 02C59CEC */ cpu->r[8] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000008u, 0x0000001Fu);
|
|
/* 02C59CF0 */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02C59CF0 */ rbrew_write32(cpu->mem, _t44, cpu->r[8]);
|
|
/* 02C59CF4 */ _t45 = cpu->r[1] + 0x00000008u;
|
|
/* 02C59CF4 */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t45);
|
|
/* 02C59CF8 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], 0x0000000Cu, 0x00000014u, 0x0000001Bu);
|
|
/* 02C59CFC */ _t46 = cpu->r[4] + 0x00000028u;
|
|
/* 02C59CFC */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t46);
|
|
/* 02C59D00 */ cpu->f[11] = cpu->f[11] - cpu->f[28];
|
|
/* 02C59D04 */ _t47 = cpu->r[10] + 0x00000004u;
|
|
/* 02C59D04 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t47);
|
|
/* 02C59D08 */ cpu->r[11] = cpu->r[9] + cpu->r[11];
|
|
/* 02C59D0C */ cpu->f[1] = fma(cpu->f[7], cpu->f[9], cpu->f[8]);
|
|
/* 02C59D10 */ _t48 = cpu->r[11] + 0x0000000Cu;
|
|
/* 02C59D10 */ cpu->f[3] = rbrew_read_f32(cpu->mem, _t48);
|
|
/* 02C59D14 */ cpu->f[7] = (double)(float)cpu->f[11];
|
|
/* 02C59D18 */ _t49 = cpu->r[11] + 0x00000004u;
|
|
/* 02C59D18 */ cpu->f[4] = rbrew_read_f32(cpu->mem, _t49);
|
|
/* 02C59D1C */ cpu->f[6] = fma(cpu->f[6], cpu->f[0], cpu->f[12]);
|
|
/* 02C59D20 */ _t50 = cpu->r[11] + 0x00000008u;
|
|
/* 02C59D20 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t50);
|
|
/* 02C59D24 */ _t51 = cpu->r[10] + 0x0000000Cu;
|
|
/* 02C59D24 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t51);
|
|
/* 02C59D28 */ cpu->f[5] = cpu->f[7] * cpu->f[13];
|
|
/* 02C59D2C */ _t52 = cpu->r[11] + 0x00000000u;
|
|
/* 02C59D2C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t52);
|
|
/* 02C59D30 */ _t53 = cpu->r[1] + 0x00000020u;
|
|
/* 02C59D30 */ rbrew_write_f64(cpu->mem, _t53, cpu->f[6]);
|
|
/* 02C59D34 */ _t54 = cpu->r[1] + 0x00000024u;
|
|
/* 02C59D34 */ cpu->r[11] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02C59D38 */ cpu->f[31] = fma(cpu->f[8], cpu->f[5], cpu->f[10]);
|
|
/* 02C59D3C */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000008u, 0x0000001Fu);
|
|
/* 02C59D40 */ cpu->f[30] = fma(cpu->f[29], cpu->f[9], cpu->f[30]);
|
|
/* 02C59D44 */ _t55 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02C59D44 */ rbrew_write32(cpu->mem, _t55, cpu->r[10]);
|
|
/* 02C59D48 */ _t56 = cpu->r[1] + 0x00000008u;
|
|
/* 02C59D48 */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t56);
|
|
/* 02C59D4C */ cpu->f[4] = fma(cpu->f[3], cpu->f[5], cpu->f[4]);
|
|
/* 02C59D50 */ cpu->f[11] = cpu->f[11] - cpu->f[28];
|
|
/* 02C59D54 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], 0x0000000Cu, 0x00000014u, 0x0000001Bu);
|
|
/* 02C59D58 */ cpu->f[2] = cpu->f[1] * cpu->f[31];
|
|
/* 02C59D5C */ cpu->r[11] = cpu->r[9] + cpu->r[11];
|
|
/* 02C59D60 */ cpu->f[11] = (double)(float)cpu->f[11];
|
|
/* 02C59D64 */ _t57 = cpu->r[11] + 0x00000008u;
|
|
/* 02C59D64 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t57);
|
|
/* 02C59D68 */ cpu->f[8] = -cpu->f[31];
|
|
/* 02C59D6C */ _t58 = cpu->r[11] + 0x0000000Cu;
|
|
/* 02C59D6C */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t58);
|
|
/* 02C59D70 */ cpu->f[6] = cpu->f[11] * cpu->f[13];
|
|
/* 02C59D74 */ _t59 = cpu->r[11] + 0x00000000u;
|
|
/* 02C59D74 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t59);
|
|
/* 02C59D78 */ _t60 = cpu->r[11] + 0x00000004u;
|
|
/* 02C59D78 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t60);
|
|
/* 02C59D7C */ cpu->f[3] = fma(cpu->f[7], cpu->f[6], cpu->f[9]);
|
|
/* 02C59D80 */ cpu->f[5] = fma(cpu->f[10], cpu->f[6], cpu->f[11]);
|
|
/* 02C59D84 */ cpu->f[10] = cpu->f[4] * cpu->f[3];
|
|
/* 02C59D88 */ cpu->f[6] = cpu->f[30] * cpu->f[5];
|
|
/* 02C59D8C */ cpu->f[7] = cpu->f[30] * cpu->f[3];
|
|
/* 02C59D90 */ cpu->f[11] = cpu->f[1] * cpu->f[3];
|
|
/* 02C59D94 */ cpu->f[9] = fma(cpu->f[2], cpu->f[5], -(cpu->f[7]));
|
|
/* 02C59D98 */ _t61 = cpu->r[5] + 0x00000020u;
|
|
/* 02C59D98 */ rbrew_write_f32(cpu->mem, _t61, cpu->f[10]);
|
|
/* 02C59D9C */ cpu->f[10] = fma(cpu->f[6], cpu->f[31], cpu->f[11]);
|
|
/* 02C59DA0 */ _t62 = cpu->r[5] + 0x00000030u;
|
|
/* 02C59DA0 */ rbrew_write_f32(cpu->mem, _t62, cpu->f[8]);
|
|
/* 02C59DA4 */ cpu->f[11] = fma(cpu->f[2], cpu->f[3], cpu->f[6]);
|
|
/* 02C59DA8 */ _t63 = cpu->r[5] + 0x00000014u;
|
|
/* 02C59DA8 */ rbrew_write_f32(cpu->mem, _t63, cpu->f[9]);
|
|
/* 02C59DAC */ cpu->f[9] = cpu->f[1] * cpu->f[4];
|
|
/* 02C59DB0 */ _t64 = cpu->r[5] + 0x00000024u;
|
|
/* 02C59DB0 */ rbrew_write_f32(cpu->mem, _t64, cpu->f[11]);
|
|
/* 02C59DB4 */ cpu->f[11] = cpu->f[1] * cpu->f[5];
|
|
/* 02C59DB8 */ _t65 = cpu->r[5] + 0x00000034u;
|
|
/* 02C59DB8 */ rbrew_write_f32(cpu->mem, _t65, cpu->f[9]);
|
|
/* 02C59DBC */ cpu->f[9] = cpu->f[4] * cpu->f[5];
|
|
/* 02C59DC0 */ _t66 = cpu->r[5] + 0x00000018u;
|
|
/* 02C59DC0 */ rbrew_write_f32(cpu->mem, _t66, cpu->f[10]);
|
|
/* 02C59DC4 */ cpu->f[11] = fma(cpu->f[7], cpu->f[31], -(cpu->f[11]));
|
|
/* 02C59DC8 */ _t67 = cpu->r[5] + 0x00000010u;
|
|
/* 02C59DC8 */ rbrew_write_f32(cpu->mem, _t67, cpu->f[9]);
|
|
/* 02C59DCC */ cpu->f[10] = cpu->f[30] * cpu->f[4];
|
|
/* 02C59DD0 */ _t68 = cpu->r[5] + 0x00000028u;
|
|
/* 02C59DD0 */ rbrew_write_f32(cpu->mem, _t68, cpu->f[11]);
|
|
/* 02C59DD4 */ _t69 = cpu->r[5] + 0x00000038u;
|
|
/* 02C59DD4 */ rbrew_write_f32(cpu->mem, _t69, cpu->f[10]);
|
|
/* 02C59DD8 */ _t70 = cpu->r[4] + 0x00000030u;
|
|
/* 02C59DD8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t70);
|
|
/* 02C59DDC */ _t71 = cpu->r[5] + 0x0000001Cu;
|
|
/* 02C59DDC */ rbrew_write_f32(cpu->mem, _t71, cpu->f[11]);
|
|
/* 02C59DE0 */ _t72 = cpu->r[4] + 0x00000034u;
|
|
/* 02C59DE0 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t72);
|
|
/* 02C59DE4 */ _t73 = cpu->r[5] + 0x0000002Cu;
|
|
/* 02C59DE4 */ rbrew_write_f32(cpu->mem, _t73, cpu->f[10]);
|
|
/* 02C59DE8 */ _t74 = cpu->r[4] + 0x00000038u;
|
|
/* 02C59DE8 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t74);
|
|
/* 02C59DEC */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 02C59DEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02C59DF0 */ cpu->r[7] = cpu->r[7] + 0x00000040u;
|
|
/* 02C59DF4 */ _t75 = cpu->r[5] + 0x0000003Cu;
|
|
/* 02C59DF4 */ rbrew_write_f32(cpu->mem, _t75, cpu->f[11]);
|
|
/* 02C59DF8 */ _t76 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02C59DF8 */ _t77 = _t76 & 0x00000001u;
|
|
/* 02C59DF8 */ if (_t77) goto L_02C59F24; else goto L_02C59DFC;
|
|
L_02C59DFC: ; // 0x2c59dfc
|
|
/* 02C59DFC */ _t78 = cpu->r[3] + 0x00000000u;
|
|
/* 02C59DFC */ cpu->r[8] = rbrew_read32(cpu->mem, _t78);
|
|
/* 02C59E00 */ goto L_02C59C44;
|
|
L_02C59E04: ; // 0x2c59e04
|
|
/* 02C59E04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02C59E08 */ _t79 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02C59E08 */ _t80 = _t79 & 0x00000001u;
|
|
/* 02C59E08 */ if (_t80) goto L_02C59E0C; else goto L_02C59F24;
|
|
L_02C59E0C: ; // 0x2c59e0c
|
|
/* 02C59E0C */ cpu->r[11] = 0x101B0000u;
|
|
/* 02C59E10 */ _t81 = cpu->r[11] + 0xFFFFEF7Cu;
|
|
/* 02C59E10 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t81);
|
|
/* 02C59E14 */ cpu->r[7] = 0x00000000u;
|
|
L_02C59E18: ; // 0x2c59e18
|
|
/* 02C59E18 */ _t82 = cpu->r[8] + 0x00000014u;
|
|
/* 02C59E18 */ cpu->r[9] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02C59E1C */ cpu->r[11] = 0x00000000u;
|
|
/* 02C59E20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02C59E24 */ cpu->r[10] = cpu->r[8] + 0x00000014u;
|
|
/* 02C59E28 */ _t83 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02C59E28 */ _t84 = _t83 & 0x00000001u;
|
|
/* 02C59E28 */ if (_t84) goto L_02C59E30; else goto L_02C59E2C;
|
|
L_02C59E2C: ; // 0x2c59e2c
|
|
/* 02C59E2C */ cpu->r[11] = cpu->r[10] + cpu->r[9];
|
|
L_02C59E30: ; // 0x2c59e30
|
|
/* 02C59E30 */ cpu->r[10] = cpu->r[11] + cpu->r[7];
|
|
/* 02C59E34 */ cpu->r[11] = 0x00000003u;
|
|
/* 02C59E38 */ _t85 = cpu->r[10] + 0x00000010u;
|
|
/* 02C59E38 */ cpu->r[9] = rbrew_read32(cpu->mem, _t85);
|
|
/* 02C59E3C */ cpu->ctr = cpu->r[11];
|
|
/* 02C59E40 */ cpu->r[11] = cpu->r[6] + cpu->r[7];
|
|
/* 02C59E44 */ cpu->r[8] = cpu->r[9] & 0x0F870000u;
|
|
/* 02C59E44 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 02C59E48 */ cpu->r[9] = 0x00000000u;
|
|
/* 02C59E4C */ _t86 = cpu->r[6] + cpu->r[7];
|
|
/* 02C59E4C */ rbrew_write32(cpu->mem, _t86, cpu->r[8]);
|
|
L_02C59E50: ; // 0x2c59e50
|
|
/* 02C59E50 */ cpu->r[8] = cpu->r[10] + 0x00000014u;
|
|
/* 02C59E54 */ _t87 = cpu->r[8] + cpu->r[9];
|
|
/* 02C59E54 */ cpu->r[13] = rbrew_read32(cpu->mem, _t87);
|
|
/* 02C59E58 */ cpu->r[8] = cpu->r[11] + 0x00000004u;
|
|
/* 02C59E5C */ _t88 = cpu->r[8] + cpu->r[9];
|
|
/* 02C59E5C */ rbrew_write32(cpu->mem, _t88, cpu->r[13]);
|
|
/* 02C59E60 */ cpu->r[9] = cpu->r[9] + 0x00000004u;
|
|
/* 02C59E64 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 02C59E64 */ _t89 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 02C59E64 */ _t90 = _t89 >> (0x00000002u & 31u);
|
|
/* 02C59E64 */ _t91 = _t90 & 0x00000001u;
|
|
/* 02C59E64 */ if (_t91) goto L_02C59E50; else goto L_02C59E68;
|
|
L_02C59E68: ; // 0x2c59e68
|
|
/* 02C59E68 */ _t92 = cpu->r[10] + 0x0000002Cu;
|
|
/* 02C59E68 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t92);
|
|
/* 02C59E6C */ _t93 = cpu->r[10] + 0x00000024u;
|
|
/* 02C59E6C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t93);
|
|
/* 02C59E70 */ cpu->f[10] = cpu->f[12] + cpu->f[12];
|
|
/* 02C59E74 */ _t94 = cpu->r[10] + 0x00000020u;
|
|
/* 02C59E74 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t94);
|
|
/* 02C59E78 */ cpu->f[13] = cpu->f[9] + cpu->f[9];
|
|
/* 02C59E7C */ cpu->f[12] = cpu->f[11] + cpu->f[11];
|
|
/* 02C59E80 */ cpu->f[4] = cpu->f[10] * cpu->f[9];
|
|
/* 02C59E84 */ cpu->f[30] = cpu->f[13] * cpu->f[9];
|
|
/* 02C59E88 */ _t95 = cpu->r[10] + 0x00000028u;
|
|
/* 02C59E88 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t95);
|
|
/* 02C59E8C */ cpu->f[31] = cpu->f[12] * cpu->f[9];
|
|
/* 02C59E90 */ cpu->f[3] = cpu->f[10] * cpu->f[8];
|
|
/* 02C59E94 */ cpu->f[1] = cpu->f[12] * cpu->f[8];
|
|
/* 02C59E98 */ cpu->f[5] = cpu->f[8] + cpu->f[8];
|
|
/* 02C59E9C */ cpu->f[9] = cpu->f[10] * cpu->f[11];
|
|
/* 02C59EA0 */ cpu->f[10] = cpu->f[0] - cpu->f[30];
|
|
/* 02C59EA4 */ cpu->f[2] = cpu->f[13] * cpu->f[8];
|
|
/* 02C59EA8 */ cpu->f[8] = cpu->f[5] * cpu->f[8];
|
|
/* 02C59EAC */ cpu->f[6] = cpu->f[31] - cpu->f[3];
|
|
/* 02C59EB0 */ cpu->f[13] = -fma(cpu->f[12], cpu->f[11], -(cpu->f[0]));
|
|
/* 02C59EB4 */ cpu->f[7] = cpu->f[1] + cpu->f[4];
|
|
/* 02C59EB8 */ cpu->f[12] = cpu->f[31] + cpu->f[3];
|
|
/* 02C59EBC */ _t96 = cpu->r[11] + 0x00000014u;
|
|
/* 02C59EBC */ rbrew_write_f32(cpu->mem, _t96, cpu->f[6]);
|
|
/* 02C59EC0 */ cpu->f[11] = cpu->f[13] - cpu->f[8];
|
|
/* 02C59EC4 */ _t97 = cpu->r[11] + 0x00000018u;
|
|
/* 02C59EC4 */ rbrew_write_f32(cpu->mem, _t97, cpu->f[7]);
|
|
/* 02C59EC8 */ cpu->f[10] = cpu->f[10] - cpu->f[8];
|
|
/* 02C59ECC */ _t98 = cpu->r[11] + 0x00000020u;
|
|
/* 02C59ECC */ rbrew_write_f32(cpu->mem, _t98, cpu->f[12]);
|
|
/* 02C59ED0 */ cpu->f[12] = cpu->f[2] - cpu->f[9];
|
|
/* 02C59ED4 */ _t99 = cpu->r[11] + 0x00000024u;
|
|
/* 02C59ED4 */ rbrew_write_f32(cpu->mem, _t99, cpu->f[11]);
|
|
/* 02C59ED8 */ _t100 = cpu->r[11] + 0x00000010u;
|
|
/* 02C59ED8 */ rbrew_write_f32(cpu->mem, _t100, cpu->f[10]);
|
|
/* 02C59EDC */ cpu->f[10] = cpu->f[1] - cpu->f[4];
|
|
/* 02C59EE0 */ _t101 = cpu->r[11] + 0x00000028u;
|
|
/* 02C59EE0 */ rbrew_write_f32(cpu->mem, _t101, cpu->f[12]);
|
|
/* 02C59EE4 */ cpu->f[11] = cpu->f[2] + cpu->f[9];
|
|
/* 02C59EE8 */ cpu->f[12] = cpu->f[13] - cpu->f[30];
|
|
/* 02C59EEC */ _t102 = cpu->r[11] + 0x00000030u;
|
|
/* 02C59EEC */ rbrew_write_f32(cpu->mem, _t102, cpu->f[10]);
|
|
/* 02C59EF0 */ _t103 = cpu->r[11] + 0x00000034u;
|
|
/* 02C59EF0 */ rbrew_write_f32(cpu->mem, _t103, cpu->f[11]);
|
|
/* 02C59EF4 */ _t104 = cpu->r[11] + 0x00000038u;
|
|
/* 02C59EF4 */ rbrew_write_f32(cpu->mem, _t104, cpu->f[12]);
|
|
/* 02C59EF8 */ _t105 = cpu->r[10] + 0x00000030u;
|
|
/* 02C59EF8 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t105);
|
|
/* 02C59EFC */ _t106 = cpu->r[11] + 0x0000001Cu;
|
|
/* 02C59EFC */ rbrew_write_f32(cpu->mem, _t106, cpu->f[13]);
|
|
/* 02C59F00 */ _t107 = cpu->r[10] + 0x00000034u;
|
|
/* 02C59F00 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t107);
|
|
/* 02C59F04 */ _t108 = cpu->r[11] + 0x0000002Cu;
|
|
/* 02C59F04 */ rbrew_write_f32(cpu->mem, _t108, cpu->f[12]);
|
|
/* 02C59F08 */ _t109 = cpu->r[10] + 0x00000038u;
|
|
/* 02C59F08 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t109);
|
|
/* 02C59F0C */ cpu->r[7] = cpu->r[7] + 0x00000040u;
|
|
/* 02C59F10 */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 02C59F10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02C59F14 */ _t110 = cpu->r[11] + 0x0000003Cu;
|
|
/* 02C59F14 */ rbrew_write_f32(cpu->mem, _t110, cpu->f[13]);
|
|
/* 02C59F18 */ _t111 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02C59F18 */ _t112 = _t111 & 0x00000001u;
|
|
/* 02C59F18 */ if (_t112) goto L_02C59F24; else goto L_02C59F1C;
|
|
L_02C59F1C: ; // 0x2c59f1c
|
|
/* 02C59F1C */ _t113 = cpu->r[3] + 0x00000000u;
|
|
/* 02C59F1C */ cpu->r[8] = rbrew_read32(cpu->mem, _t113);
|
|
/* 02C59F20 */ goto L_02C59E18;
|
|
L_02C59F24: ; // 0x2c59f24
|
|
/* 02C59F24 */ _t114 = cpu->r[1] + 0x00000060u;
|
|
/* 02C59F24 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t114);
|
|
/* 02C59F28 */ _t115 = cpu->r[1] + 0x00000050u;
|
|
/* 02C59F28 */ cpu->f[30] = rbrew_read_f32(cpu->mem, _t115);
|
|
/* 02C59F2C */ _t116 = cpu->r[1] + 0x00000058u;
|
|
/* 02C59F2C */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t116);
|
|
/* 02C59F30 */ _t117 = cpu->r[1] + 0x00000048u;
|
|
/* 02C59F30 */ cpu->f[30] = rbrew_read_f64(cpu->mem, _t117);
|
|
/* 02C59F34 */ _t118 = cpu->r[1] + 0x00000040u;
|
|
/* 02C59F34 */ cpu->f[29] = rbrew_read_f32(cpu->mem, _t118);
|
|
/* 02C59F38 */ _t119 = cpu->r[1] + 0x00000030u;
|
|
/* 02C59F38 */ cpu->f[28] = rbrew_read_f32(cpu->mem, _t119);
|
|
/* 02C59F3C */ _t120 = cpu->r[1] + 0x00000038u;
|
|
/* 02C59F3C */ cpu->f[29] = rbrew_read_f64(cpu->mem, _t120);
|
|
/* 02C59F40 */ _t121 = cpu->r[1] + 0x00000028u;
|
|
/* 02C59F40 */ cpu->f[28] = rbrew_read_f64(cpu->mem, _t121);
|
|
/* 02C59F44 */ _t122 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02C59F44 */ _t123 = _t122 & 0x00000001u;
|
|
/* 02C59F44 */ if (_t123) goto L_02C59F48; // else: addr-0 trap, fall-through
|
|
L_02C59F48: ; // 0x2c59f48
|
|
/* 02C59F48 */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 02C59F4C */ return;
|
|
}
|
|
|
|
// fn_0298E1E4 @ 0x298e1e4
|
|
void Gambit_fn_0298E1E4(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_0298E1E4: ; // 0x298e1e4
|
|
/* 0298E1E4 */ _t0 = cpu->r[3] + 0x000000AAu;
|
|
/* 0298E1E4 */ cpu->r[3] = rbrew_read16(cpu->mem, _t0);
|
|
/* 0298E1E8 */ return;
|
|
}
|
|
|
|
// fn_0298E1EC @ 0x298e1ec
|
|
void Gambit_fn_0298E1EC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_0298E1EC: ; // 0x298e1ec
|
|
/* 0298E1EC */ cpu->r[0] = cpu->lr;
|
|
/* 0298E1F0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298E1F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298E1F0 */ cpu->r[1] = _t0;
|
|
/* 0298E1F4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E1F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298E1F8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298E1F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298E1FC */ cpu->r[31] = cpu->r[4];
|
|
/* 0298E200 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E200 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298E204 */ _t4 = cpu->r[31] + 0x00000004u;
|
|
/* 0298E204 */ cpu->r[8] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298E208 */ _t5 = cpu->r[8] + 0x00000014u;
|
|
/* 0298E208 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E20C */ _t6 = cpu->r[3] + 0x00000094u;
|
|
/* 0298E20C */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298E210 */ cpu->ctr = cpu->r[9];
|
|
/* 0298E214 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298E218 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298E21C */ _t7 = cpu->r[30] + 0x00000018u;
|
|
/* 0298E21C */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298E220 */ cpu->r[11] = cpu->r[30] + 0x00000018u;
|
|
/* 0298E224 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298E228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E22C */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 0298E22C */ cpu->r[4] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298E230 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E230 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298E230 */ if (_t10) goto L_0298E238; else goto L_0298E234;
|
|
L_0298E234: ; // 0x298e234
|
|
/* 0298E234 */ cpu->r[3] = cpu->r[11] + cpu->r[0];
|
|
L_0298E238: ; // 0x298e238
|
|
/* 0298E238 */ Gambit_fn_02C60644(cpu);
|
|
/* 0298E23C */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E23C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298E240 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 0298E240 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298E244 */ cpu->lr = cpu->r[0];
|
|
/* 0298E248 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E248 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298E24C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298E250 */ return;
|
|
}
|
|
|
|
// fn_0298E1F0 @ 0x298e1f0
|
|
void Gambit_fn_0298E1F0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13;
|
|
|
|
L_0298E1F0: ; // 0x298e1f0
|
|
/* 0298E1F0 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298E1F0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298E1F0 */ cpu->r[1] = _t0;
|
|
/* 0298E1F4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E1F4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298E1F8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298E1F8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298E1FC */ cpu->r[31] = cpu->r[4];
|
|
/* 0298E200 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E200 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298E204 */ _t4 = cpu->r[31] + 0x00000004u;
|
|
/* 0298E204 */ cpu->r[8] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298E208 */ _t5 = cpu->r[8] + 0x00000014u;
|
|
/* 0298E208 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E20C */ _t6 = cpu->r[3] + 0x00000094u;
|
|
/* 0298E20C */ cpu->r[30] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298E210 */ cpu->ctr = cpu->r[9];
|
|
/* 0298E214 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298E218 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298E21C */ _t7 = cpu->r[30] + 0x00000018u;
|
|
/* 0298E21C */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298E220 */ cpu->r[11] = cpu->r[30] + 0x00000018u;
|
|
/* 0298E224 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298E228 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E22C */ _t8 = cpu->r[31] + 0x00000000u;
|
|
/* 0298E22C */ cpu->r[4] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298E230 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E230 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298E230 */ if (_t10) goto L_0298E238; else goto L_0298E234;
|
|
L_0298E234: ; // 0x298e234
|
|
/* 0298E234 */ cpu->r[3] = cpu->r[11] + cpu->r[0];
|
|
L_0298E238: ; // 0x298e238
|
|
/* 0298E238 */ Gambit_fn_02C60644(cpu);
|
|
/* 0298E23C */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E23C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298E240 */ _t12 = cpu->r[1] + 0x00000008u;
|
|
/* 0298E240 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298E244 */ cpu->lr = cpu->r[0];
|
|
/* 0298E248 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E248 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298E24C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298E250 */ return;
|
|
}
|
|
|
|
// fn_0298E254 @ 0x298e254
|
|
void Gambit_fn_0298E254(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_0298E254: ; // 0x298e254
|
|
/* 0298E254 */ cpu->r[0] = cpu->lr;
|
|
/* 0298E258 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298E258 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298E258 */ cpu->r[1] = _t0;
|
|
/* 0298E25C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E25C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298E260 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x0000003Cu);
|
|
/* 0298E264 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E264 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298E268 */ _t3 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E268 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298E26C */ _t4 = cpu->r[12] + cpu->r[11];
|
|
/* 0298E26C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298E270 */ _t5 = cpu->r[12] + 0x00000004u;
|
|
/* 0298E270 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E274 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298E278 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E27C */ cpu->r[10] = cpu->r[12] + 0x00000004u;
|
|
/* 0298E280 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E280 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298E280 */ if (_t7) goto L_0298E288; else goto L_0298E284;
|
|
L_0298E284: ; // 0x298e284
|
|
/* 0298E284 */ cpu->r[31] = cpu->r[10] + cpu->r[0];
|
|
L_0298E288: ; // 0x298e288
|
|
/* 0298E288 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298E28C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E28C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298E28C */ if (_t9) goto L_0298E290; else goto L_0298E2A0;
|
|
L_0298E290: ; // 0x298e290
|
|
/* 0298E290 */ cpu->r[3] = 0x00000008u;
|
|
/* 0298E294 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298E298 */ cpu->r[4] = cpu->r[3];
|
|
/* 0298E298 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298E29C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E29C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298E29C */ if (_t11) goto L_0298E2B0; else goto L_0298E2A0;
|
|
L_0298E2A0: ; // 0x298e2a0
|
|
/* 0298E2A0 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298E2A4 */ _t12 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E2A4 */ rbrew_write32(cpu->mem, _t12, cpu->r[31]);
|
|
/* 0298E2A8 */ cpu->r[0] = cpu->r[0] + 0xFFFFF550u;
|
|
/* 0298E2AC */ _t13 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E2AC */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
L_0298E2B0: ; // 0x298e2b0
|
|
/* 0298E2B0 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E2B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E2B4 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E2B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298E2B8 */ cpu->lr = cpu->r[0];
|
|
/* 0298E2BC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298E2C0 */ return;
|
|
}
|
|
|
|
// fn_0298E258 @ 0x298e258
|
|
void Gambit_fn_0298E258(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15;
|
|
|
|
L_0298E258: ; // 0x298e258
|
|
/* 0298E258 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298E258 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298E258 */ cpu->r[1] = _t0;
|
|
/* 0298E25C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E25C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298E260 */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x0000003Cu);
|
|
/* 0298E264 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E264 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298E268 */ _t3 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E268 */ cpu->r[12] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298E26C */ _t4 = cpu->r[12] + cpu->r[11];
|
|
/* 0298E26C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298E270 */ _t5 = cpu->r[12] + 0x00000004u;
|
|
/* 0298E270 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E274 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298E278 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E27C */ cpu->r[10] = cpu->r[12] + 0x00000004u;
|
|
/* 0298E280 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E280 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298E280 */ if (_t7) goto L_0298E288; else goto L_0298E284;
|
|
L_0298E284: ; // 0x298e284
|
|
/* 0298E284 */ cpu->r[31] = cpu->r[10] + cpu->r[0];
|
|
L_0298E288: ; // 0x298e288
|
|
/* 0298E288 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298E28C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E28C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298E28C */ if (_t9) goto L_0298E290; else goto L_0298E2A0;
|
|
L_0298E290: ; // 0x298e290
|
|
/* 0298E290 */ cpu->r[3] = 0x00000008u;
|
|
/* 0298E294 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298E298 */ cpu->r[4] = cpu->r[3];
|
|
/* 0298E298 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 0298E29C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E29C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298E29C */ if (_t11) goto L_0298E2B0; else goto L_0298E2A0;
|
|
L_0298E2A0: ; // 0x298e2a0
|
|
/* 0298E2A0 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298E2A4 */ _t12 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E2A4 */ rbrew_write32(cpu->mem, _t12, cpu->r[31]);
|
|
/* 0298E2A8 */ cpu->r[0] = cpu->r[0] + 0xFFFFF550u;
|
|
/* 0298E2AC */ _t13 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E2AC */ rbrew_write32(cpu->mem, _t13, cpu->r[0]);
|
|
L_0298E2B0: ; // 0x298e2b0
|
|
/* 0298E2B0 */ _t14 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E2B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E2B4 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E2B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298E2B8 */ cpu->lr = cpu->r[0];
|
|
/* 0298E2BC */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298E2C0 */ return;
|
|
}
|
|
|
|
// fn_0298E2C4 @ 0x298e2c4
|
|
void Gambit_fn_0298E2C4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_0298E2C4: ; // 0x298e2c4
|
|
/* 0298E2C4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298E2C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298E2C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298E2C8 */ cpu->r[1] = _t0;
|
|
/* 0298E2CC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E2CC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298E2D0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298E2D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298E2D4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E2D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298E2D8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298E2D8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298E2DC */ cpu->r[29] = cpu->r[5];
|
|
/* 0298E2E0 */ _t5 = cpu->r[29] + 0x00000004u;
|
|
/* 0298E2E0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E2E4 */ _t6 = cpu->r[9] + 0x00000014u;
|
|
/* 0298E2E4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298E2E8 */ _t7 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E2E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298E2EC */ cpu->ctr = cpu->r[10];
|
|
/* 0298E2F0 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298E2F4 */ cpu->r[30] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E2F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298E2FC */ _t8 = cpu->r[31] + cpu->r[30];
|
|
/* 0298E2FC */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298E300 */ _t9 = cpu->r[8] + 0x00000038u;
|
|
/* 0298E300 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E304 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298E308 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 0298E308 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298E30C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E310 */ cpu->r[12] = cpu->r[8] + 0x00000038u;
|
|
/* 0298E314 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E314 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298E314 */ if (_t12) goto L_0298E31C; else goto L_0298E318;
|
|
L_0298E318: ; // 0x298e318
|
|
/* 0298E318 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
L_0298E31C: ; // 0x298e31c
|
|
/* 0298E31C */ Gambit_fn_02C60644(cpu);
|
|
/* 0298E320 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E320 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298E324 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298E324 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E328 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 0298E328 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298E32C */ cpu->lr = cpu->r[0];
|
|
/* 0298E330 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E330 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298E334 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298E338 */ return;
|
|
}
|
|
|
|
// fn_0298E2C8 @ 0x298e2c8
|
|
void Gambit_fn_0298E2C8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_0298E2C8: ; // 0x298e2c8
|
|
/* 0298E2C8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298E2C8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298E2C8 */ cpu->r[1] = _t0;
|
|
/* 0298E2CC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E2CC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298E2D0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298E2D0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298E2D4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E2D4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298E2D8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298E2D8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298E2DC */ cpu->r[29] = cpu->r[5];
|
|
/* 0298E2E0 */ _t5 = cpu->r[29] + 0x00000004u;
|
|
/* 0298E2E0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E2E4 */ _t6 = cpu->r[9] + 0x00000014u;
|
|
/* 0298E2E4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298E2E8 */ _t7 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E2E8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298E2EC */ cpu->ctr = cpu->r[10];
|
|
/* 0298E2F0 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298E2F4 */ cpu->r[30] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E2F8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298E2FC */ _t8 = cpu->r[31] + cpu->r[30];
|
|
/* 0298E2FC */ cpu->r[8] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298E300 */ _t9 = cpu->r[8] + 0x00000038u;
|
|
/* 0298E300 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E304 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298E308 */ _t10 = cpu->r[29] + 0x00000000u;
|
|
/* 0298E308 */ cpu->r[4] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298E30C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E310 */ cpu->r[12] = cpu->r[8] + 0x00000038u;
|
|
/* 0298E314 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E314 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298E314 */ if (_t12) goto L_0298E31C; else goto L_0298E318;
|
|
L_0298E318: ; // 0x298e318
|
|
/* 0298E318 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
L_0298E31C: ; // 0x298e31c
|
|
/* 0298E31C */ Gambit_fn_02C60644(cpu);
|
|
/* 0298E320 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298E320 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298E324 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298E324 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E328 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 0298E328 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298E32C */ cpu->lr = cpu->r[0];
|
|
/* 0298E330 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 0298E330 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298E334 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298E338 */ return;
|
|
}
|
|
|
|
// fn_0298E33C @ 0x298e33c
|
|
void Gambit_fn_0298E33C(CPUState* cpu) {
|
|
uint32_t _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_0298E33C: ; // 0x298e33c
|
|
/* 0298E33C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E340 */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E340 */ cpu->r[9] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E344 */ cpu->r[4] = cpu->r[9] + cpu->r[0];
|
|
/* 0298E348 */ _t1 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E348 */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E34C */ _t2 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E34C */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E350 */ cpu->r[12] = 0x00000000u;
|
|
/* 0298E354 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298E358 */ cpu->r[8] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E35C */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E35C */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298E35C */ if (_t4) goto L_0298E364; else goto L_0298E360;
|
|
L_0298E360: ; // 0x298e360
|
|
/* 0298E360 */ cpu->r[12] = cpu->r[8] + cpu->r[7];
|
|
L_0298E364: ; // 0x298e364
|
|
/* 0298E364 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E368 */ cpu->r[10] = cpu->r[12] + cpu->r[0];
|
|
/* 0298E36C */ _t5 = cpu->r[10] + 0x00000004u;
|
|
/* 0298E36C */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E370 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E374 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E374 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298E374 */ if (_t7) goto L_0298E3A8; else goto L_0298E378;
|
|
L_0298E378: ; // 0x298e378
|
|
/* 0298E378 */ _t8 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E378 */ cpu->r[7] = rbrew_read16(cpu->mem, _t8);
|
|
/* 0298E37C */ /* nop */
|
|
/* 0298E380 */ cpu->r[9] = 0x00000001u;
|
|
/* 0298E384 */ _t9 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E384 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E388 */ cpu->r[7] = cpu->r[7] | 0x00000004u;
|
|
/* 0298E38C */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E390 */ _t10 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E390 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[7]);
|
|
/* 0298E394 */ _t11 = cpu->r[8] + cpu->r[0];
|
|
/* 0298E394 */ cpu->r[7] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298E398 */ cpu->r[9] = rbrew_rlwinm(cpu->r[9], cpu->r[5], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E39C */ cpu->r[7] = cpu->r[7] | cpu->r[9];
|
|
/* 0298E3A0 */ _t12 = cpu->r[8] + cpu->r[0];
|
|
/* 0298E3A0 */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 0298E3A4 */ _t13 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E3A4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
L_0298E3A8: ; // 0x298e3a8
|
|
/* 0298E3A8 */ _t14 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E3A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E3A8 */ cpu->r[9] = _t14;
|
|
/* 0298E3AC */ cpu->r[8] = 0x00000000u;
|
|
/* 0298E3B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E3B4 */ _t15 = cpu->r[10] + 0x0000000Cu;
|
|
/* 0298E3B4 */ cpu->r[11] = rbrew_read16(cpu->mem, _t15);
|
|
/* 0298E3B8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E3B8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298E3B8 */ if (_t17) goto L_0298E3C0; else goto L_0298E3BC;
|
|
L_0298E3BC: ; // 0x298e3bc
|
|
/* 0298E3BC */ cpu->r[8] = cpu->r[9] + cpu->r[0];
|
|
L_0298E3C0: ; // 0x298e3c0
|
|
/* 0298E3C0 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x00000014u);
|
|
/* 0298E3C4 */ cpu->r[8] = cpu->r[8] + cpu->r[9];
|
|
/* 0298E3C8 */ _t18 = cpu->r[8] + 0x00000004u;
|
|
/* 0298E3C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298E3CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E3D0 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E3D0 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298E3D0 */ if (_t20) goto L_0298E400; else goto L_0298E3D4;
|
|
L_0298E3D4: ; // 0x298e3d4
|
|
/* 0298E3D4 */ _t21 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E3D4 */ cpu->r[12] = rbrew_read16(cpu->mem, _t21);
|
|
/* 0298E3D8 */ /* nop */
|
|
/* 0298E3DC */ cpu->r[7] = 0x00000001u;
|
|
/* 0298E3E0 */ _t22 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E3E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298E3E4 */ cpu->r[12] = cpu->r[12] | 0x00000004u;
|
|
/* 0298E3E8 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E3EC */ _t23 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E3EC */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[12]);
|
|
/* 0298E3F0 */ _t24 = cpu->r[8] + cpu->r[9];
|
|
/* 0298E3F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298E3F4 */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], cpu->r[11], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E3F8 */ cpu->r[0] = cpu->r[0] | cpu->r[7];
|
|
/* 0298E3FC */ _t25 = cpu->r[8] + cpu->r[9];
|
|
/* 0298E3FC */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
L_0298E400: ; // 0x298e400
|
|
/* 0298E400 */ _t26 = cpu->r[4] + 0x00000028u;
|
|
/* 0298E400 */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298E404 */ _t27 = cpu->r[10] + 0x00000002u;
|
|
/* 0298E404 */ cpu->r[0] = rbrew_read16(cpu->mem, _t27);
|
|
/* 0298E408 */ _t28 = cpu->r[9] + cpu->r[0];
|
|
/* 0298E408 */ rbrew_write32(cpu->mem, _t28, cpu->r[6]);
|
|
/* 0298E40C */ return;
|
|
}
|
|
|
|
// fn_0298E410 @ 0x298e410
|
|
void Gambit_fn_0298E410(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_0298E410: ; // 0x298e410
|
|
/* 0298E410 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E414 */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E414 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E418 */ _t1 = cpu->r[12] + cpu->r[0];
|
|
/* 0298E418 */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E41C */ cpu->r[7] = cpu->r[12] + cpu->r[0];
|
|
/* 0298E420 */ _t2 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E420 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E424 */ cpu->r[12] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E428 */ cpu->r[10] = 0x00000000u;
|
|
/* 0298E42C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E430 */ _t3 = cpu->r[7] + 0x00000028u;
|
|
/* 0298E430 */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298E434 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E434 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298E434 */ if (_t5) goto L_0298E43C; else goto L_0298E438;
|
|
L_0298E438: ; // 0x298e438
|
|
/* 0298E438 */ cpu->r[10] = cpu->r[12] + cpu->r[0];
|
|
L_0298E43C: ; // 0x298e43c
|
|
/* 0298E43C */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E440 */ cpu->r[7] = cpu->r[10] + cpu->r[8];
|
|
/* 0298E444 */ _t6 = cpu->r[7] + 0x00000002u;
|
|
/* 0298E444 */ cpu->r[10] = rbrew_read16(cpu->mem, _t6);
|
|
/* 0298E448 */ _t7 = cpu->r[9] + cpu->r[10];
|
|
/* 0298E448 */ cpu->r[1] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298E44C */ return;
|
|
}
|
|
|
|
// fn_0298E450 @ 0x298e450
|
|
void Gambit_fn_0298E450(CPUState* cpu) {
|
|
uint32_t _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_0298E450: ; // 0x298e450
|
|
/* 0298E450 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E454 */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E454 */ cpu->r[7] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E458 */ _t1 = cpu->r[7] + cpu->r[0];
|
|
/* 0298E458 */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E45C */ cpu->r[6] = cpu->r[7] + cpu->r[0];
|
|
/* 0298E460 */ _t2 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E460 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E464 */ cpu->r[12] = 0x00000000u;
|
|
/* 0298E468 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298E46C */ cpu->r[8] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E470 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E470 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298E470 */ if (_t4) goto L_0298E478; else goto L_0298E474;
|
|
L_0298E474: ; // 0x298e474
|
|
/* 0298E474 */ cpu->r[12] = cpu->r[8] + cpu->r[7];
|
|
L_0298E478: ; // 0x298e478
|
|
/* 0298E478 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E47C */ cpu->r[10] = cpu->r[12] + cpu->r[8];
|
|
/* 0298E480 */ _t5 = cpu->r[10] + 0x00000004u;
|
|
/* 0298E480 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E484 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E488 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E488 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298E488 */ if (_t7) goto L_0298E4BC; else goto L_0298E48C;
|
|
L_0298E48C: ; // 0x298e48c
|
|
/* 0298E48C */ _t8 = cpu->r[6] + 0x00000004u;
|
|
/* 0298E48C */ cpu->r[7] = rbrew_read16(cpu->mem, _t8);
|
|
/* 0298E490 */ /* nop */
|
|
/* 0298E494 */ cpu->r[9] = 0x00000001u;
|
|
/* 0298E498 */ _t9 = cpu->r[6] + 0x0000000Cu;
|
|
/* 0298E498 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E49C */ cpu->r[7] = cpu->r[7] | 0x00000004u;
|
|
/* 0298E4A0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E4A4 */ _t10 = cpu->r[6] + 0x00000004u;
|
|
/* 0298E4A4 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[7]);
|
|
/* 0298E4A8 */ _t11 = cpu->r[8] + cpu->r[0];
|
|
/* 0298E4A8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298E4AC */ cpu->r[9] = rbrew_rlwinm(cpu->r[9], cpu->r[5], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E4B0 */ cpu->r[7] = cpu->r[7] | cpu->r[9];
|
|
/* 0298E4B4 */ _t12 = cpu->r[8] + cpu->r[0];
|
|
/* 0298E4B4 */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 0298E4B8 */ _t13 = cpu->r[6] + 0x00000000u;
|
|
/* 0298E4B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
L_0298E4BC: ; // 0x298e4bc
|
|
/* 0298E4BC */ _t14 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E4BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E4BC */ cpu->r[9] = _t14;
|
|
/* 0298E4C0 */ cpu->r[7] = 0x00000000u;
|
|
/* 0298E4C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E4C8 */ _t15 = cpu->r[10] + 0x0000000Cu;
|
|
/* 0298E4C8 */ cpu->r[11] = rbrew_read16(cpu->mem, _t15);
|
|
/* 0298E4CC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E4CC */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298E4CC */ if (_t17) goto L_0298E4D4; else goto L_0298E4D0;
|
|
L_0298E4D0: ; // 0x298e4d0
|
|
/* 0298E4D0 */ cpu->r[7] = cpu->r[9] + cpu->r[0];
|
|
L_0298E4D4: ; // 0x298e4d4
|
|
/* 0298E4D4 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x00000014u);
|
|
/* 0298E4D8 */ cpu->r[8] = cpu->r[7] + cpu->r[8];
|
|
/* 0298E4DC */ _t18 = cpu->r[8] + 0x00000004u;
|
|
/* 0298E4DC */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298E4E0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E4E4 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E4E4 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298E4E4 */ if (_t20) goto L_0298E514; else goto L_0298E4E8;
|
|
L_0298E4E8: ; // 0x298e4e8
|
|
/* 0298E4E8 */ _t21 = cpu->r[6] + 0x00000004u;
|
|
/* 0298E4E8 */ cpu->r[12] = rbrew_read16(cpu->mem, _t21);
|
|
/* 0298E4EC */ /* nop */
|
|
/* 0298E4F0 */ cpu->r[7] = 0x00000001u;
|
|
/* 0298E4F4 */ _t22 = cpu->r[6] + 0x0000000Cu;
|
|
/* 0298E4F4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298E4F8 */ cpu->r[12] = cpu->r[12] | 0x00000004u;
|
|
/* 0298E4FC */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E500 */ _t23 = cpu->r[6] + 0x00000004u;
|
|
/* 0298E500 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[12]);
|
|
/* 0298E504 */ _t24 = cpu->r[8] + cpu->r[9];
|
|
/* 0298E504 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298E508 */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], cpu->r[11], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E50C */ cpu->r[0] = cpu->r[0] | cpu->r[7];
|
|
/* 0298E510 */ _t25 = cpu->r[8] + cpu->r[9];
|
|
/* 0298E510 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
L_0298E514: ; // 0x298e514
|
|
/* 0298E514 */ _t26 = cpu->r[6] + 0x00000028u;
|
|
/* 0298E514 */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298E518 */ _t27 = cpu->r[10] + 0x00000002u;
|
|
/* 0298E518 */ cpu->r[0] = rbrew_read16(cpu->mem, _t27);
|
|
/* 0298E51C */ _t28 = cpu->r[9] + cpu->r[0];
|
|
/* 0298E51C */ rbrew_write32(cpu->mem, _t28, cpu->r[1]);
|
|
/* 0298E520 */ return;
|
|
}
|
|
|
|
// fn_0298E524 @ 0x298e524
|
|
void Gambit_fn_0298E524(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_0298E524: ; // 0x298e524
|
|
/* 0298E524 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E528 */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E528 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E52C */ _t1 = cpu->r[12] + cpu->r[0];
|
|
/* 0298E52C */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E530 */ cpu->r[7] = cpu->r[12] + cpu->r[0];
|
|
/* 0298E534 */ _t2 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E534 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E538 */ cpu->r[12] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E53C */ cpu->r[10] = 0x00000000u;
|
|
/* 0298E540 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E544 */ _t3 = cpu->r[7] + 0x00000028u;
|
|
/* 0298E544 */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298E548 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E548 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298E548 */ if (_t5) goto L_0298E550; else goto L_0298E54C;
|
|
L_0298E54C: ; // 0x298e54c
|
|
/* 0298E54C */ cpu->r[10] = cpu->r[12] + cpu->r[0];
|
|
L_0298E550: ; // 0x298e550
|
|
/* 0298E550 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E554 */ cpu->r[7] = cpu->r[10] + cpu->r[8];
|
|
/* 0298E558 */ _t6 = cpu->r[7] + 0x00000002u;
|
|
/* 0298E558 */ cpu->r[10] = rbrew_read16(cpu->mem, _t6);
|
|
/* 0298E55C */ cpu->r[3] = cpu->r[9] + cpu->r[10];
|
|
/* 0298E560 */ return;
|
|
}
|
|
|
|
// fn_0298E564 @ 0x298e564
|
|
void Gambit_fn_0298E564(CPUState* cpu) {
|
|
uint32_t _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_0298E564: ; // 0x298e564
|
|
/* 0298E564 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E568 */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E568 */ cpu->r[9] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E56C */ cpu->r[4] = cpu->r[9] + cpu->r[0];
|
|
/* 0298E570 */ _t1 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E570 */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E574 */ _t2 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E574 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E578 */ cpu->r[12] = 0x00000000u;
|
|
/* 0298E57C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298E580 */ cpu->r[8] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E584 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E584 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298E584 */ if (_t4) goto L_0298E58C; else goto L_0298E588;
|
|
L_0298E588: ; // 0x298e588
|
|
/* 0298E588 */ cpu->r[12] = cpu->r[8] + cpu->r[7];
|
|
L_0298E58C: ; // 0x298e58c
|
|
/* 0298E58C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E590 */ cpu->r[10] = cpu->r[12] + cpu->r[0];
|
|
/* 0298E594 */ _t5 = cpu->r[10] + 0x00000004u;
|
|
/* 0298E594 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E598 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E59C */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E59C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298E59C */ if (_t7) goto L_0298E5D0; else goto L_0298E5A0;
|
|
L_0298E5A0: ; // 0x298e5a0
|
|
/* 0298E5A0 */ _t8 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E5A0 */ cpu->r[7] = rbrew_read16(cpu->mem, _t8);
|
|
/* 0298E5A4 */ /* nop */
|
|
/* 0298E5A8 */ cpu->r[9] = 0x00000001u;
|
|
/* 0298E5AC */ _t9 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E5AC */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E5B0 */ cpu->r[7] = cpu->r[7] | 0x00000004u;
|
|
/* 0298E5B4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E5B8 */ _t10 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E5B8 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[7]);
|
|
/* 0298E5BC */ _t11 = cpu->r[8] + cpu->r[0];
|
|
/* 0298E5BC */ cpu->r[7] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298E5C0 */ cpu->r[9] = rbrew_rlwinm(cpu->r[9], cpu->r[5], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E5C4 */ cpu->r[7] = cpu->r[7] | cpu->r[9];
|
|
/* 0298E5C8 */ _t12 = cpu->r[8] + cpu->r[0];
|
|
/* 0298E5C8 */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 0298E5CC */ _t13 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E5CC */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
L_0298E5D0: ; // 0x298e5d0
|
|
/* 0298E5D0 */ _t14 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E5D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E5D0 */ cpu->r[9] = _t14;
|
|
/* 0298E5D4 */ cpu->r[8] = 0x00000000u;
|
|
/* 0298E5D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E5DC */ _t15 = cpu->r[10] + 0x0000000Cu;
|
|
/* 0298E5DC */ cpu->r[11] = rbrew_read16(cpu->mem, _t15);
|
|
/* 0298E5E0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E5E0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298E5E0 */ if (_t17) goto L_0298E5E8; else goto L_0298E5E4;
|
|
L_0298E5E4: ; // 0x298e5e4
|
|
/* 0298E5E4 */ cpu->r[8] = cpu->r[9] + cpu->r[0];
|
|
L_0298E5E8: ; // 0x298e5e8
|
|
/* 0298E5E8 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x00000014u);
|
|
/* 0298E5EC */ cpu->r[8] = cpu->r[8] + cpu->r[9];
|
|
/* 0298E5F0 */ _t18 = cpu->r[8] + 0x00000004u;
|
|
/* 0298E5F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298E5F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E5F8 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E5F8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298E5F8 */ if (_t20) goto L_0298E628; else goto L_0298E5FC;
|
|
L_0298E5FC: ; // 0x298e5fc
|
|
/* 0298E5FC */ _t21 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E5FC */ cpu->r[12] = rbrew_read16(cpu->mem, _t21);
|
|
/* 0298E600 */ /* nop */
|
|
/* 0298E604 */ cpu->r[7] = 0x00000001u;
|
|
/* 0298E608 */ _t22 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E608 */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298E60C */ cpu->r[12] = cpu->r[12] | 0x00000004u;
|
|
/* 0298E610 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E614 */ _t23 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E614 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[12]);
|
|
/* 0298E618 */ _t24 = cpu->r[8] + cpu->r[9];
|
|
/* 0298E618 */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298E61C */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], cpu->r[11], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E620 */ cpu->r[0] = cpu->r[0] | cpu->r[7];
|
|
/* 0298E624 */ _t25 = cpu->r[8] + cpu->r[9];
|
|
/* 0298E624 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
L_0298E628: ; // 0x298e628
|
|
/* 0298E628 */ _t26 = cpu->r[10] + 0x00000002u;
|
|
/* 0298E628 */ cpu->r[0] = rbrew_read16(cpu->mem, _t26);
|
|
/* 0298E62C */ _t27 = cpu->r[4] + 0x00000028u;
|
|
/* 0298E62C */ cpu->r[9] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298E630 */ _t28 = cpu->r[6] + 0x00000000u;
|
|
/* 0298E630 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 0298E634 */ _t29 = cpu->r[9] + cpu->r[0];
|
|
/* 0298E634 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 0298E638 */ _t30 = cpu->r[6] + 0x00000004u;
|
|
/* 0298E638 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 0298E63C */ cpu->r[8] = cpu->r[9] + cpu->r[0];
|
|
/* 0298E640 */ _t31 = cpu->r[8] + 0x00000004u;
|
|
/* 0298E640 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[0]);
|
|
/* 0298E644 */ return;
|
|
}
|
|
|
|
// fn_0298E648 @ 0x298e648
|
|
void Gambit_fn_0298E648(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_0298E648: ; // 0x298e648
|
|
/* 0298E648 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E64C */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E64C */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E650 */ _t1 = cpu->r[12] + cpu->r[0];
|
|
/* 0298E650 */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E654 */ cpu->r[7] = cpu->r[12] + cpu->r[0];
|
|
/* 0298E658 */ _t2 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E658 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E65C */ cpu->r[12] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E660 */ cpu->r[10] = 0x00000000u;
|
|
/* 0298E664 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E668 */ _t3 = cpu->r[7] + 0x00000028u;
|
|
/* 0298E668 */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298E66C */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E66C */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298E66C */ if (_t5) goto L_0298E674; else goto L_0298E670;
|
|
L_0298E670: ; // 0x298e670
|
|
/* 0298E670 */ cpu->r[10] = cpu->r[12] + cpu->r[0];
|
|
L_0298E674: ; // 0x298e674
|
|
/* 0298E674 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E678 */ cpu->r[7] = cpu->r[10] + cpu->r[8];
|
|
/* 0298E67C */ _t6 = cpu->r[7] + 0x00000002u;
|
|
/* 0298E67C */ cpu->r[10] = rbrew_read16(cpu->mem, _t6);
|
|
/* 0298E680 */ cpu->r[3] = cpu->r[9] + cpu->r[10];
|
|
/* 0298E684 */ return;
|
|
}
|
|
|
|
// fn_0298E688 @ 0x298e688
|
|
void Gambit_fn_0298E688(CPUState* cpu) {
|
|
uint32_t _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_0298E688: ; // 0x298e688
|
|
/* 0298E688 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E68C */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E68C */ cpu->r[9] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E690 */ cpu->r[4] = cpu->r[9] + cpu->r[0];
|
|
/* 0298E694 */ _t1 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E694 */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E698 */ _t2 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E698 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E69C */ cpu->r[12] = 0x00000000u;
|
|
/* 0298E6A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298E6A4 */ cpu->r[8] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E6A8 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E6A8 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298E6A8 */ if (_t4) goto L_0298E6B0; else goto L_0298E6AC;
|
|
L_0298E6AC: ; // 0x298e6ac
|
|
/* 0298E6AC */ cpu->r[12] = cpu->r[8] + cpu->r[7];
|
|
L_0298E6B0: ; // 0x298e6b0
|
|
/* 0298E6B0 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E6B4 */ cpu->r[10] = cpu->r[12] + cpu->r[0];
|
|
/* 0298E6B8 */ _t5 = cpu->r[10] + 0x00000004u;
|
|
/* 0298E6B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E6BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E6C0 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E6C0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298E6C0 */ if (_t7) goto L_0298E6F4; else goto L_0298E6C4;
|
|
L_0298E6C4: ; // 0x298e6c4
|
|
/* 0298E6C4 */ _t8 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E6C4 */ cpu->r[7] = rbrew_read16(cpu->mem, _t8);
|
|
/* 0298E6C8 */ /* nop */
|
|
/* 0298E6CC */ cpu->r[9] = 0x00000001u;
|
|
/* 0298E6D0 */ _t9 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E6D0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E6D4 */ cpu->r[7] = cpu->r[7] | 0x00000004u;
|
|
/* 0298E6D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E6DC */ _t10 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E6DC */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[7]);
|
|
/* 0298E6E0 */ _t11 = cpu->r[8] + cpu->r[0];
|
|
/* 0298E6E0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298E6E4 */ cpu->r[9] = rbrew_rlwinm(cpu->r[9], cpu->r[5], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E6E8 */ cpu->r[7] = cpu->r[7] | cpu->r[9];
|
|
/* 0298E6EC */ _t12 = cpu->r[8] + cpu->r[0];
|
|
/* 0298E6EC */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 0298E6F0 */ _t13 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E6F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
L_0298E6F4: ; // 0x298e6f4
|
|
/* 0298E6F4 */ _t14 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E6F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E6F4 */ cpu->r[9] = _t14;
|
|
/* 0298E6F8 */ cpu->r[8] = 0x00000000u;
|
|
/* 0298E6FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E700 */ _t15 = cpu->r[10] + 0x0000000Cu;
|
|
/* 0298E700 */ cpu->r[11] = rbrew_read16(cpu->mem, _t15);
|
|
/* 0298E704 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E704 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298E704 */ if (_t17) goto L_0298E70C; else goto L_0298E708;
|
|
L_0298E708: ; // 0x298e708
|
|
/* 0298E708 */ cpu->r[8] = cpu->r[9] + cpu->r[0];
|
|
L_0298E70C: ; // 0x298e70c
|
|
/* 0298E70C */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x00000014u);
|
|
/* 0298E710 */ cpu->r[8] = cpu->r[8] + cpu->r[9];
|
|
/* 0298E714 */ _t18 = cpu->r[8] + 0x00000004u;
|
|
/* 0298E714 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298E718 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E71C */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E71C */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298E71C */ if (_t20) goto L_0298E74C; else goto L_0298E720;
|
|
L_0298E720: ; // 0x298e720
|
|
/* 0298E720 */ _t21 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E720 */ cpu->r[12] = rbrew_read16(cpu->mem, _t21);
|
|
/* 0298E724 */ /* nop */
|
|
/* 0298E728 */ cpu->r[7] = 0x00000001u;
|
|
/* 0298E72C */ _t22 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E72C */ cpu->r[8] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298E730 */ cpu->r[12] = cpu->r[12] | 0x00000004u;
|
|
/* 0298E734 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E738 */ _t23 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E738 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[12]);
|
|
/* 0298E73C */ _t24 = cpu->r[8] + cpu->r[9];
|
|
/* 0298E73C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298E740 */ cpu->r[7] = rbrew_rlwinm(cpu->r[7], cpu->r[11], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E744 */ cpu->r[0] = cpu->r[0] | cpu->r[7];
|
|
/* 0298E748 */ _t25 = cpu->r[8] + cpu->r[9];
|
|
/* 0298E748 */ rbrew_write32(cpu->mem, _t25, cpu->r[0]);
|
|
L_0298E74C: ; // 0x298e74c
|
|
/* 0298E74C */ _t26 = cpu->r[10] + 0x00000002u;
|
|
/* 0298E74C */ cpu->r[0] = rbrew_read16(cpu->mem, _t26);
|
|
/* 0298E750 */ _t27 = cpu->r[4] + 0x00000028u;
|
|
/* 0298E750 */ cpu->r[9] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298E754 */ _t28 = cpu->r[6] + 0x00000000u;
|
|
/* 0298E754 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 0298E758 */ _t29 = cpu->r[9] + cpu->r[0];
|
|
/* 0298E758 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 0298E75C */ _t30 = cpu->r[6] + 0x00000004u;
|
|
/* 0298E75C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 0298E760 */ cpu->r[8] = cpu->r[9] + cpu->r[0];
|
|
/* 0298E764 */ _t31 = cpu->r[8] + 0x00000004u;
|
|
/* 0298E764 */ rbrew_write_f32(cpu->mem, _t31, cpu->f[0]);
|
|
/* 0298E768 */ _t32 = cpu->r[6] + 0x00000008u;
|
|
/* 0298E768 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t32);
|
|
/* 0298E76C */ _t33 = cpu->r[8] + 0x00000008u;
|
|
/* 0298E76C */ rbrew_write_f32(cpu->mem, _t33, cpu->f[0]);
|
|
/* 0298E770 */ _t34 = cpu->r[6] + 0x0000000Cu;
|
|
/* 0298E770 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t34);
|
|
/* 0298E774 */ _t35 = cpu->r[8] + 0x0000000Cu;
|
|
/* 0298E774 */ rbrew_write_f32(cpu->mem, _t35, cpu->f[0]);
|
|
/* 0298E778 */ return;
|
|
}
|
|
|
|
// fn_0298E77C @ 0x298e77c
|
|
void Gambit_fn_0298E77C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6;
|
|
|
|
L_0298E77C: ; // 0x298e77c
|
|
/* 0298E77C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E780 */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E780 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E784 */ _t1 = cpu->r[12] + cpu->r[0];
|
|
/* 0298E784 */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E788 */ cpu->r[7] = cpu->r[12] + cpu->r[0];
|
|
/* 0298E78C */ _t2 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E78C */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E790 */ cpu->r[12] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E794 */ cpu->r[10] = 0x00000000u;
|
|
/* 0298E798 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E79C */ _t3 = cpu->r[7] + 0x00000028u;
|
|
/* 0298E79C */ cpu->r[9] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298E7A0 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E7A0 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298E7A0 */ if (_t5) goto L_0298E7A8; else goto L_0298E7A4;
|
|
L_0298E7A4: ; // 0x298e7a4
|
|
/* 0298E7A4 */ cpu->r[10] = cpu->r[12] + cpu->r[0];
|
|
L_0298E7A8: ; // 0x298e7a8
|
|
/* 0298E7A8 */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E7AC */ cpu->r[7] = cpu->r[10] + cpu->r[8];
|
|
/* 0298E7B0 */ _t6 = cpu->r[7] + 0x00000002u;
|
|
/* 0298E7B0 */ cpu->r[10] = rbrew_read16(cpu->mem, _t6);
|
|
/* 0298E7B4 */ cpu->r[3] = cpu->r[9] + cpu->r[10];
|
|
/* 0298E7B8 */ return;
|
|
}
|
|
|
|
// fn_0298E7BC @ 0x298e7bc
|
|
void Gambit_fn_0298E7BC(CPUState* cpu) {
|
|
uint32_t _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_0298E7BC: ; // 0x298e7bc
|
|
/* 0298E7BC */ cpu->r[11] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E7C0 */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E7C0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E7C4 */ _t1 = cpu->r[12] + cpu->r[11];
|
|
/* 0298E7C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E7C8 */ cpu->r[4] = cpu->r[12] + cpu->r[11];
|
|
/* 0298E7CC */ _t2 = cpu->r[10] + 0x00000034u;
|
|
/* 0298E7CC */ cpu->r[11] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E7D0 */ cpu->r[9] = 0x00000000u;
|
|
/* 0298E7D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298E7D8 */ cpu->r[12] = cpu->r[10] + 0x00000034u;
|
|
/* 0298E7DC */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E7DC */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298E7DC */ if (_t4) goto L_0298E7E4; else goto L_0298E7E0;
|
|
L_0298E7E0: ; // 0x298e7e0
|
|
/* 0298E7E0 */ cpu->r[9] = cpu->r[12] + cpu->r[11];
|
|
L_0298E7E4: ; // 0x298e7e4
|
|
/* 0298E7E4 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E7E8 */ cpu->r[3] = cpu->r[9] + cpu->r[12];
|
|
/* 0298E7EC */ _t5 = cpu->r[3] + 0x00000004u;
|
|
/* 0298E7EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E7F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298E7F4 */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E7F4 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298E7F4 */ if (_t7) goto L_0298E828; else goto L_0298E7F8;
|
|
L_0298E7F8: ; // 0x298e7f8
|
|
/* 0298E7F8 */ _t8 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E7F8 */ cpu->r[10] = rbrew_read16(cpu->mem, _t8);
|
|
/* 0298E7FC */ /* nop */
|
|
/* 0298E800 */ cpu->r[11] = 0x00000001u;
|
|
/* 0298E804 */ _t9 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E804 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E808 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 0298E80C */ cpu->r[8] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E810 */ _t10 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E810 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[10]);
|
|
/* 0298E814 */ _t11 = cpu->r[9] + cpu->r[8];
|
|
/* 0298E814 */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298E818 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], cpu->r[5], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E81C */ cpu->r[12] = cpu->r[12] | cpu->r[11];
|
|
/* 0298E820 */ _t12 = cpu->r[9] + cpu->r[8];
|
|
/* 0298E820 */ rbrew_write32(cpu->mem, _t12, cpu->r[12]);
|
|
/* 0298E824 */ _t13 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E824 */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
L_0298E828: ; // 0x298e828
|
|
/* 0298E828 */ _t14 = cpu->r[10] + 0x00000034u;
|
|
/* 0298E828 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E82C */ cpu->r[12] = cpu->r[10] + 0x00000034u;
|
|
/* 0298E830 */ cpu->r[9] = 0x00000000u;
|
|
/* 0298E834 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298E838 */ _t15 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298E838 */ cpu->r[7] = rbrew_read16(cpu->mem, _t15);
|
|
/* 0298E83C */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E83C */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298E83C */ if (_t17) goto L_0298E844; else goto L_0298E840;
|
|
L_0298E840: ; // 0x298e840
|
|
/* 0298E840 */ cpu->r[9] = cpu->r[12] + cpu->r[11];
|
|
L_0298E844: ; // 0x298e844
|
|
/* 0298E844 */ cpu->r[12] = (uint32_t)((int32_t)cpu->r[7] * (int32_t)0x00000014u);
|
|
/* 0298E848 */ cpu->r[12] = cpu->r[9] + cpu->r[12];
|
|
/* 0298E84C */ _t18 = cpu->r[12] + 0x00000004u;
|
|
/* 0298E84C */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298E850 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298E854 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E854 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298E854 */ if (_t20) goto L_0298E884; else goto L_0298E858;
|
|
L_0298E858: ; // 0x298e858
|
|
/* 0298E858 */ _t21 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E858 */ cpu->r[10] = rbrew_read16(cpu->mem, _t21);
|
|
/* 0298E85C */ /* nop */
|
|
/* 0298E860 */ cpu->r[11] = 0x00000001u;
|
|
/* 0298E864 */ _t22 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E864 */ cpu->r[9] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298E868 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 0298E86C */ cpu->r[8] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E870 */ _t23 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E870 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[10]);
|
|
/* 0298E874 */ _t24 = cpu->r[9] + cpu->r[8];
|
|
/* 0298E874 */ cpu->r[12] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298E878 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], cpu->r[7], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E87C */ cpu->r[12] = cpu->r[12] | cpu->r[11];
|
|
/* 0298E880 */ _t25 = cpu->r[9] + cpu->r[8];
|
|
/* 0298E880 */ rbrew_write32(cpu->mem, _t25, cpu->r[12]);
|
|
L_0298E884: ; // 0x298e884
|
|
/* 0298E884 */ _t26 = cpu->r[4] + 0x00000028u;
|
|
/* 0298E884 */ cpu->r[11] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298E888 */ _t27 = cpu->r[3] + 0x00000002u;
|
|
/* 0298E888 */ cpu->r[12] = rbrew_read16(cpu->mem, _t27);
|
|
/* 0298E88C */ cpu->r[11] = cpu->r[11] + cpu->r[12];
|
|
/* 0298E890 */ _t28 = cpu->r[6] + 0x00000000u;
|
|
/* 0298E890 */ cpu->r[12] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298E894 */ _t29 = cpu->r[11] + 0x00000000u;
|
|
/* 0298E894 */ rbrew_write32(cpu->mem, _t29, cpu->r[12]);
|
|
/* 0298E898 */ _t30 = cpu->r[6] + 0x00000004u;
|
|
/* 0298E898 */ cpu->r[12] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298E89C */ _t31 = cpu->r[11] + 0x00000004u;
|
|
/* 0298E89C */ rbrew_write32(cpu->mem, _t31, cpu->r[12]);
|
|
/* 0298E8A0 */ _t32 = cpu->r[6] + 0x00000008u;
|
|
/* 0298E8A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298E8A4 */ _t33 = cpu->r[11] + 0x00000008u;
|
|
/* 0298E8A4 */ rbrew_write32(cpu->mem, _t33, cpu->r[12]);
|
|
/* 0298E8A8 */ _t34 = cpu->r[6] + 0x0000000Cu;
|
|
/* 0298E8A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t34);
|
|
/* 0298E8AC */ _t35 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0298E8AC */ rbrew_write32(cpu->mem, _t35, cpu->r[12]);
|
|
/* 0298E8B0 */ return;
|
|
}
|
|
|
|
// fn_0298E8B4 @ 0x298e8b4
|
|
void Gambit_fn_0298E8B4(CPUState* cpu) {
|
|
uint32_t _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_0298E8B4: ; // 0x298e8b4
|
|
/* 0298E8B4 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[4] * (int32_t)0x0000003Cu);
|
|
/* 0298E8B8 */ _t0 = cpu->r[3] + 0x000000B4u;
|
|
/* 0298E8B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E8BC */ cpu->r[4] = cpu->r[9] + cpu->r[0];
|
|
/* 0298E8C0 */ _t1 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E8C0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E8C4 */ _t2 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E8C4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298E8C8 */ cpu->r[12] = 0x00000000u;
|
|
/* 0298E8CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 0298E8D0 */ cpu->r[8] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E8D4 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E8D4 */ _t4 = _t3 & 0x00000001u;
|
|
/* 0298E8D4 */ if (_t4) goto L_0298E8DC; else goto L_0298E8D8;
|
|
L_0298E8D8: ; // 0x298e8d8
|
|
/* 0298E8D8 */ cpu->r[12] = cpu->r[8] + cpu->r[7];
|
|
L_0298E8DC: ; // 0x298e8dc
|
|
/* 0298E8DC */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[5] * (int32_t)0x00000014u);
|
|
/* 0298E8E0 */ cpu->r[10] = cpu->r[12] + cpu->r[8];
|
|
/* 0298E8E4 */ _t5 = cpu->r[10] + 0x00000004u;
|
|
/* 0298E8E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298E8E8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E8EC */ _t6 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E8EC */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298E8EC */ if (_t7) goto L_0298E920; else goto L_0298E8F0;
|
|
L_0298E8F0: ; // 0x298e8f0
|
|
/* 0298E8F0 */ _t8 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E8F0 */ cpu->r[7] = rbrew_read16(cpu->mem, _t8);
|
|
/* 0298E8F4 */ /* nop */
|
|
/* 0298E8F8 */ cpu->r[8] = 0x00000001u;
|
|
/* 0298E8FC */ _t9 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E8FC */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298E900 */ cpu->r[7] = cpu->r[7] | 0x00000004u;
|
|
/* 0298E904 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E908 */ _t10 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E908 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[7]);
|
|
/* 0298E90C */ _t11 = cpu->r[9] + cpu->r[0];
|
|
/* 0298E90C */ cpu->r[7] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298E910 */ cpu->r[8] = rbrew_rlwinm(cpu->r[8], cpu->r[5], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E914 */ cpu->r[7] = cpu->r[7] | cpu->r[8];
|
|
/* 0298E918 */ _t12 = cpu->r[9] + cpu->r[0];
|
|
/* 0298E918 */ rbrew_write32(cpu->mem, _t12, cpu->r[7]);
|
|
/* 0298E91C */ _t13 = cpu->r[4] + 0x00000000u;
|
|
/* 0298E91C */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
L_0298E920: ; // 0x298e920
|
|
/* 0298E920 */ _t14 = cpu->r[9] + 0x00000034u;
|
|
/* 0298E920 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298E924 */ cpu->r[8] = cpu->r[9] + 0x00000034u;
|
|
/* 0298E928 */ cpu->r[7] = 0x00000000u;
|
|
/* 0298E92C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E930 */ _t15 = cpu->r[10] + 0x0000000Cu;
|
|
/* 0298E930 */ cpu->r[11] = rbrew_read16(cpu->mem, _t15);
|
|
/* 0298E934 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E934 */ _t17 = _t16 & 0x00000001u;
|
|
/* 0298E934 */ if (_t17) goto L_0298E93C; else goto L_0298E938;
|
|
L_0298E938: ; // 0x298e938
|
|
/* 0298E938 */ cpu->r[7] = cpu->r[8] + cpu->r[0];
|
|
L_0298E93C: ; // 0x298e93c
|
|
/* 0298E93C */ cpu->r[8] = (uint32_t)((int32_t)cpu->r[11] * (int32_t)0x00000014u);
|
|
/* 0298E940 */ cpu->r[7] = cpu->r[7] + cpu->r[8];
|
|
/* 0298E944 */ _t18 = cpu->r[7] + 0x00000004u;
|
|
/* 0298E944 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298E948 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298E94C */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298E94C */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298E94C */ if (_t20) goto L_0298E97C; else goto L_0298E950;
|
|
L_0298E950: ; // 0x298e950
|
|
/* 0298E950 */ _t21 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E950 */ cpu->r[12] = rbrew_read16(cpu->mem, _t21);
|
|
/* 0298E954 */ /* nop */
|
|
/* 0298E958 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298E95C */ _t22 = cpu->r[4] + 0x0000000Cu;
|
|
/* 0298E95C */ cpu->r[9] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298E960 */ cpu->r[12] = cpu->r[12] | 0x00000004u;
|
|
/* 0298E964 */ cpu->r[8] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E968 */ _t23 = cpu->r[4] + 0x00000004u;
|
|
/* 0298E968 */ rbrew_write16(cpu->mem, _t23, (uint16_t)cpu->r[12]);
|
|
/* 0298E96C */ _t24 = cpu->r[9] + cpu->r[8];
|
|
/* 0298E96C */ cpu->r[7] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298E970 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], cpu->r[11], 0x00000000u, 0x0000001Fu);
|
|
/* 0298E974 */ cpu->r[7] = cpu->r[7] | cpu->r[0];
|
|
/* 0298E978 */ _t25 = cpu->r[9] + cpu->r[8];
|
|
/* 0298E978 */ rbrew_write32(cpu->mem, _t25, cpu->r[7]);
|
|
L_0298E97C: ; // 0x298e97c
|
|
/* 0298E97C */ _t26 = cpu->r[4] + 0x00000028u;
|
|
/* 0298E97C */ cpu->r[9] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298E980 */ _t27 = cpu->r[6] + 0x00000000u;
|
|
/* 0298E980 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t27);
|
|
/* 0298E984 */ _t28 = cpu->r[6] + 0x00000008u;
|
|
/* 0298E984 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t28);
|
|
/* 0298E988 */ _t29 = cpu->r[10] + 0x00000002u;
|
|
/* 0298E988 */ cpu->r[0] = rbrew_read16(cpu->mem, _t29);
|
|
/* 0298E98C */ _t30 = cpu->r[6] + 0x00000004u;
|
|
/* 0298E98C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t30);
|
|
/* 0298E990 */ _t31 = cpu->r[9] + cpu->r[0];
|
|
/* 0298E990 */ rbrew_write32(cpu->mem, _t31, cpu->r[12]);
|
|
/* 0298E990 */ cpu->r[9] = _t31;
|
|
/* 0298E994 */ _t32 = cpu->r[9] + 0x00000004u;
|
|
/* 0298E994 */ rbrew_write_f32(cpu->mem, _t32, cpu->f[13]);
|
|
/* 0298E998 */ _t33 = cpu->r[9] + 0x00000008u;
|
|
/* 0298E998 */ rbrew_write_f32(cpu->mem, _t33, cpu->f[0]);
|
|
/* 0298E99C */ return;
|
|
}
|
|
|
|
// fn_0298E9A0 @ 0x298e9a0
|
|
void Gambit_fn_0298E9A0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_0298E9A0: ; // 0x298e9a0
|
|
/* 0298E9A0 */ /* nop */
|
|
/* 0298E9A4 */ _t0 = cpu->r[3] + 0x0000009Cu;
|
|
/* 0298E9A4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E9A8 */ cpu->r[6] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298E9AC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Bu, 0x0000001Fu);
|
|
/* 0298E9B0 */ cpu->r[9] = 0x00000001u;
|
|
/* 0298E9B4 */ _t1 = cpu->r[7] + cpu->r[6];
|
|
/* 0298E9B4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0298E9B8 */ /* nop */
|
|
/* 0298E9BC */ /* nop */
|
|
/* 0298E9C0 */ _t2 = ~cpu->r[8];
|
|
/* 0298E9C0 */ cpu->r[0] = cpu->r[10] & _t2;
|
|
/* 0298E9C4 */ cpu->r[12] = cpu->r[0] | cpu->r[11];
|
|
/* 0298E9C8 */ _t3 = cpu->r[7] + cpu->r[6];
|
|
/* 0298E9C8 */ rbrew_write32(cpu->mem, _t3, cpu->r[12]);
|
|
/* 0298E9CC */ return;
|
|
}
|
|
|
|
// fn_0298E9D0 @ 0x298e9d0
|
|
void Gambit_fn_0298E9D0(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_0298E9D0: ; // 0x298e9d0
|
|
/* 0298E9D0 */ _t0 = cpu->r[3] + 0x000000A8u;
|
|
/* 0298E9D0 */ cpu->r[3] = rbrew_read16(cpu->mem, _t0);
|
|
/* 0298E9D4 */ return;
|
|
}
|
|
|
|
// fn_0298E9D8 @ 0x298e9d8
|
|
void Gambit_fn_0298E9D8(CPUState* cpu) {
|
|
uint32_t _t0;
|
|
|
|
L_0298E9D8: ; // 0x298e9d8
|
|
/* 0298E9D8 */ _t0 = cpu->r[3] + 0x000000A0u;
|
|
/* 0298E9D8 */ cpu->r[3] = rbrew_read8(cpu->mem, _t0);
|
|
/* 0298E9DC */ return;
|
|
}
|
|
|
|
// fn_0298E9E0 @ 0x298e9e0
|
|
void Gambit_fn_0298E9E0(CPUState* cpu) {
|
|
L_0298E9E0: ; // 0x298e9e0
|
|
/* 0298E9E0 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298E9E4 */ return;
|
|
}
|
|
|
|
// fn_0298E9E8 @ 0x298e9e8
|
|
void Gambit_fn_0298E9E8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_0298E9E8: ; // 0x298e9e8
|
|
/* 0298E9E8 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298E9EC */ _t0 = cpu->r[12] + 0x00001588u;
|
|
/* 0298E9EC */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298E9F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 0298E9F4 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298E9F8 */ cpu->r[12] = cpu->r[12] + 0x00001AD4u;
|
|
/* 0298E9FC */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298E9FC */ _t2 = _t1 & 0x00000001u;
|
|
/* 0298E9FC */ if (_t2) goto L_0298EA00; else goto L_0298EA18;
|
|
L_0298EA00: ; // 0x298ea00
|
|
/* 0298EA00 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298EA04 */ cpu->r[9] = 0x00000001u;
|
|
/* 0298EA08 */ cpu->r[8] = 0x101D0000u;
|
|
/* 0298EA0C */ cpu->r[0] = cpu->r[0] + 0xFFFFF588u;
|
|
/* 0298EA10 */ _t3 = cpu->r[8] + 0x00001588u;
|
|
/* 0298EA10 */ rbrew_write32(cpu->mem, _t3, cpu->r[9]);
|
|
/* 0298EA14 */ _t4 = cpu->r[12] + 0x00000000u;
|
|
/* 0298EA14 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
L_0298EA18: ; // 0x298ea18
|
|
/* 0298EA18 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[12]);
|
|
/* 0298EA1C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EA1C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298EA1C */ if (_t6) goto L_0298EA20; else goto L_0298EA28;
|
|
L_0298EA20: ; // 0x298ea20
|
|
/* 0298EA20 */ cpu->r[3] = 0x00000001u;
|
|
/* 0298EA24 */ return;
|
|
L_0298EA28: ; // 0x298ea28
|
|
/* 0298EA28 */ cpu->r[11] = 0x101D0000u;
|
|
/* 0298EA2C */ _t7 = cpu->r[11] + 0xFFFFE218u;
|
|
/* 0298EA2C */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298EA2C */ cpu->r[11] = _t7;
|
|
/* 0298EA30 */ cpu->r[10] = 0x101D0000u;
|
|
/* 0298EA34 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[8], 0x00000000u);
|
|
/* 0298EA38 */ cpu->r[10] = cpu->r[10] + 0xFFFFEF88u;
|
|
/* 0298EA3C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EA3C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298EA3C */ if (_t9) goto L_0298EA40; else goto L_0298EA54;
|
|
L_0298EA40: ; // 0x298ea40
|
|
/* 0298EA40 */ cpu->r[12] = 0x10150000u;
|
|
/* 0298EA44 */ cpu->r[9] = 0x00000001u;
|
|
/* 0298EA48 */ cpu->r[12] = cpu->r[12] + 0xFFFFF578u;
|
|
/* 0298EA4C */ _t10 = cpu->r[11] + 0x00000000u;
|
|
/* 0298EA4C */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 0298EA50 */ _t11 = cpu->r[10] + 0x00000000u;
|
|
/* 0298EA50 */ rbrew_write32(cpu->mem, _t11, cpu->r[12]);
|
|
L_0298EA54: ; // 0x298ea54
|
|
/* 0298EA54 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[10]);
|
|
/* 0298EA58 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EA58 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298EA58 */ if (_t13) goto L_0298EA5C; else goto L_0298EA64;
|
|
L_0298EA5C: ; // 0x298ea5c
|
|
/* 0298EA5C */ cpu->r[0] = 0x00000001u;
|
|
/* 0298EA60 */ goto L_0298EA9C;
|
|
L_0298EA64: ; // 0x298ea64
|
|
/* 0298EA64 */ cpu->r[8] = 0x101D0000u;
|
|
/* 0298EA68 */ _t14 = cpu->r[8] + 0xFFFFD8ACu;
|
|
/* 0298EA68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298EA68 */ cpu->r[8] = _t14;
|
|
/* 0298EA6C */ cpu->r[11] = 0x101D0000u;
|
|
/* 0298EA70 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298EA74 */ cpu->r[11] = cpu->r[11] + 0xFFFFEF8Cu;
|
|
/* 0298EA78 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EA78 */ _t16 = _t15 & 0x00000001u;
|
|
/* 0298EA78 */ if (_t16) goto L_0298EA7C; else goto L_0298EA90;
|
|
L_0298EA7C: ; // 0x298ea7c
|
|
/* 0298EA7C */ cpu->r[10] = 0x10150000u;
|
|
/* 0298EA80 */ cpu->r[9] = 0x00000001u;
|
|
/* 0298EA84 */ cpu->r[10] = cpu->r[10] + 0xFFFFF568u;
|
|
/* 0298EA88 */ _t17 = cpu->r[8] + 0x00000000u;
|
|
/* 0298EA88 */ rbrew_write32(cpu->mem, _t17, cpu->r[9]);
|
|
/* 0298EA8C */ _t18 = cpu->r[11] + 0x00000000u;
|
|
/* 0298EA8C */ rbrew_write32(cpu->mem, _t18, cpu->r[10]);
|
|
L_0298EA90: ; // 0x298ea90
|
|
/* 0298EA90 */ cpu->r[12] = cpu->r[4] ^ cpu->r[11];
|
|
/* 0298EA94 */ cpu->r[0] = rbrew_clz32(cpu->r[12]);
|
|
/* 0298EA98 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x0000001Bu, 0x00000018u, 0x0000001Fu);
|
|
L_0298EA9C: ; // 0x298ea9c
|
|
/* 0298EA9C */ cpu->r[3] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000018u, 0x0000001Fu);
|
|
/* 0298EAA0 */ return;
|
|
}
|
|
|
|
// fn_0298EAA4 @ 0x298eaa4
|
|
void Gambit_fn_0298EAA4(CPUState* cpu) {
|
|
L_0298EAA4: ; // 0x298eaa4
|
|
/* 0298EAA4 */ cpu->r[3] = 0x10150000u;
|
|
/* 0298EAA8 */ cpu->r[3] = cpu->r[3] + 0xFFFFF548u;
|
|
/* 0298EAAC */ return;
|
|
}
|
|
|
|
// fn_0298EAB0 @ 0x298eab0
|
|
void Gambit_fn_0298EAB0(CPUState* cpu) {
|
|
L_0298EAB0: ; // 0x298eab0
|
|
/* 0298EAB0 */ cpu->r[3] = 0x00000005u;
|
|
/* 0298EAB4 */ return;
|
|
}
|
|
|
|
// fn_0298EABC @ 0x298eabc
|
|
void Gambit_fn_0298EABC(CPUState* cpu) {
|
|
uint32_t _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_0298EABC: ; // 0x298eabc
|
|
/* 0298EABC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298EABC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EABC */ cpu->r[1] = _t0;
|
|
/* 0298EAC0 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EAC0 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298EAC4 */ cpu->r[30] = cpu->r[5];
|
|
/* 0298EAC8 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EAC8 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298EACC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EACC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298EAD0 */ cpu->r[5] = 0x0000008Cu;
|
|
/* 0298EAD4 */ cpu->r[6] = cpu->r[30];
|
|
/* 0298EAD8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EAD8 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 0298EADC */ cpu->r[28] = cpu->r[3];
|
|
/* 0298EAE0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EAE0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298EAE4 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298EAE8 */ Gambit_fn_029928D4(cpu);
|
|
/* 0298EAEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EAF0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EAF0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298EAF0 */ if (_t7) goto L_0298EB58; else goto L_0298EAF4;
|
|
L_0298EAF4: ; // 0x298eaf4
|
|
/* 0298EAF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EAF8 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EAF8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298EAF8 */ if (_t9) goto L_0298EB00; else goto L_0298EAFC;
|
|
L_0298EAFC: ; // 0x298eafc
|
|
/* 0298EAFC */ Gambit_fn_0298CF38(cpu);
|
|
L_0298EB00: ; // 0x298eb00
|
|
/* 0298EB00 */ _t10 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298EB00 */ cpu->r[12] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298EB04 */ _t11 = cpu->r[12] + 0x00000014u;
|
|
/* 0298EB04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298EB08 */ cpu->ctr = cpu->r[0];
|
|
/* 0298EB0C */ cpu->r[31] = cpu->r[3];
|
|
/* 0298EB10 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298EB14 */ cpu->r[6] = cpu->r[30];
|
|
/* 0298EB18 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298EB1C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298EB20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EB24 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EB24 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298EB24 */ if (_t13) goto L_0298EB58; else goto L_0298EB28;
|
|
L_0298EB28: ; // 0x298eb28
|
|
/* 0298EB28 */ _t14 = cpu->r[28] + 0x000000CCu;
|
|
/* 0298EB28 */ cpu->r[11] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298EB2C */ cpu->r[10] = rbrew_rlwinm(cpu->r[29], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298EB30 */ _t15 = cpu->r[10] + cpu->r[11];
|
|
/* 0298EB30 */ rbrew_write32(cpu->mem, _t15, cpu->r[31]);
|
|
/* 0298EB34 */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EB34 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298EB38 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EB38 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298EB3C */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EB3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298EB40 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298EB44 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EB44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298EB48 */ cpu->lr = cpu->r[0];
|
|
/* 0298EB4C */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EB4C */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298EB50 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298EB54 */ return;
|
|
L_0298EB58: ; // 0x298eb58
|
|
/* 0298EB58 */ _t21 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EB58 */ cpu->r[28] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298EB5C */ _t22 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EB5C */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298EB60 */ _t23 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EB60 */ cpu->r[0] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298EB64 */ _t24 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EB64 */ cpu->r[30] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298EB68 */ cpu->lr = cpu->r[0];
|
|
/* 0298EB6C */ _t25 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EB6C */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298EB70 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298EB74 */ cpu->r[3] = 0x00000000u;
|
|
/* 0298EB78 */ return;
|
|
}
|
|
|
|
// fn_0298EB7C @ 0x298eb7c
|
|
void Gambit_fn_0298EB7C(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298EB7C: ; // 0x298eb7c
|
|
/* 0298EB7C */ cpu->r[0] = cpu->lr;
|
|
/* 0298EB80 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298EB80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EB80 */ cpu->r[1] = _t0;
|
|
/* 0298EB84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EB84 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298EB88 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EB88 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298EB8C */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EB8C */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 0298EB90 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298EB90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298EB94 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EB94 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298EB98 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EB98 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298EB98 */ if (_t6) goto L_0298EB9C; else goto L_0298EBAC;
|
|
L_0298EB9C: ; // 0x298eb9c
|
|
/* 0298EB9C */ cpu->r[3] = 0x000001D4u;
|
|
/* 0298EBA0 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EBA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298EBA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298EBA8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBA8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298EBA8 */ if (_t8) goto L_0298EE6C; else goto L_0298EBAC;
|
|
L_0298EBAC: ; // 0x298ebac
|
|
/* 0298EBAC */ cpu->r[12] = 0x10150000u;
|
|
/* 0298EBB0 */ cpu->r[12] = cpu->r[12] + 0xFFFFFA58u;
|
|
/* 0298EBB4 */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 0298EBB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBB8 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 0298EBB8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 0298EBBC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBBC */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298EBBC */ if (_t11) goto L_0298EBC0; else goto L_0298EBD0;
|
|
L_0298EBC0: ; // 0x298ebc0
|
|
/* 0298EBC0 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298EBC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EBC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBCC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBCC */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298EBCC */ if (_t13) goto L_0298EBD8; else goto L_0298EBD0;
|
|
L_0298EBD0: ; // 0x298ebd0
|
|
/* 0298EBD0 */ cpu->r[0] = 0x0000005Fu;
|
|
/* 0298EBD4 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EBD4 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
L_0298EBD8: ; // 0x298ebd8
|
|
/* 0298EBD8 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 0298EBD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBDC */ cpu->r[30] = 0x00000000u;
|
|
/* 0298EBE0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBE0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 0298EBE0 */ if (_t16) goto L_0298EBE4; else goto L_0298EBF4;
|
|
L_0298EBE4: ; // 0x298ebe4
|
|
/* 0298EBE4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EBE8 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EBEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBF0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBF0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298EBF0 */ if (_t18) goto L_0298EC18; else goto L_0298EBF4;
|
|
L_0298EBF4: ; // 0x298ebf4
|
|
/* 0298EBF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBF8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBF8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298EBF8 */ if (_t20) goto L_0298EBFC; else goto L_0298EC0C;
|
|
L_0298EBFC: ; // 0x298ebfc
|
|
/* 0298EBFC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC00 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC08 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC08 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298EC08 */ if (_t22) goto L_0298EC18; else goto L_0298EC0C;
|
|
L_0298EC0C: ; // 0x298ec0c
|
|
/* 0298EC0C */ _t23 = cpu->r[3] + 0x00000004u;
|
|
/* 0298EC0C */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
/* 0298EC10 */ _t24 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EC10 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 0298EC14 */ _t25 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EC14 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
L_0298EC18: ; // 0x298ec18
|
|
/* 0298EC18 */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 0298EC18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC1C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC1C */ _t27 = _t26 & 0x00000001u;
|
|
/* 0298EC1C */ if (_t27) goto L_0298EC20; else goto L_0298EC30;
|
|
L_0298EC20: ; // 0x298ec20
|
|
/* 0298EC20 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC24 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC2C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC2C */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298EC2C */ if (_t29) goto L_0298EC54; else goto L_0298EC30;
|
|
L_0298EC30: ; // 0x298ec30
|
|
/* 0298EC30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC34 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC34 */ _t31 = _t30 & 0x00000001u;
|
|
/* 0298EC34 */ if (_t31) goto L_0298EC38; else goto L_0298EC48;
|
|
L_0298EC38: ; // 0x298ec38
|
|
/* 0298EC38 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC3C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC44 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC44 */ _t33 = _t32 & 0x00000001u;
|
|
/* 0298EC44 */ if (_t33) goto L_0298EC54; else goto L_0298EC48;
|
|
L_0298EC48: ; // 0x298ec48
|
|
/* 0298EC48 */ _t34 = cpu->r[3] + 0x00000004u;
|
|
/* 0298EC48 */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
/* 0298EC4C */ _t35 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EC4C */ rbrew_write32(cpu->mem, _t35, cpu->r[30]);
|
|
/* 0298EC50 */ _t36 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EC50 */ rbrew_write32(cpu->mem, _t36, cpu->r[30]);
|
|
L_0298EC54: ; // 0x298ec54
|
|
/* 0298EC54 */ cpu->r[3] = cpu->r[31] + 0x00000030u;
|
|
/* 0298EC54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC58 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC58 */ _t38 = _t37 & 0x00000001u;
|
|
/* 0298EC58 */ if (_t38) goto L_0298EC5C; else goto L_0298EC6C;
|
|
L_0298EC5C: ; // 0x298ec5c
|
|
/* 0298EC5C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC60 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC68 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC68 */ _t40 = _t39 & 0x00000001u;
|
|
/* 0298EC68 */ if (_t40) goto L_0298EC90; else goto L_0298EC6C;
|
|
L_0298EC6C: ; // 0x298ec6c
|
|
/* 0298EC6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC70 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC70 */ _t42 = _t41 & 0x00000001u;
|
|
/* 0298EC70 */ if (_t42) goto L_0298EC74; else goto L_0298EC84;
|
|
L_0298EC74: ; // 0x298ec74
|
|
/* 0298EC74 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC78 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC80 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC80 */ _t44 = _t43 & 0x00000001u;
|
|
/* 0298EC80 */ if (_t44) goto L_0298EC90; else goto L_0298EC84;
|
|
L_0298EC84: ; // 0x298ec84
|
|
/* 0298EC84 */ _t45 = cpu->r[3] + 0x00000004u;
|
|
/* 0298EC84 */ rbrew_write32(cpu->mem, _t45, cpu->r[30]);
|
|
/* 0298EC88 */ _t46 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EC88 */ rbrew_write32(cpu->mem, _t46, cpu->r[30]);
|
|
/* 0298EC8C */ _t47 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EC8C */ rbrew_write32(cpu->mem, _t47, cpu->r[30]);
|
|
L_0298EC90: ; // 0x298ec90
|
|
/* 0298EC90 */ _t48 = cpu->r[31] + 0x0000003Cu;
|
|
/* 0298EC90 */ rbrew_write32(cpu->mem, _t48, cpu->r[30]);
|
|
/* 0298EC94 */ cpu->r[3] = cpu->r[31] + 0x00000044u;
|
|
/* 0298EC98 */ _t49 = cpu->r[31] + 0x00000040u;
|
|
/* 0298EC98 */ rbrew_write32(cpu->mem, _t49, cpu->r[30]);
|
|
/* 0298EC9C */ Gambit_fn_02A2D69C(cpu);
|
|
/* 0298ECA0 */ cpu->r[29] = cpu->r[31] + 0x000000C0u;
|
|
/* 0298ECA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ECA4 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECA4 */ _t51 = _t50 & 0x00000001u;
|
|
/* 0298ECA4 */ if (_t51) goto L_0298ECA8; else goto L_0298ECB8;
|
|
L_0298ECA8: ; // 0x298eca8
|
|
/* 0298ECA8 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298ECAC */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ECB0 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298ECB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ECB4 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECB4 */ _t53 = _t52 & 0x00000001u;
|
|
/* 0298ECB4 */ if (_t53) goto L_0298ECE4; else goto L_0298ECB8;
|
|
L_0298ECB8: ; // 0x298ecb8
|
|
/* 0298ECB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298ECB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ECBC */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECBC */ _t55 = _t54 & 0x00000001u;
|
|
/* 0298ECBC */ if (_t55) goto L_0298ECC0; else goto L_0298ECD0;
|
|
L_0298ECC0: ; // 0x298ecc0
|
|
/* 0298ECC0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298ECC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ECC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ECCC */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECCC */ _t57 = _t56 & 0x00000001u;
|
|
/* 0298ECCC */ if (_t57) goto L_0298ECDC; else goto L_0298ECD0;
|
|
L_0298ECD0: ; // 0x298ecd0
|
|
/* 0298ECD0 */ _t58 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ECD0 */ rbrew_write32(cpu->mem, _t58, cpu->r[3]);
|
|
/* 0298ECD4 */ _t59 = cpu->r[3] + 0x00000008u;
|
|
/* 0298ECD4 */ rbrew_write32(cpu->mem, _t59, cpu->r[30]);
|
|
/* 0298ECD8 */ _t60 = cpu->r[3] + 0x00000000u;
|
|
/* 0298ECD8 */ rbrew_write32(cpu->mem, _t60, cpu->r[3]);
|
|
L_0298ECDC: ; // 0x298ecdc
|
|
/* 0298ECDC */ cpu->r[9] = 0xFFFFFFFFu;
|
|
/* 0298ECE0 */ _t61 = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298ECE0 */ rbrew_write32(cpu->mem, _t61, cpu->r[9]);
|
|
L_0298ECE4: ; // 0x298ece4
|
|
/* 0298ECE4 */ cpu->r[29] = cpu->r[31] + 0x000000D0u;
|
|
/* 0298ECE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ECE8 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECE8 */ _t63 = _t62 & 0x00000001u;
|
|
/* 0298ECE8 */ if (_t63) goto L_0298ECEC; else goto L_0298ECFC;
|
|
L_0298ECEC: ; // 0x298ecec
|
|
/* 0298ECEC */ cpu->r[3] = 0x00000010u;
|
|
/* 0298ECF0 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ECF4 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298ECF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ECF8 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECF8 */ _t65 = _t64 & 0x00000001u;
|
|
/* 0298ECF8 */ if (_t65) goto L_0298ED28; else goto L_0298ECFC;
|
|
L_0298ECFC: ; // 0x298ecfc
|
|
/* 0298ECFC */ cpu->r[3] = cpu->r[29];
|
|
/* 0298ECFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED00 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED00 */ _t67 = _t66 & 0x00000001u;
|
|
/* 0298ED00 */ if (_t67) goto L_0298ED04; else goto L_0298ED14;
|
|
L_0298ED04: ; // 0x298ed04
|
|
/* 0298ED04 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298ED08 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED10 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED10 */ _t69 = _t68 & 0x00000001u;
|
|
/* 0298ED10 */ if (_t69) goto L_0298ED20; else goto L_0298ED14;
|
|
L_0298ED14: ; // 0x298ed14
|
|
/* 0298ED14 */ _t70 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ED14 */ rbrew_write32(cpu->mem, _t70, cpu->r[3]);
|
|
/* 0298ED18 */ _t71 = cpu->r[3] + 0x00000008u;
|
|
/* 0298ED18 */ rbrew_write32(cpu->mem, _t71, cpu->r[30]);
|
|
/* 0298ED1C */ _t72 = cpu->r[3] + 0x00000000u;
|
|
/* 0298ED1C */ rbrew_write32(cpu->mem, _t72, cpu->r[3]);
|
|
L_0298ED20: ; // 0x298ed20
|
|
/* 0298ED20 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 0298ED24 */ _t73 = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298ED24 */ rbrew_write32(cpu->mem, _t73, cpu->r[0]);
|
|
L_0298ED28: ; // 0x298ed28
|
|
/* 0298ED28 */ cpu->r[29] = cpu->r[31] + 0x000000E0u;
|
|
/* 0298ED28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ED2C */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED2C */ _t75 = _t74 & 0x00000001u;
|
|
/* 0298ED2C */ if (_t75) goto L_0298ED30; else goto L_0298ED40;
|
|
L_0298ED30: ; // 0x298ed30
|
|
/* 0298ED30 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298ED34 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED38 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298ED38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ED3C */ _t76 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED3C */ _t77 = _t76 & 0x00000001u;
|
|
/* 0298ED3C */ if (_t77) goto L_0298ED6C; else goto L_0298ED40;
|
|
L_0298ED40: ; // 0x298ed40
|
|
/* 0298ED40 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298ED40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED44 */ _t78 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED44 */ _t79 = _t78 & 0x00000001u;
|
|
/* 0298ED44 */ if (_t79) goto L_0298ED48; else goto L_0298ED58;
|
|
L_0298ED48: ; // 0x298ed48
|
|
/* 0298ED48 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298ED4C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED54 */ _t80 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED54 */ _t81 = _t80 & 0x00000001u;
|
|
/* 0298ED54 */ if (_t81) goto L_0298ED64; else goto L_0298ED58;
|
|
L_0298ED58: ; // 0x298ed58
|
|
/* 0298ED58 */ _t82 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ED58 */ rbrew_write32(cpu->mem, _t82, cpu->r[3]);
|
|
/* 0298ED5C */ _t83 = cpu->r[3] + 0x00000008u;
|
|
/* 0298ED5C */ rbrew_write32(cpu->mem, _t83, cpu->r[30]);
|
|
/* 0298ED60 */ _t84 = cpu->r[3] + 0x00000000u;
|
|
/* 0298ED60 */ rbrew_write32(cpu->mem, _t84, cpu->r[3]);
|
|
L_0298ED64: ; // 0x298ed64
|
|
/* 0298ED64 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 0298ED68 */ _t85 = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298ED68 */ rbrew_write32(cpu->mem, _t85, cpu->r[0]);
|
|
L_0298ED6C: ; // 0x298ed6c
|
|
/* 0298ED6C */ cpu->r[29] = cpu->r[31] + 0x000000F4u;
|
|
/* 0298ED6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ED70 */ _t86 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED70 */ _t87 = _t86 & 0x00000001u;
|
|
/* 0298ED70 */ if (_t87) goto L_0298ED74; else goto L_0298ED84;
|
|
L_0298ED74: ; // 0x298ed74
|
|
/* 0298ED74 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298ED78 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED7C */ cpu->r[29] = cpu->r[3];
|
|
/* 0298ED7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ED80 */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED80 */ _t89 = _t88 & 0x00000001u;
|
|
/* 0298ED80 */ if (_t89) goto L_0298EDB0; else goto L_0298ED84;
|
|
L_0298ED84: ; // 0x298ed84
|
|
/* 0298ED84 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298ED84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED88 */ _t90 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED88 */ _t91 = _t90 & 0x00000001u;
|
|
/* 0298ED88 */ if (_t91) goto L_0298ED8C; else goto L_0298ED9C;
|
|
L_0298ED8C: ; // 0x298ed8c
|
|
/* 0298ED8C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298ED90 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED98 */ _t92 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED98 */ _t93 = _t92 & 0x00000001u;
|
|
/* 0298ED98 */ if (_t93) goto L_0298EDA8; else goto L_0298ED9C;
|
|
L_0298ED9C: ; // 0x298ed9c
|
|
/* 0298ED9C */ _t94 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ED9C */ rbrew_write32(cpu->mem, _t94, cpu->r[3]);
|
|
/* 0298EDA0 */ _t95 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EDA0 */ rbrew_write32(cpu->mem, _t95, cpu->r[30]);
|
|
/* 0298EDA4 */ _t96 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EDA4 */ rbrew_write32(cpu->mem, _t96, cpu->r[3]);
|
|
L_0298EDA8: ; // 0x298eda8
|
|
/* 0298EDA8 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
/* 0298EDAC */ _t97 = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298EDAC */ rbrew_write32(cpu->mem, _t97, cpu->r[12]);
|
|
L_0298EDB0: ; // 0x298edb0
|
|
/* 0298EDB0 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298EDB4 */ cpu->r[3] = cpu->r[31] + 0x00000108u;
|
|
/* 0298EDB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EDB8 */ _t98 = cpu->r[31] + 0x00000104u;
|
|
/* 0298EDB8 */ rbrew_write32(cpu->mem, _t98, cpu->r[0]);
|
|
/* 0298EDBC */ _t99 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EDBC */ _t100 = _t99 & 0x00000001u;
|
|
/* 0298EDBC */ if (_t100) goto L_0298EDC0; else goto L_0298EDD0;
|
|
L_0298EDC0: ; // 0x298edc0
|
|
/* 0298EDC0 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298EDC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EDC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EDCC */ _t101 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EDCC */ _t102 = _t101 & 0x00000001u;
|
|
/* 0298EDCC */ if (_t102) goto L_0298EDD4; else goto L_0298EDD0;
|
|
L_0298EDD0: ; // 0x298edd0
|
|
/* 0298EDD0 */ _t103 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EDD0 */ rbrew_write32(cpu->mem, _t103, cpu->r[30]);
|
|
L_0298EDD4: ; // 0x298edd4
|
|
/* 0298EDD4 */ cpu->r[3] = cpu->r[31] + 0x0000010Cu;
|
|
/* 0298EDD8 */ Gambit_fn_02836EBC(cpu);
|
|
/* 0298EDDC */ cpu->r[3] = cpu->r[31] + 0x00000148u;
|
|
/* 0298EDE0 */ Gambit_fn_02836EBC(cpu);
|
|
/* 0298EDE4 */ cpu->r[3] = cpu->r[31] + 0x00000184u;
|
|
/* 0298EDE8 */ Gambit_fn_02836EBC(cpu);
|
|
/* 0298EDEC */ cpu->r[10] = 0x10150000u;
|
|
/* 0298EDF0 */ cpu->r[10] = cpu->r[10] + 0xFFFFF9B4u;
|
|
/* 0298EDF4 */ cpu->r[3] = cpu->r[31] + 0x000001C4u;
|
|
/* 0298EDF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EDF8 */ _t104 = cpu->r[31] + 0x000001C0u;
|
|
/* 0298EDF8 */ rbrew_write32(cpu->mem, _t104, cpu->r[10]);
|
|
/* 0298EDFC */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EDFC */ _t106 = _t105 & 0x00000001u;
|
|
/* 0298EDFC */ if (_t106) goto L_0298EE00; else goto L_0298EE10;
|
|
L_0298EE00: ; // 0x298ee00
|
|
/* 0298EE00 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EE04 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EE08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EE0C */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EE0C */ _t108 = _t107 & 0x00000001u;
|
|
/* 0298EE0C */ if (_t108) goto L_0298EE34; else goto L_0298EE10;
|
|
L_0298EE10: ; // 0x298ee10
|
|
/* 0298EE10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EE14 */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EE14 */ _t110 = _t109 & 0x00000001u;
|
|
/* 0298EE14 */ if (_t110) goto L_0298EE18; else goto L_0298EE28;
|
|
L_0298EE18: ; // 0x298ee18
|
|
/* 0298EE18 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EE1C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EE20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EE24 */ _t111 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EE24 */ _t112 = _t111 & 0x00000001u;
|
|
/* 0298EE24 */ if (_t112) goto L_0298EE34; else goto L_0298EE28;
|
|
L_0298EE28: ; // 0x298ee28
|
|
/* 0298EE28 */ _t113 = cpu->r[3] + 0x00000004u;
|
|
/* 0298EE28 */ rbrew_write32(cpu->mem, _t113, cpu->r[30]);
|
|
/* 0298EE2C */ _t114 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EE2C */ rbrew_write32(cpu->mem, _t114, cpu->r[30]);
|
|
/* 0298EE30 */ _t115 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EE30 */ rbrew_write32(cpu->mem, _t115, cpu->r[30]);
|
|
L_0298EE34: ; // 0x298ee34
|
|
/* 0298EE34 */ cpu->r[11] = 0x000000C8u;
|
|
/* 0298EE38 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298EE3C */ _t116 = cpu->r[31] + 0x000000CCu;
|
|
/* 0298EE3C */ rbrew_write32(cpu->mem, _t116, cpu->r[11]);
|
|
/* 0298EE40 */ cpu->r[12] = 0x000000D0u;
|
|
/* 0298EE44 */ _t117 = cpu->r[9] + 0xFFFFFA3Cu;
|
|
/* 0298EE44 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t117);
|
|
/* 0298EE48 */ cpu->r[0] = 0x00000088u;
|
|
/* 0298EE4C */ _t118 = cpu->r[31] + 0x000000DCu;
|
|
/* 0298EE4C */ rbrew_write32(cpu->mem, _t118, cpu->r[12]);
|
|
/* 0298EE50 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298EE54 */ _t119 = cpu->r[31] + 0x000001D0u;
|
|
/* 0298EE54 */ rbrew_write_f32(cpu->mem, _t119, cpu->f[0]);
|
|
/* 0298EE58 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298EE5C */ _t120 = cpu->r[31] + 0x00000100u;
|
|
/* 0298EE5C */ rbrew_write32(cpu->mem, _t120, cpu->r[0]);
|
|
/* 0298EE60 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298EE64 */ _t121 = cpu->r[31] + 0x000000ECu;
|
|
/* 0298EE64 */ rbrew_write32(cpu->mem, _t121, cpu->r[12]);
|
|
/* 0298EE68 */ Gambit_fn_02A11408(cpu);
|
|
L_0298EE6C: ; // 0x298ee6c
|
|
/* 0298EE6C */ _t122 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EE6C */ cpu->r[29] = rbrew_read32(cpu->mem, _t122);
|
|
/* 0298EE70 */ _t123 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EE70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t123);
|
|
/* 0298EE74 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298EE78 */ _t124 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EE78 */ cpu->r[30] = rbrew_read32(cpu->mem, _t124);
|
|
/* 0298EE7C */ cpu->lr = cpu->r[0];
|
|
/* 0298EE80 */ _t125 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EE80 */ cpu->r[31] = rbrew_read32(cpu->mem, _t125);
|
|
/* 0298EE84 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298EE88 */ return;
|
|
}
|
|
|
|
// fn_0298EB80 @ 0x298eb80
|
|
void Gambit_fn_0298EB80(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298EB80: ; // 0x298eb80
|
|
/* 0298EB80 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298EB80 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EB80 */ cpu->r[1] = _t0;
|
|
/* 0298EB84 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EB84 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298EB88 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EB88 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298EB8C */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EB8C */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 0298EB90 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298EB90 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298EB94 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EB94 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298EB98 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EB98 */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298EB98 */ if (_t6) goto L_0298EB9C; else goto L_0298EBAC;
|
|
L_0298EB9C: ; // 0x298eb9c
|
|
/* 0298EB9C */ cpu->r[3] = 0x000001D4u;
|
|
/* 0298EBA0 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EBA4 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298EBA4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298EBA8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBA8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298EBA8 */ if (_t8) goto L_0298EE6C; else goto L_0298EBAC;
|
|
L_0298EBAC: ; // 0x298ebac
|
|
/* 0298EBAC */ cpu->r[12] = 0x10150000u;
|
|
/* 0298EBB0 */ cpu->r[12] = cpu->r[12] + 0xFFFFFA58u;
|
|
/* 0298EBB4 */ cpu->r[3] = cpu->r[31] + 0x00000014u;
|
|
/* 0298EBB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBB8 */ _t9 = cpu->r[31] + 0x00000000u;
|
|
/* 0298EBB8 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
/* 0298EBBC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBBC */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298EBBC */ if (_t11) goto L_0298EBC0; else goto L_0298EBD0;
|
|
L_0298EBC0: ; // 0x298ebc0
|
|
/* 0298EBC0 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298EBC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EBC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBCC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBCC */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298EBCC */ if (_t13) goto L_0298EBD8; else goto L_0298EBD0;
|
|
L_0298EBD0: ; // 0x298ebd0
|
|
/* 0298EBD0 */ cpu->r[0] = 0x0000005Fu;
|
|
/* 0298EBD4 */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EBD4 */ rbrew_write32(cpu->mem, _t14, cpu->r[0]);
|
|
L_0298EBD8: ; // 0x298ebd8
|
|
/* 0298EBD8 */ cpu->r[3] = cpu->r[31] + 0x00000018u;
|
|
/* 0298EBD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBDC */ cpu->r[30] = 0x00000000u;
|
|
/* 0298EBE0 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBE0 */ _t16 = _t15 & 0x00000001u;
|
|
/* 0298EBE0 */ if (_t16) goto L_0298EBE4; else goto L_0298EBF4;
|
|
L_0298EBE4: ; // 0x298ebe4
|
|
/* 0298EBE4 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EBE8 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EBEC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBF0 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBF0 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298EBF0 */ if (_t18) goto L_0298EC18; else goto L_0298EBF4;
|
|
L_0298EBF4: ; // 0x298ebf4
|
|
/* 0298EBF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EBF8 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EBF8 */ _t20 = _t19 & 0x00000001u;
|
|
/* 0298EBF8 */ if (_t20) goto L_0298EBFC; else goto L_0298EC0C;
|
|
L_0298EBFC: ; // 0x298ebfc
|
|
/* 0298EBFC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC00 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC04 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC08 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC08 */ _t22 = _t21 & 0x00000001u;
|
|
/* 0298EC08 */ if (_t22) goto L_0298EC18; else goto L_0298EC0C;
|
|
L_0298EC0C: ; // 0x298ec0c
|
|
/* 0298EC0C */ _t23 = cpu->r[3] + 0x00000004u;
|
|
/* 0298EC0C */ rbrew_write32(cpu->mem, _t23, cpu->r[30]);
|
|
/* 0298EC10 */ _t24 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EC10 */ rbrew_write32(cpu->mem, _t24, cpu->r[30]);
|
|
/* 0298EC14 */ _t25 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EC14 */ rbrew_write32(cpu->mem, _t25, cpu->r[30]);
|
|
L_0298EC18: ; // 0x298ec18
|
|
/* 0298EC18 */ cpu->r[3] = cpu->r[31] + 0x00000024u;
|
|
/* 0298EC18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC1C */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC1C */ _t27 = _t26 & 0x00000001u;
|
|
/* 0298EC1C */ if (_t27) goto L_0298EC20; else goto L_0298EC30;
|
|
L_0298EC20: ; // 0x298ec20
|
|
/* 0298EC20 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC24 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC2C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC2C */ _t29 = _t28 & 0x00000001u;
|
|
/* 0298EC2C */ if (_t29) goto L_0298EC54; else goto L_0298EC30;
|
|
L_0298EC30: ; // 0x298ec30
|
|
/* 0298EC30 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC34 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC34 */ _t31 = _t30 & 0x00000001u;
|
|
/* 0298EC34 */ if (_t31) goto L_0298EC38; else goto L_0298EC48;
|
|
L_0298EC38: ; // 0x298ec38
|
|
/* 0298EC38 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC3C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC44 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC44 */ _t33 = _t32 & 0x00000001u;
|
|
/* 0298EC44 */ if (_t33) goto L_0298EC54; else goto L_0298EC48;
|
|
L_0298EC48: ; // 0x298ec48
|
|
/* 0298EC48 */ _t34 = cpu->r[3] + 0x00000004u;
|
|
/* 0298EC48 */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
/* 0298EC4C */ _t35 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EC4C */ rbrew_write32(cpu->mem, _t35, cpu->r[30]);
|
|
/* 0298EC50 */ _t36 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EC50 */ rbrew_write32(cpu->mem, _t36, cpu->r[30]);
|
|
L_0298EC54: ; // 0x298ec54
|
|
/* 0298EC54 */ cpu->r[3] = cpu->r[31] + 0x00000030u;
|
|
/* 0298EC54 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC58 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC58 */ _t38 = _t37 & 0x00000001u;
|
|
/* 0298EC58 */ if (_t38) goto L_0298EC5C; else goto L_0298EC6C;
|
|
L_0298EC5C: ; // 0x298ec5c
|
|
/* 0298EC5C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC60 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC68 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC68 */ _t40 = _t39 & 0x00000001u;
|
|
/* 0298EC68 */ if (_t40) goto L_0298EC90; else goto L_0298EC6C;
|
|
L_0298EC6C: ; // 0x298ec6c
|
|
/* 0298EC6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC70 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC70 */ _t42 = _t41 & 0x00000001u;
|
|
/* 0298EC70 */ if (_t42) goto L_0298EC74; else goto L_0298EC84;
|
|
L_0298EC74: ; // 0x298ec74
|
|
/* 0298EC74 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EC78 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EC7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EC80 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EC80 */ _t44 = _t43 & 0x00000001u;
|
|
/* 0298EC80 */ if (_t44) goto L_0298EC90; else goto L_0298EC84;
|
|
L_0298EC84: ; // 0x298ec84
|
|
/* 0298EC84 */ _t45 = cpu->r[3] + 0x00000004u;
|
|
/* 0298EC84 */ rbrew_write32(cpu->mem, _t45, cpu->r[30]);
|
|
/* 0298EC88 */ _t46 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EC88 */ rbrew_write32(cpu->mem, _t46, cpu->r[30]);
|
|
/* 0298EC8C */ _t47 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EC8C */ rbrew_write32(cpu->mem, _t47, cpu->r[30]);
|
|
L_0298EC90: ; // 0x298ec90
|
|
/* 0298EC90 */ _t48 = cpu->r[31] + 0x0000003Cu;
|
|
/* 0298EC90 */ rbrew_write32(cpu->mem, _t48, cpu->r[30]);
|
|
/* 0298EC94 */ cpu->r[3] = cpu->r[31] + 0x00000044u;
|
|
/* 0298EC98 */ _t49 = cpu->r[31] + 0x00000040u;
|
|
/* 0298EC98 */ rbrew_write32(cpu->mem, _t49, cpu->r[30]);
|
|
/* 0298EC9C */ Gambit_fn_02A2D69C(cpu);
|
|
/* 0298ECA0 */ cpu->r[29] = cpu->r[31] + 0x000000C0u;
|
|
/* 0298ECA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ECA4 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECA4 */ _t51 = _t50 & 0x00000001u;
|
|
/* 0298ECA4 */ if (_t51) goto L_0298ECA8; else goto L_0298ECB8;
|
|
L_0298ECA8: ; // 0x298eca8
|
|
/* 0298ECA8 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298ECAC */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ECB0 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298ECB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ECB4 */ _t52 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECB4 */ _t53 = _t52 & 0x00000001u;
|
|
/* 0298ECB4 */ if (_t53) goto L_0298ECE4; else goto L_0298ECB8;
|
|
L_0298ECB8: ; // 0x298ecb8
|
|
/* 0298ECB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298ECB8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ECBC */ _t54 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECBC */ _t55 = _t54 & 0x00000001u;
|
|
/* 0298ECBC */ if (_t55) goto L_0298ECC0; else goto L_0298ECD0;
|
|
L_0298ECC0: ; // 0x298ecc0
|
|
/* 0298ECC0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298ECC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ECC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ECCC */ _t56 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECCC */ _t57 = _t56 & 0x00000001u;
|
|
/* 0298ECCC */ if (_t57) goto L_0298ECDC; else goto L_0298ECD0;
|
|
L_0298ECD0: ; // 0x298ecd0
|
|
/* 0298ECD0 */ _t58 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ECD0 */ rbrew_write32(cpu->mem, _t58, cpu->r[3]);
|
|
/* 0298ECD4 */ _t59 = cpu->r[3] + 0x00000008u;
|
|
/* 0298ECD4 */ rbrew_write32(cpu->mem, _t59, cpu->r[30]);
|
|
/* 0298ECD8 */ _t60 = cpu->r[3] + 0x00000000u;
|
|
/* 0298ECD8 */ rbrew_write32(cpu->mem, _t60, cpu->r[3]);
|
|
L_0298ECDC: ; // 0x298ecdc
|
|
/* 0298ECDC */ cpu->r[9] = 0xFFFFFFFFu;
|
|
/* 0298ECE0 */ _t61 = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298ECE0 */ rbrew_write32(cpu->mem, _t61, cpu->r[9]);
|
|
L_0298ECE4: ; // 0x298ece4
|
|
/* 0298ECE4 */ cpu->r[29] = cpu->r[31] + 0x000000D0u;
|
|
/* 0298ECE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ECE8 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECE8 */ _t63 = _t62 & 0x00000001u;
|
|
/* 0298ECE8 */ if (_t63) goto L_0298ECEC; else goto L_0298ECFC;
|
|
L_0298ECEC: ; // 0x298ecec
|
|
/* 0298ECEC */ cpu->r[3] = 0x00000010u;
|
|
/* 0298ECF0 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ECF4 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298ECF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ECF8 */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ECF8 */ _t65 = _t64 & 0x00000001u;
|
|
/* 0298ECF8 */ if (_t65) goto L_0298ED28; else goto L_0298ECFC;
|
|
L_0298ECFC: ; // 0x298ecfc
|
|
/* 0298ECFC */ cpu->r[3] = cpu->r[29];
|
|
/* 0298ECFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED00 */ _t66 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED00 */ _t67 = _t66 & 0x00000001u;
|
|
/* 0298ED00 */ if (_t67) goto L_0298ED04; else goto L_0298ED14;
|
|
L_0298ED04: ; // 0x298ed04
|
|
/* 0298ED04 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298ED08 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED10 */ _t68 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED10 */ _t69 = _t68 & 0x00000001u;
|
|
/* 0298ED10 */ if (_t69) goto L_0298ED20; else goto L_0298ED14;
|
|
L_0298ED14: ; // 0x298ed14
|
|
/* 0298ED14 */ _t70 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ED14 */ rbrew_write32(cpu->mem, _t70, cpu->r[3]);
|
|
/* 0298ED18 */ _t71 = cpu->r[3] + 0x00000008u;
|
|
/* 0298ED18 */ rbrew_write32(cpu->mem, _t71, cpu->r[30]);
|
|
/* 0298ED1C */ _t72 = cpu->r[3] + 0x00000000u;
|
|
/* 0298ED1C */ rbrew_write32(cpu->mem, _t72, cpu->r[3]);
|
|
L_0298ED20: ; // 0x298ed20
|
|
/* 0298ED20 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 0298ED24 */ _t73 = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298ED24 */ rbrew_write32(cpu->mem, _t73, cpu->r[0]);
|
|
L_0298ED28: ; // 0x298ed28
|
|
/* 0298ED28 */ cpu->r[29] = cpu->r[31] + 0x000000E0u;
|
|
/* 0298ED28 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ED2C */ _t74 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED2C */ _t75 = _t74 & 0x00000001u;
|
|
/* 0298ED2C */ if (_t75) goto L_0298ED30; else goto L_0298ED40;
|
|
L_0298ED30: ; // 0x298ed30
|
|
/* 0298ED30 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298ED34 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED38 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298ED38 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ED3C */ _t76 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED3C */ _t77 = _t76 & 0x00000001u;
|
|
/* 0298ED3C */ if (_t77) goto L_0298ED6C; else goto L_0298ED40;
|
|
L_0298ED40: ; // 0x298ed40
|
|
/* 0298ED40 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298ED40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED44 */ _t78 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED44 */ _t79 = _t78 & 0x00000001u;
|
|
/* 0298ED44 */ if (_t79) goto L_0298ED48; else goto L_0298ED58;
|
|
L_0298ED48: ; // 0x298ed48
|
|
/* 0298ED48 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298ED4C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED54 */ _t80 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED54 */ _t81 = _t80 & 0x00000001u;
|
|
/* 0298ED54 */ if (_t81) goto L_0298ED64; else goto L_0298ED58;
|
|
L_0298ED58: ; // 0x298ed58
|
|
/* 0298ED58 */ _t82 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ED58 */ rbrew_write32(cpu->mem, _t82, cpu->r[3]);
|
|
/* 0298ED5C */ _t83 = cpu->r[3] + 0x00000008u;
|
|
/* 0298ED5C */ rbrew_write32(cpu->mem, _t83, cpu->r[30]);
|
|
/* 0298ED60 */ _t84 = cpu->r[3] + 0x00000000u;
|
|
/* 0298ED60 */ rbrew_write32(cpu->mem, _t84, cpu->r[3]);
|
|
L_0298ED64: ; // 0x298ed64
|
|
/* 0298ED64 */ cpu->r[0] = 0xFFFFFFFFu;
|
|
/* 0298ED68 */ _t85 = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298ED68 */ rbrew_write32(cpu->mem, _t85, cpu->r[0]);
|
|
L_0298ED6C: ; // 0x298ed6c
|
|
/* 0298ED6C */ cpu->r[29] = cpu->r[31] + 0x000000F4u;
|
|
/* 0298ED6C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ED70 */ _t86 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED70 */ _t87 = _t86 & 0x00000001u;
|
|
/* 0298ED70 */ if (_t87) goto L_0298ED74; else goto L_0298ED84;
|
|
L_0298ED74: ; // 0x298ed74
|
|
/* 0298ED74 */ cpu->r[3] = 0x00000010u;
|
|
/* 0298ED78 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED7C */ cpu->r[29] = cpu->r[3];
|
|
/* 0298ED7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0298ED80 */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED80 */ _t89 = _t88 & 0x00000001u;
|
|
/* 0298ED80 */ if (_t89) goto L_0298EDB0; else goto L_0298ED84;
|
|
L_0298ED84: ; // 0x298ed84
|
|
/* 0298ED84 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298ED84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED88 */ _t90 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED88 */ _t91 = _t90 & 0x00000001u;
|
|
/* 0298ED88 */ if (_t91) goto L_0298ED8C; else goto L_0298ED9C;
|
|
L_0298ED8C: ; // 0x298ed8c
|
|
/* 0298ED8C */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298ED90 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298ED94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298ED98 */ _t92 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298ED98 */ _t93 = _t92 & 0x00000001u;
|
|
/* 0298ED98 */ if (_t93) goto L_0298EDA8; else goto L_0298ED9C;
|
|
L_0298ED9C: ; // 0x298ed9c
|
|
/* 0298ED9C */ _t94 = cpu->r[3] + 0x00000004u;
|
|
/* 0298ED9C */ rbrew_write32(cpu->mem, _t94, cpu->r[3]);
|
|
/* 0298EDA0 */ _t95 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EDA0 */ rbrew_write32(cpu->mem, _t95, cpu->r[30]);
|
|
/* 0298EDA4 */ _t96 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EDA4 */ rbrew_write32(cpu->mem, _t96, cpu->r[3]);
|
|
L_0298EDA8: ; // 0x298eda8
|
|
/* 0298EDA8 */ cpu->r[12] = 0xFFFFFFFFu;
|
|
/* 0298EDAC */ _t97 = cpu->r[29] + 0x0000000Cu;
|
|
/* 0298EDAC */ rbrew_write32(cpu->mem, _t97, cpu->r[12]);
|
|
L_0298EDB0: ; // 0x298edb0
|
|
/* 0298EDB0 */ cpu->r[0] = 0x00000001u;
|
|
/* 0298EDB4 */ cpu->r[3] = cpu->r[31] + 0x00000108u;
|
|
/* 0298EDB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EDB8 */ _t98 = cpu->r[31] + 0x00000104u;
|
|
/* 0298EDB8 */ rbrew_write32(cpu->mem, _t98, cpu->r[0]);
|
|
/* 0298EDBC */ _t99 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EDBC */ _t100 = _t99 & 0x00000001u;
|
|
/* 0298EDBC */ if (_t100) goto L_0298EDC0; else goto L_0298EDD0;
|
|
L_0298EDC0: ; // 0x298edc0
|
|
/* 0298EDC0 */ cpu->r[3] = 0x00000004u;
|
|
/* 0298EDC4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EDC8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EDCC */ _t101 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EDCC */ _t102 = _t101 & 0x00000001u;
|
|
/* 0298EDCC */ if (_t102) goto L_0298EDD4; else goto L_0298EDD0;
|
|
L_0298EDD0: ; // 0x298edd0
|
|
/* 0298EDD0 */ _t103 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EDD0 */ rbrew_write32(cpu->mem, _t103, cpu->r[30]);
|
|
L_0298EDD4: ; // 0x298edd4
|
|
/* 0298EDD4 */ cpu->r[3] = cpu->r[31] + 0x0000010Cu;
|
|
/* 0298EDD8 */ Gambit_fn_02836EBC(cpu);
|
|
/* 0298EDDC */ cpu->r[3] = cpu->r[31] + 0x00000148u;
|
|
/* 0298EDE0 */ Gambit_fn_02836EBC(cpu);
|
|
/* 0298EDE4 */ cpu->r[3] = cpu->r[31] + 0x00000184u;
|
|
/* 0298EDE8 */ Gambit_fn_02836EBC(cpu);
|
|
/* 0298EDEC */ cpu->r[10] = 0x10150000u;
|
|
/* 0298EDF0 */ cpu->r[10] = cpu->r[10] + 0xFFFFF9B4u;
|
|
/* 0298EDF4 */ cpu->r[3] = cpu->r[31] + 0x000001C4u;
|
|
/* 0298EDF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EDF8 */ _t104 = cpu->r[31] + 0x000001C0u;
|
|
/* 0298EDF8 */ rbrew_write32(cpu->mem, _t104, cpu->r[10]);
|
|
/* 0298EDFC */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EDFC */ _t106 = _t105 & 0x00000001u;
|
|
/* 0298EDFC */ if (_t106) goto L_0298EE00; else goto L_0298EE10;
|
|
L_0298EE00: ; // 0x298ee00
|
|
/* 0298EE00 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EE04 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EE08 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EE0C */ _t107 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EE0C */ _t108 = _t107 & 0x00000001u;
|
|
/* 0298EE0C */ if (_t108) goto L_0298EE34; else goto L_0298EE10;
|
|
L_0298EE10: ; // 0x298ee10
|
|
/* 0298EE10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EE14 */ _t109 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EE14 */ _t110 = _t109 & 0x00000001u;
|
|
/* 0298EE14 */ if (_t110) goto L_0298EE18; else goto L_0298EE28;
|
|
L_0298EE18: ; // 0x298ee18
|
|
/* 0298EE18 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298EE1C */ Gambit_fn_02801A78(cpu);
|
|
/* 0298EE20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EE24 */ _t111 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EE24 */ _t112 = _t111 & 0x00000001u;
|
|
/* 0298EE24 */ if (_t112) goto L_0298EE34; else goto L_0298EE28;
|
|
L_0298EE28: ; // 0x298ee28
|
|
/* 0298EE28 */ _t113 = cpu->r[3] + 0x00000004u;
|
|
/* 0298EE28 */ rbrew_write32(cpu->mem, _t113, cpu->r[30]);
|
|
/* 0298EE2C */ _t114 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EE2C */ rbrew_write32(cpu->mem, _t114, cpu->r[30]);
|
|
/* 0298EE30 */ _t115 = cpu->r[3] + 0x00000008u;
|
|
/* 0298EE30 */ rbrew_write32(cpu->mem, _t115, cpu->r[30]);
|
|
L_0298EE34: ; // 0x298ee34
|
|
/* 0298EE34 */ cpu->r[11] = 0x000000C8u;
|
|
/* 0298EE38 */ cpu->r[9] = 0x10150000u;
|
|
/* 0298EE3C */ _t116 = cpu->r[31] + 0x000000CCu;
|
|
/* 0298EE3C */ rbrew_write32(cpu->mem, _t116, cpu->r[11]);
|
|
/* 0298EE40 */ cpu->r[12] = 0x000000D0u;
|
|
/* 0298EE44 */ _t117 = cpu->r[9] + 0xFFFFFA3Cu;
|
|
/* 0298EE44 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t117);
|
|
/* 0298EE48 */ cpu->r[0] = 0x00000088u;
|
|
/* 0298EE4C */ _t118 = cpu->r[31] + 0x000000DCu;
|
|
/* 0298EE4C */ rbrew_write32(cpu->mem, _t118, cpu->r[12]);
|
|
/* 0298EE50 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298EE54 */ _t119 = cpu->r[31] + 0x000001D0u;
|
|
/* 0298EE54 */ rbrew_write_f32(cpu->mem, _t119, cpu->f[0]);
|
|
/* 0298EE58 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298EE5C */ _t120 = cpu->r[31] + 0x00000100u;
|
|
/* 0298EE5C */ rbrew_write32(cpu->mem, _t120, cpu->r[0]);
|
|
/* 0298EE60 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298EE64 */ _t121 = cpu->r[31] + 0x000000ECu;
|
|
/* 0298EE64 */ rbrew_write32(cpu->mem, _t121, cpu->r[12]);
|
|
/* 0298EE68 */ Gambit_fn_02A11408(cpu);
|
|
L_0298EE6C: ; // 0x298ee6c
|
|
/* 0298EE6C */ _t122 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EE6C */ cpu->r[29] = rbrew_read32(cpu->mem, _t122);
|
|
/* 0298EE70 */ _t123 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EE70 */ cpu->r[0] = rbrew_read32(cpu->mem, _t123);
|
|
/* 0298EE74 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298EE78 */ _t124 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EE78 */ cpu->r[30] = rbrew_read32(cpu->mem, _t124);
|
|
/* 0298EE7C */ cpu->lr = cpu->r[0];
|
|
/* 0298EE80 */ _t125 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EE80 */ cpu->r[31] = rbrew_read32(cpu->mem, _t125);
|
|
/* 0298EE84 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298EE88 */ return;
|
|
}
|
|
|
|
// fn_0298EE8C @ 0x298ee8c
|
|
void Gambit_fn_0298EE8C(CPUState* 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_0298EE8C: ; // 0x298ee8c
|
|
/* 0298EE8C */ cpu->r[0] = cpu->lr;
|
|
/* 0298EE90 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298EE90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EE90 */ cpu->r[1] = _t0;
|
|
/* 0298EE94 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EE94 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298EE98 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EE98 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298EE9C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EE9C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298EEA0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EEA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298EEA4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EEA4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298EEA8 */ cpu->r[29] = 0x101D0000u;
|
|
/* 0298EEAC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298EEB0 */ _t6 = cpu->r[29] + 0xFFFFA6B0u;
|
|
/* 0298EEB0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298EEB0 */ cpu->r[29] = _t6;
|
|
/* 0298EEB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EEB8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EEB8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298EEB8 */ if (_t8) goto L_0298EEBC; else goto L_0298EF0C;
|
|
L_0298EEBC: ; // 0x298eebc
|
|
/* 0298EEBC */ cpu->r[4] = cpu->r[30];
|
|
/* 0298EEC0 */ cpu->r[3] = 0x000001D4u;
|
|
/* 0298EEC4 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298EEC8 */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298EECC */ cpu->r[31] = cpu->r[3];
|
|
/* 0298EED0 */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 0298EED0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298EED4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EED4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298EED4 */ if (_t10) goto L_0298EEF4; else goto L_0298EED8;
|
|
L_0298EED8: ; // 0x298eed8
|
|
/* 0298EED8 */ cpu->r[5] = 0x00000003u;
|
|
/* 0298EEDC */ cpu->r[4] = cpu->r[30];
|
|
/* 0298EEE0 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298EEE4 */ Gambit_fn_02821D88(cpu);
|
|
/* 0298EEE8 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298EEEC */ cpu->r[0] = cpu->r[0] + 0xFFFFFA48u;
|
|
/* 0298EEF0 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 0298EEF0 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_0298EEF4: ; // 0x298eef4
|
|
/* 0298EEF4 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298EEF8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298EEF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EEFC */ _t12 = cpu->r[12] + 0xFFFFA6B4u;
|
|
/* 0298EEFC */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 0298EF00 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EF00 */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298EF00 */ if (_t14) goto L_0298EF08; else goto L_0298EF04;
|
|
L_0298EF04: ; // 0x298ef04
|
|
/* 0298EF04 */ Gambit_fn_0298EB7C(cpu);
|
|
L_0298EF08: ; // 0x298ef08
|
|
/* 0298EF08 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 0298EF08 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_0298EF0C: ; // 0x298ef0c
|
|
/* 0298EF0C */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EF0C */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298EF10 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EF10 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298EF14 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EF14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298EF18 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EF18 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298EF1C */ cpu->lr = cpu->r[0];
|
|
/* 0298EF20 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EF20 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298EF24 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298EF28 */ return;
|
|
}
|
|
|
|
// fn_0298EE90 @ 0x298ee90
|
|
void Gambit_fn_0298EE90(CPUState* 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_0298EE90: ; // 0x298ee90
|
|
/* 0298EE90 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298EE90 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EE90 */ cpu->r[1] = _t0;
|
|
/* 0298EE94 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EE94 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298EE98 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EE98 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298EE9C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EE9C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 0298EEA0 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EEA0 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298EEA4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EEA4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298EEA8 */ cpu->r[29] = 0x101D0000u;
|
|
/* 0298EEAC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298EEB0 */ _t6 = cpu->r[29] + 0xFFFFA6B0u;
|
|
/* 0298EEB0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298EEB0 */ cpu->r[29] = _t6;
|
|
/* 0298EEB4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EEB8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EEB8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298EEB8 */ if (_t8) goto L_0298EEBC; else goto L_0298EF0C;
|
|
L_0298EEBC: ; // 0x298eebc
|
|
/* 0298EEBC */ cpu->r[4] = cpu->r[30];
|
|
/* 0298EEC0 */ cpu->r[3] = 0x000001D4u;
|
|
/* 0298EEC4 */ cpu->r[5] = 0x00000004u;
|
|
/* 0298EEC8 */ Gambit_fn_02801ADC(cpu);
|
|
/* 0298EECC */ cpu->r[31] = cpu->r[3];
|
|
/* 0298EED0 */ cpu->r[28] = cpu->r[31] + 0x00000004u;
|
|
/* 0298EED0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0298EED4 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EED4 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298EED4 */ if (_t10) goto L_0298EEF4; else goto L_0298EED8;
|
|
L_0298EED8: ; // 0x298eed8
|
|
/* 0298EED8 */ cpu->r[5] = 0x00000003u;
|
|
/* 0298EEDC */ cpu->r[4] = cpu->r[30];
|
|
/* 0298EEE0 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298EEE4 */ Gambit_fn_02821D88(cpu);
|
|
/* 0298EEE8 */ cpu->r[0] = 0x10150000u;
|
|
/* 0298EEEC */ cpu->r[0] = cpu->r[0] + 0xFFFFFA48u;
|
|
/* 0298EEF0 */ _t11 = cpu->r[28] + 0x0000000Cu;
|
|
/* 0298EEF0 */ rbrew_write32(cpu->mem, _t11, cpu->r[0]);
|
|
L_0298EEF4: ; // 0x298eef4
|
|
/* 0298EEF4 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298EEF8 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298EEF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EEFC */ _t12 = cpu->r[12] + 0xFFFFA6B4u;
|
|
/* 0298EEFC */ rbrew_write32(cpu->mem, _t12, cpu->r[28]);
|
|
/* 0298EF00 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EF00 */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298EF00 */ if (_t14) goto L_0298EF08; else goto L_0298EF04;
|
|
L_0298EF04: ; // 0x298ef04
|
|
/* 0298EF04 */ Gambit_fn_0298EB7C(cpu);
|
|
L_0298EF08: ; // 0x298ef08
|
|
/* 0298EF08 */ _t15 = cpu->r[29] + 0x00000000u;
|
|
/* 0298EF08 */ rbrew_write32(cpu->mem, _t15, cpu->r[3]);
|
|
L_0298EF0C: ; // 0x298ef0c
|
|
/* 0298EF0C */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EF0C */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298EF10 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EF10 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298EF14 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EF14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298EF18 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EF18 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298EF1C */ cpu->lr = cpu->r[0];
|
|
/* 0298EF20 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EF20 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298EF24 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298EF28 */ return;
|
|
}
|
|
|
|
// fn_0298EF2C @ 0x298ef2c
|
|
void Gambit_fn_0298EF2C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_0298EF2C: ; // 0x298ef2c
|
|
/* 0298EF2C */ cpu->r[0] = cpu->lr;
|
|
/* 0298EF30 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298EF30 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EF30 */ cpu->r[1] = _t0;
|
|
/* 0298EF34 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EF34 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298EF38 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EF38 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298EF3C */ cpu->r[9] = 0x101D0000u;
|
|
/* 0298EF40 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EF40 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298EF44 */ _t4 = cpu->r[9] + 0xFFFFA6B4u;
|
|
/* 0298EF44 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298EF44 */ cpu->r[9] = _t4;
|
|
/* 0298EF48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EF4C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EF4C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298EF4C */ if (_t6) goto L_0298EF94; else goto L_0298EF50;
|
|
L_0298EF50: ; // 0x298ef50
|
|
/* 0298EF50 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298EF54 */ _t7 = cpu->r[9] + 0x00000000u;
|
|
/* 0298EF54 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 0298EF58 */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298EF58 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298EF5C */ _t9 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0298EF5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298EF60 */ cpu->ctr = cpu->r[0];
|
|
/* 0298EF64 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298EF68 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298EF6C */ cpu->r[31] = 0x101D0000u;
|
|
/* 0298EF70 */ _t10 = cpu->r[31] + 0xFFFFA6B0u;
|
|
/* 0298EF70 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298EF70 */ cpu->r[31] = _t10;
|
|
/* 0298EF74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EF78 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EF78 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298EF78 */ if (_t12) goto L_0298EF90; else goto L_0298EF7C;
|
|
L_0298EF7C: ; // 0x298ef7c
|
|
/* 0298EF7C */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EF7C */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298EF80 */ _t14 = cpu->r[10] + 0x00000014u;
|
|
/* 0298EF80 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298EF84 */ cpu->ctr = cpu->r[12];
|
|
/* 0298EF88 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298EF8C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298EF90: ; // 0x298ef90
|
|
/* 0298EF90 */ _t15 = cpu->r[31] + 0x00000000u;
|
|
/* 0298EF90 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_0298EF94: ; // 0x298ef94
|
|
/* 0298EF94 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EF94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298EF98 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EF98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298EF9C */ cpu->lr = cpu->r[0];
|
|
/* 0298EFA0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EFA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298EFA4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298EFA8 */ return;
|
|
}
|
|
|
|
// fn_0298EF30 @ 0x298ef30
|
|
void Gambit_fn_0298EF30(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_0298EF30: ; // 0x298ef30
|
|
/* 0298EF30 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298EF30 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EF30 */ cpu->r[1] = _t0;
|
|
/* 0298EF34 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EF34 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298EF38 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EF38 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298EF3C */ cpu->r[9] = 0x101D0000u;
|
|
/* 0298EF40 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EF40 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298EF44 */ _t4 = cpu->r[9] + 0xFFFFA6B4u;
|
|
/* 0298EF44 */ cpu->r[3] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298EF44 */ cpu->r[9] = _t4;
|
|
/* 0298EF48 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EF4C */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EF4C */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298EF4C */ if (_t6) goto L_0298EF94; else goto L_0298EF50;
|
|
L_0298EF50: ; // 0x298ef50
|
|
/* 0298EF50 */ cpu->r[30] = 0x00000000u;
|
|
/* 0298EF54 */ _t7 = cpu->r[9] + 0x00000000u;
|
|
/* 0298EF54 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 0298EF58 */ _t8 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0298EF58 */ cpu->r[11] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298EF5C */ _t9 = cpu->r[11] + 0x0000000Cu;
|
|
/* 0298EF5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298EF60 */ cpu->ctr = cpu->r[0];
|
|
/* 0298EF64 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298EF68 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298EF6C */ cpu->r[31] = 0x101D0000u;
|
|
/* 0298EF70 */ _t10 = cpu->r[31] + 0xFFFFA6B0u;
|
|
/* 0298EF70 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298EF70 */ cpu->r[31] = _t10;
|
|
/* 0298EF74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298EF78 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EF78 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298EF78 */ if (_t12) goto L_0298EF90; else goto L_0298EF7C;
|
|
L_0298EF7C: ; // 0x298ef7c
|
|
/* 0298EF7C */ _t13 = cpu->r[3] + 0x00000000u;
|
|
/* 0298EF7C */ cpu->r[10] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298EF80 */ _t14 = cpu->r[10] + 0x00000014u;
|
|
/* 0298EF80 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298EF84 */ cpu->ctr = cpu->r[12];
|
|
/* 0298EF88 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298EF8C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298EF90: ; // 0x298ef90
|
|
/* 0298EF90 */ _t15 = cpu->r[31] + 0x00000000u;
|
|
/* 0298EF90 */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
L_0298EF94: ; // 0x298ef94
|
|
/* 0298EF94 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EF94 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298EF98 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EF98 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298EF9C */ cpu->lr = cpu->r[0];
|
|
/* 0298EFA0 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EFA0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298EFA4 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298EFA8 */ return;
|
|
}
|
|
|
|
// fn_0298EFC4 @ 0x298efc4
|
|
void Gambit_fn_0298EFC4(CPUState* cpu) {
|
|
uint32_t _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_0298EFC4: ; // 0x298efc4
|
|
/* 0298EFC4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298EFC8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298EFC8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EFC8 */ cpu->r[1] = _t0;
|
|
/* 0298EFCC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EFCC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298EFD0 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298EFD4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EFD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298EFD8 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EFD8 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 0298EFDC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298EFDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298EFE0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EFE0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 0298EFE4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EFE4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298EFE8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EFE8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298EFE8 */ if (_t7) goto L_0298F084; else goto L_0298EFEC;
|
|
L_0298EFEC: ; // 0x298efec
|
|
/* 0298EFEC */ _t8 = cpu->r[30] + 0x000001C4u;
|
|
/* 0298EFEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298EFF0 */ _t9 = cpu->r[30] + 0x000001CCu;
|
|
/* 0298EFF0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298EFF4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298EFF8 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298EFFC */ cpu->r[29] = cpu->r[28] + cpu->r[12];
|
|
/* 0298F000 */ cpu->r[11] = cpu->r[11] + 0xFFFFFA58u;
|
|
/* 0298F004 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 0298F008 */ _t10 = cpu->r[30] + 0x00000000u;
|
|
/* 0298F008 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 0298F00C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F00C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298F00C */ if (_t12) goto L_0298F03C; else goto L_0298F010;
|
|
L_0298F010: ; // 0x298f010
|
|
/* 0298F010 */ _t13 = cpu->r[28] + 0x00000000u;
|
|
/* 0298F010 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298F014 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298F018 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F018 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298F018 */ if (_t15) goto L_0298F030; else goto L_0298F01C;
|
|
L_0298F01C: ; // 0x298f01c
|
|
/* 0298F01C */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 0298F01C */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F020 */ _t17 = cpu->r[8] + 0x00000014u;
|
|
/* 0298F020 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F024 */ cpu->ctr = cpu->r[0];
|
|
/* 0298F028 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298F02C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298F030: ; // 0x298f030
|
|
/* 0298F030 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298F034 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 0298F038 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F038 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298F038 */ if (_t19) goto L_0298F03C; else goto L_0298F010;
|
|
L_0298F03C: ; // 0x298f03c
|
|
/* 0298F03C */ cpu->r[3] = cpu->r[30] + 0x000001C4u;
|
|
/* 0298F040 */ Gambit_fn_02802424(cpu);
|
|
/* 0298F044 */ cpu->r[3] = cpu->r[30] + 0x00000184u;
|
|
/* 0298F048 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298F04C */ Gambit_fn_02836FA8(cpu);
|
|
/* 0298F050 */ cpu->r[3] = cpu->r[30] + 0x00000148u;
|
|
/* 0298F054 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298F058 */ Gambit_fn_02836FA8(cpu);
|
|
/* 0298F05C */ cpu->r[3] = cpu->r[30] + 0x0000010Cu;
|
|
/* 0298F060 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298F064 */ Gambit_fn_02836FA8(cpu);
|
|
/* 0298F068 */ cpu->r[3] = cpu->r[30] + 0x00000044u;
|
|
/* 0298F06C */ cpu->r[4] = 0x00000002u;
|
|
/* 0298F070 */ Gambit_fn_02A2D8D0(cpu);
|
|
/* 0298F074 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F074 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F078 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F078 */ _t21 = _t20 & 0x00000001u;
|
|
/* 0298F078 */ if (_t21) goto L_0298F084; else goto L_0298F07C;
|
|
L_0298F07C: ; // 0x298f07c
|
|
/* 0298F07C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298F080 */ Gambit_fn_02801BB0(cpu);
|
|
L_0298F084: ; // 0x298f084
|
|
/* 0298F084 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F084 */ cpu->r[28] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F088 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F088 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298F08C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F08C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298F090 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F090 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298F094 */ cpu->lr = cpu->r[0];
|
|
/* 0298F098 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F098 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298F09C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F0A0 */ return;
|
|
}
|
|
|
|
// fn_0298EFC8 @ 0x298efc8
|
|
void Gambit_fn_0298EFC8(CPUState* cpu) {
|
|
uint32_t _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_0298EFC8: ; // 0x298efc8
|
|
/* 0298EFC8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298EFC8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298EFC8 */ cpu->r[1] = _t0;
|
|
/* 0298EFCC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 0298EFCC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298EFD0 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298EFD4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298EFD4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298EFD8 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 0298EFD8 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 0298EFDC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298EFDC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298EFE0 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298EFE0 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 0298EFE4 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298EFE4 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298EFE8 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298EFE8 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298EFE8 */ if (_t7) goto L_0298F084; else goto L_0298EFEC;
|
|
L_0298EFEC: ; // 0x298efec
|
|
/* 0298EFEC */ _t8 = cpu->r[30] + 0x000001C4u;
|
|
/* 0298EFEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298EFF0 */ _t9 = cpu->r[30] + 0x000001CCu;
|
|
/* 0298EFF0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298EFF4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298EFF8 */ cpu->r[11] = 0x10150000u;
|
|
/* 0298EFFC */ cpu->r[29] = cpu->r[28] + cpu->r[12];
|
|
/* 0298F000 */ cpu->r[11] = cpu->r[11] + 0xFFFFFA58u;
|
|
/* 0298F004 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 0298F008 */ _t10 = cpu->r[30] + 0x00000000u;
|
|
/* 0298F008 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 0298F00C */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F00C */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298F00C */ if (_t12) goto L_0298F03C; else goto L_0298F010;
|
|
L_0298F010: ; // 0x298f010
|
|
/* 0298F010 */ _t13 = cpu->r[28] + 0x00000000u;
|
|
/* 0298F010 */ cpu->r[3] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298F014 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298F018 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F018 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298F018 */ if (_t15) goto L_0298F030; else goto L_0298F01C;
|
|
L_0298F01C: ; // 0x298f01c
|
|
/* 0298F01C */ _t16 = cpu->r[3] + 0x00000000u;
|
|
/* 0298F01C */ cpu->r[8] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F020 */ _t17 = cpu->r[8] + 0x00000014u;
|
|
/* 0298F020 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F024 */ cpu->ctr = cpu->r[0];
|
|
/* 0298F028 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298F02C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298F030: ; // 0x298f030
|
|
/* 0298F030 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298F034 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[29]);
|
|
/* 0298F038 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F038 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298F038 */ if (_t19) goto L_0298F03C; else goto L_0298F010;
|
|
L_0298F03C: ; // 0x298f03c
|
|
/* 0298F03C */ cpu->r[3] = cpu->r[30] + 0x000001C4u;
|
|
/* 0298F040 */ Gambit_fn_02802424(cpu);
|
|
/* 0298F044 */ cpu->r[3] = cpu->r[30] + 0x00000184u;
|
|
/* 0298F048 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298F04C */ Gambit_fn_02836FA8(cpu);
|
|
/* 0298F050 */ cpu->r[3] = cpu->r[30] + 0x00000148u;
|
|
/* 0298F054 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298F058 */ Gambit_fn_02836FA8(cpu);
|
|
/* 0298F05C */ cpu->r[3] = cpu->r[30] + 0x0000010Cu;
|
|
/* 0298F060 */ cpu->r[4] = 0x00000002u;
|
|
/* 0298F064 */ Gambit_fn_02836FA8(cpu);
|
|
/* 0298F068 */ cpu->r[3] = cpu->r[30] + 0x00000044u;
|
|
/* 0298F06C */ cpu->r[4] = 0x00000002u;
|
|
/* 0298F070 */ Gambit_fn_02A2D8D0(cpu);
|
|
/* 0298F074 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F074 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F078 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F078 */ _t21 = _t20 & 0x00000001u;
|
|
/* 0298F078 */ if (_t21) goto L_0298F084; else goto L_0298F07C;
|
|
L_0298F07C: ; // 0x298f07c
|
|
/* 0298F07C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298F080 */ Gambit_fn_02801BB0(cpu);
|
|
L_0298F084: ; // 0x298f084
|
|
/* 0298F084 */ _t22 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F084 */ cpu->r[28] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F088 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F088 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298F08C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F08C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298F090 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F090 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298F094 */ cpu->lr = cpu->r[0];
|
|
/* 0298F098 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F098 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0298F09C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F0A0 */ return;
|
|
}
|
|
|
|
// fn_0298F0A4 @ 0x298f0a4
|
|
void Gambit_fn_0298F0A4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298F0A4: ; // 0x298f0a4
|
|
/* 0298F0A4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F0A8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298F0A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F0A8 */ cpu->r[1] = _t0;
|
|
/* 0298F0AC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F0AC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298F0B0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F0B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298F0B4 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F0B8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F0BC */ cpu->r[5] = cpu->r[31];
|
|
/* 0298F0C0 */ cpu->r[4] = 0x00000008u;
|
|
/* 0298F0C4 */ cpu->r[3] = cpu->r[30] + 0x00000018u;
|
|
/* 0298F0C8 */ cpu->r[6] = 0x00000004u;
|
|
/* 0298F0CC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F0CC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298F0D0 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298F0D4 */ cpu->r[6] = 0x00000004u;
|
|
/* 0298F0D8 */ cpu->r[4] = 0x00000008u;
|
|
/* 0298F0DC */ cpu->r[5] = cpu->r[31];
|
|
/* 0298F0E0 */ cpu->r[3] = cpu->r[30] + 0x00000024u;
|
|
/* 0298F0E4 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298F0E8 */ cpu->r[6] = 0x00000004u;
|
|
/* 0298F0EC */ cpu->r[4] = 0x00000008u;
|
|
/* 0298F0F0 */ cpu->r[5] = cpu->r[31];
|
|
/* 0298F0F4 */ cpu->r[3] = cpu->r[30] + 0x00000030u;
|
|
/* 0298F0F8 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298F0FC */ cpu->r[3] = cpu->r[30] + 0x00000044u;
|
|
/* 0298F100 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F104 */ Gambit_fn_02A2D8E4(cpu);
|
|
/* 0298F108 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298F10C */ _t4 = cpu->r[12] + 0xFFFFA304u;
|
|
/* 0298F10C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298F110 */ _t5 = cpu->r[12] + 0x00000030u;
|
|
/* 0298F110 */ cpu->r[5] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F114 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 0298F118 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F118 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298F118 */ if (_t7) goto L_0298F12C; else goto L_0298F11C;
|
|
L_0298F11C: ; // 0x298f11c
|
|
/* 0298F11C */ cpu->r[6] = 0x00000004u;
|
|
/* 0298F120 */ cpu->r[4] = 0x00000800u;
|
|
/* 0298F124 */ cpu->r[3] = cpu->r[30] + 0x000001C4u;
|
|
/* 0298F128 */ Gambit_fn_028023CC(cpu);
|
|
L_0298F12C: ; // 0x298f12c
|
|
/* 0298F12C */ cpu->r[5] = 0x00000004u;
|
|
/* 0298F130 */ cpu->r[4] = 0x00000006u;
|
|
/* 0298F134 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298F138 */ Gambit_fn_02A11408(cpu);
|
|
/* 0298F13C */ cpu->r[5] = 0x00000004u;
|
|
/* 0298F140 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298F144 */ cpu->r[3] = cpu->r[30] + 0x000001C0u;
|
|
/* 0298F148 */ Gambit_fn_02A11408(cpu);
|
|
/* 0298F14C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F14C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298F150 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F150 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298F154 */ cpu->lr = cpu->r[0];
|
|
/* 0298F158 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F158 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298F15C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298F160 */ return;
|
|
}
|
|
|
|
// fn_0298F0A8 @ 0x298f0a8
|
|
void Gambit_fn_0298F0A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_0298F0A8: ; // 0x298f0a8
|
|
/* 0298F0A8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0298F0A8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F0A8 */ cpu->r[1] = _t0;
|
|
/* 0298F0AC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F0AC */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298F0B0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F0B0 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0298F0B4 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F0B8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F0BC */ cpu->r[5] = cpu->r[31];
|
|
/* 0298F0C0 */ cpu->r[4] = 0x00000008u;
|
|
/* 0298F0C4 */ cpu->r[3] = cpu->r[30] + 0x00000018u;
|
|
/* 0298F0C8 */ cpu->r[6] = 0x00000004u;
|
|
/* 0298F0CC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F0CC */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298F0D0 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298F0D4 */ cpu->r[6] = 0x00000004u;
|
|
/* 0298F0D8 */ cpu->r[4] = 0x00000008u;
|
|
/* 0298F0DC */ cpu->r[5] = cpu->r[31];
|
|
/* 0298F0E0 */ cpu->r[3] = cpu->r[30] + 0x00000024u;
|
|
/* 0298F0E4 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298F0E8 */ cpu->r[6] = 0x00000004u;
|
|
/* 0298F0EC */ cpu->r[4] = 0x00000008u;
|
|
/* 0298F0F0 */ cpu->r[5] = cpu->r[31];
|
|
/* 0298F0F4 */ cpu->r[3] = cpu->r[30] + 0x00000030u;
|
|
/* 0298F0F8 */ Gambit_fn_028023CC(cpu);
|
|
/* 0298F0FC */ cpu->r[3] = cpu->r[30] + 0x00000044u;
|
|
/* 0298F100 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F104 */ Gambit_fn_02A2D8E4(cpu);
|
|
/* 0298F108 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298F10C */ _t4 = cpu->r[12] + 0xFFFFA304u;
|
|
/* 0298F10C */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298F110 */ _t5 = cpu->r[12] + 0x00000030u;
|
|
/* 0298F110 */ cpu->r[5] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F114 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0x00000000u);
|
|
/* 0298F118 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F118 */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298F118 */ if (_t7) goto L_0298F12C; else goto L_0298F11C;
|
|
L_0298F11C: ; // 0x298f11c
|
|
/* 0298F11C */ cpu->r[6] = 0x00000004u;
|
|
/* 0298F120 */ cpu->r[4] = 0x00000800u;
|
|
/* 0298F124 */ cpu->r[3] = cpu->r[30] + 0x000001C4u;
|
|
/* 0298F128 */ Gambit_fn_028023CC(cpu);
|
|
L_0298F12C: ; // 0x298f12c
|
|
/* 0298F12C */ cpu->r[5] = 0x00000004u;
|
|
/* 0298F130 */ cpu->r[4] = 0x00000006u;
|
|
/* 0298F134 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298F138 */ Gambit_fn_02A11408(cpu);
|
|
/* 0298F13C */ cpu->r[5] = 0x00000004u;
|
|
/* 0298F140 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298F144 */ cpu->r[3] = cpu->r[30] + 0x000001C0u;
|
|
/* 0298F148 */ Gambit_fn_02A11408(cpu);
|
|
/* 0298F14C */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F14C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298F150 */ _t9 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F150 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298F154 */ cpu->lr = cpu->r[0];
|
|
/* 0298F158 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F158 */ cpu->r[31] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298F15C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 0298F160 */ return;
|
|
}
|
|
|
|
// fn_0298F164 @ 0x298f164
|
|
void Gambit_fn_0298F164(CPUState* cpu) {
|
|
uint32_t _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_0298F164: ; // 0x298f164
|
|
/* 0298F164 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 0298F164 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F164 */ cpu->r[1] = _t0;
|
|
/* 0298F168 */ /* nop */
|
|
/* 0298F16C */ cpu->r[0] = cpu->lr;
|
|
/* 0298F170 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298F170 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298F174 */ cpu->r[28] = cpu->r[3];
|
|
/* 0298F178 */ _t2 = cpu->r[28] + 0x00000018u;
|
|
/* 0298F178 */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298F17C */ _t3 = cpu->r[28] + 0x00000020u;
|
|
/* 0298F17C */ cpu->r[30] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298F180 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F184 */ cpu->r[0] = cpu->r[30] + cpu->r[12];
|
|
/* 0298F188 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 0298F18C */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F190 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F190 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298F190 */ if (_t5) goto L_0298F1C0; else goto L_0298F194;
|
|
L_0298F194: ; // 0x298f194
|
|
/* 0298F194 */ _t6 = cpu->r[30] + 0x00000000u;
|
|
/* 0298F194 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F198 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F19C */ cpu->r[5] = 0x00000001u;
|
|
/* 0298F1A0 */ Gambit_fn_029A0258(cpu);
|
|
/* 0298F1A4 */ _t7 = cpu->r[28] + 0x00000018u;
|
|
/* 0298F1A4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F1A8 */ _t8 = cpu->r[28] + 0x00000020u;
|
|
/* 0298F1A8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298F1AC */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F1B0 */ cpu->r[30] = cpu->r[30] + 0x00000004u;
|
|
/* 0298F1B4 */ cpu->r[0] = cpu->r[12] + cpu->r[0];
|
|
/* 0298F1B8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[0]);
|
|
/* 0298F1BC */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F1BC */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298F1BC */ if (_t10) goto L_0298F1C0; else goto L_0298F194;
|
|
L_0298F1C0: ; // 0x298f1c0
|
|
/* 0298F1C0 */ cpu->r[31] = cpu->r[28] + 0x00000184u;
|
|
/* 0298F1C4 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298F1C8 */ Gambit_fn_02836FFC(cpu);
|
|
/* 0298F1CC */ _t11 = cpu->r[28] + 0x000000DCu;
|
|
/* 0298F1CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298F1D0 */ cpu->r[26] = cpu->r[28] + 0x000000D0u;
|
|
/* 0298F1D4 */ _t12 = cpu->r[28] + 0x000000D4u;
|
|
/* 0298F1D4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298F1D8 */ cpu->r[0] = cpu->r[26] - cpu->r[30];
|
|
/* 0298F1DC */ cpu->r[3] = cpu->r[6] - cpu->r[30];
|
|
/* 0298F1E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 0298F1E4 */ _t13 = cpu->r[6] + 0x00000004u;
|
|
/* 0298F1E4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298F1E8 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F1E8 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298F1E8 */ if (_t15) goto L_0298F20C; else goto L_0298F1EC;
|
|
L_0298F1EC: ; // 0x298f1ec
|
|
/* 0298F1EC */ cpu->r[4] = 0x00000001u;
|
|
/* 0298F1F0 */ Gambit_fn_0297FDF8(cpu);
|
|
/* 0298F1F4 */ cpu->r[3] = cpu->r[29] - cpu->r[30];
|
|
/* 0298F1F8 */ _t16 = cpu->r[29] + 0x00000004u;
|
|
/* 0298F1F8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F1FC */ _t17 = cpu->r[26] + 0x0000000Cu;
|
|
/* 0298F1FC */ cpu->r[5] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F200 */ cpu->r[0] = cpu->r[26] - cpu->r[5];
|
|
/* 0298F204 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[3], cpu->r[0]);
|
|
/* 0298F208 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F208 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298F208 */ if (_t19) goto L_0298F20C; else goto L_0298F1EC;
|
|
L_0298F20C: ; // 0x298f20c
|
|
/* 0298F20C */ _t20 = cpu->r[28] + 0x000000ECu;
|
|
/* 0298F20C */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F210 */ cpu->r[25] = cpu->r[28] + 0x000000E0u;
|
|
/* 0298F214 */ _t21 = cpu->r[28] + 0x000000E4u;
|
|
/* 0298F214 */ cpu->r[7] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F218 */ cpu->r[0] = cpu->r[25] - cpu->r[10];
|
|
/* 0298F21C */ cpu->r[27] = cpu->r[7] - cpu->r[10];
|
|
/* 0298F220 */ cpu->r[30] = cpu->r[10];
|
|
/* 0298F224 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[0]);
|
|
/* 0298F228 */ _t22 = cpu->r[7] + 0x00000004u;
|
|
/* 0298F228 */ cpu->r[29] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F22C */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F22C */ _t24 = _t23 & 0x00000001u;
|
|
/* 0298F22C */ if (_t24) goto L_0298F278; else goto L_0298F230;
|
|
L_0298F230: ; // 0x298f230
|
|
/* 0298F230 */ cpu->r[3] = cpu->r[27] + cpu->r[10];
|
|
/* 0298F234 */ Gambit_fn_02801EDC(cpu);
|
|
/* 0298F238 */ _t25 = cpu->r[25] + 0x00000008u;
|
|
/* 0298F238 */ cpu->r[8] = rbrew_read32(cpu->mem, _t25);
|
|
/* 0298F23C */ cpu->r[8] = cpu->r[8] + 0xFFFFFFFFu;
|
|
/* 0298F240 */ _t26 = cpu->r[25] + 0x00000008u;
|
|
/* 0298F240 */ rbrew_write32(cpu->mem, _t26, cpu->r[8]);
|
|
/* 0298F244 */ _t27 = cpu->r[26] + 0x0000000Cu;
|
|
/* 0298F244 */ cpu->r[9] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298F248 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298F24C */ cpu->r[4] = cpu->r[27] + cpu->r[9];
|
|
/* 0298F250 */ Gambit_fn_02801EBC(cpu);
|
|
/* 0298F254 */ _t28 = cpu->r[26] + 0x00000008u;
|
|
/* 0298F254 */ cpu->r[11] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298F258 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 0298F25C */ _t29 = cpu->r[26] + 0x00000008u;
|
|
/* 0298F25C */ rbrew_write32(cpu->mem, _t29, cpu->r[11]);
|
|
/* 0298F260 */ _t30 = cpu->r[25] + 0x0000000Cu;
|
|
/* 0298F260 */ cpu->r[10] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298F264 */ cpu->r[27] = cpu->r[29] - cpu->r[30];
|
|
/* 0298F268 */ cpu->r[0] = cpu->r[25] - cpu->r[10];
|
|
/* 0298F26C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[27], cpu->r[0]);
|
|
/* 0298F270 */ _t31 = cpu->r[29] + 0x00000004u;
|
|
/* 0298F270 */ cpu->r[29] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298F274 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F274 */ _t33 = _t32 & 0x00000001u;
|
|
/* 0298F274 */ if (_t33) goto L_0298F278; else goto L_0298F230;
|
|
L_0298F278: ; // 0x298f278
|
|
/* 0298F278 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298F27C */ _t34 = cpu->r[28] + 0x000000F0u;
|
|
/* 0298F27C */ rbrew_write32(cpu->mem, _t34, cpu->r[26]);
|
|
/* 0298F280 */ Gambit_fn_02837030(cpu);
|
|
/* 0298F284 */ /* nop */
|
|
/* 0298F288 */ _t35 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298F288 */ cpu->r[0] = rbrew_read32(cpu->mem, _t35);
|
|
/* 0298F28C */ cpu->lr = cpu->r[0];
|
|
/* 0298F290 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 0298F294 */ return;
|
|
}
|
|
|
|
// fn_0298F298 @ 0x298f298
|
|
void Gambit_fn_0298F298(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298F298: ; // 0x298f298
|
|
/* 0298F298 */ _t0 = cpu->r[1] + 0xFFFFFFD0u;
|
|
/* 0298F298 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F298 */ cpu->r[1] = _t0;
|
|
/* 0298F29C */ /* nop */
|
|
/* 0298F2A0 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F2A4 */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 0298F2A4 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 0298F2A8 */ /* nop */
|
|
/* 0298F2AC */ _t2 = cpu->r[1] + 0x00000034u;
|
|
/* 0298F2AC */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0298F2B0 */ _t3 = cpu->r[1] + 0x00000028u;
|
|
/* 0298F2B0 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 0298F2B4 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298F2B8 */ _t4 = cpu->r[29] + 0x00000014u;
|
|
/* 0298F2B8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298F2BC */ cpu->r[31] = cpu->r[5];
|
|
/* 0298F2C0 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298F2C4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000018u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F2C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F2C8 */ cpu->f[31] = cpu->f[1];
|
|
/* 0298F2CC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F2CC */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298F2CC */ if (_t6) goto L_0298F2D8; else goto L_0298F2D0;
|
|
L_0298F2D0: ; // 0x298f2d0
|
|
/* 0298F2D0 */ cpu->r[5] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x00000018u, 0x00000016u);
|
|
/* 0298F2D4 */ _t7 = cpu->r[29] + 0x00000014u;
|
|
/* 0298F2D4 */ rbrew_write32(cpu->mem, _t7, cpu->r[5]);
|
|
L_0298F2D8: ; // 0x298f2d8
|
|
/* 0298F2D8 */ cpu->r[27] = cpu->r[29] + 0x0000010Cu;
|
|
/* 0298F2DC */ cpu->r[3] = cpu->r[27];
|
|
/* 0298F2E0 */ Gambit_fn_02836FFC(cpu);
|
|
/* 0298F2E4 */ _t8 = cpu->r[29] + 0x00000024u;
|
|
/* 0298F2E4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298F2E8 */ _t9 = cpu->r[29] + 0x0000002Cu;
|
|
/* 0298F2E8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298F2EC */ cpu->r[0] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F2F0 */ cpu->r[8] = cpu->r[28] + cpu->r[0];
|
|
/* 0298F2F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[8]);
|
|
/* 0298F2F8 */ cpu->r[26] = 0x00000000u;
|
|
/* 0298F2FC */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F2FC */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F2FC */ if (_t11) goto L_0298F358; else goto L_0298F300;
|
|
L_0298F300: ; // 0x298f300
|
|
/* 0298F300 */ _t12 = cpu->r[29] + 0x0000001Cu;
|
|
/* 0298F300 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298F304 */ _t13 = cpu->r[29] + 0x00000018u;
|
|
/* 0298F304 */ cpu->r[11] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298F308 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], cpu->r[0]);
|
|
/* 0298F30C */ _t14 = cpu->r[28] + 0x00000000u;
|
|
/* 0298F30C */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F310 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298F310 */ _t16 = _t15 & 0x00000001u;
|
|
/* 0298F310 */ if (_t16) goto L_0298F314; else goto L_0298F330;
|
|
L_0298F314: ; // 0x298f314
|
|
/* 0298F314 */ _t17 = cpu->r[29] + 0x00000020u;
|
|
/* 0298F314 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F318 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F31C */ _t18 = cpu->r[10] + cpu->r[0];
|
|
/* 0298F31C */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 0298F320 */ _t19 = cpu->r[29] + 0x00000018u;
|
|
/* 0298F320 */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F324 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 0298F328 */ _t20 = cpu->r[29] + 0x00000018u;
|
|
/* 0298F328 */ rbrew_write32(cpu->mem, _t20, cpu->r[12]);
|
|
/* 0298F32C */ _t21 = cpu->r[28] + 0x00000000u;
|
|
/* 0298F32C */ cpu->r[3] = rbrew_read32(cpu->mem, _t21);
|
|
L_0298F330: ; // 0x298f330
|
|
/* 0298F330 */ cpu->r[5] = 0x00000000u;
|
|
/* 0298F334 */ cpu->r[4] = 0x00000001u;
|
|
/* 0298F338 */ Gambit_fn_029A0258(cpu);
|
|
/* 0298F33C */ _t22 = cpu->r[29] + 0x00000024u;
|
|
/* 0298F33C */ cpu->r[6] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F340 */ _t23 = cpu->r[29] + 0x0000002Cu;
|
|
/* 0298F340 */ cpu->r[8] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298F344 */ cpu->r[5] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F348 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298F34C */ cpu->r[7] = cpu->r[8] + cpu->r[5];
|
|
/* 0298F350 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 0298F354 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F354 */ _t25 = _t24 & 0x00000001u;
|
|
/* 0298F354 */ if (_t25) goto L_0298F358; else goto L_0298F300;
|
|
L_0298F358: ; // 0x298f358
|
|
/* 0298F358 */ cpu->r[3] = cpu->r[27];
|
|
/* 0298F35C */ _t26 = cpu->r[29] + 0x00000024u;
|
|
/* 0298F35C */ rbrew_write32(cpu->mem, _t26, cpu->r[26]);
|
|
/* 0298F360 */ Gambit_fn_02837030(cpu);
|
|
/* 0298F364 */ cpu->r[27] = cpu->r[29] + 0x00000148u;
|
|
/* 0298F368 */ cpu->r[3] = cpu->r[27];
|
|
/* 0298F36C */ Gambit_fn_02836FFC(cpu);
|
|
/* 0298F370 */ _t27 = cpu->r[29] + 0x00000018u;
|
|
/* 0298F370 */ cpu->r[10] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298F374 */ _t28 = cpu->r[29] + 0x00000020u;
|
|
/* 0298F374 */ cpu->r[28] = rbrew_read32(cpu->mem, _t28);
|
|
/* 0298F378 */ cpu->r[9] = rbrew_rlwinm(cpu->r[10], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F37C */ cpu->r[11] = cpu->r[28] + cpu->r[9];
|
|
/* 0298F380 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[11]);
|
|
/* 0298F384 */ _t29 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F384 */ rbrew_write32(cpu->mem, _t29, cpu->r[26]);
|
|
/* 0298F388 */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F388 */ _t31 = _t30 & 0x00000001u;
|
|
/* 0298F388 */ if (_t31) goto L_0298F408; else goto L_0298F38C;
|
|
L_0298F38C: ; // 0x298f38c
|
|
/* 0298F38C */ _t32 = cpu->r[28] + 0x00000000u;
|
|
/* 0298F38C */ cpu->r[3] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298F390 */ Gambit_fn_029A01F4(cpu);
|
|
/* 0298F394 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298F398 */ _t33 = cpu->r[28] + 0x00000000u;
|
|
/* 0298F398 */ cpu->r[3] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298F39C */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F39C */ _t35 = _t34 & 0x00000001u;
|
|
/* 0298F39C */ if (_t35) goto L_0298F3E8; else goto L_0298F3A0;
|
|
L_0298F3A0: ; // 0x298f3a0
|
|
/* 0298F3A0 */ _t36 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F3A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t36);
|
|
/* 0298F3A4 */ _t37 = cpu->r[29] + 0x00000034u;
|
|
/* 0298F3A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t37);
|
|
/* 0298F3A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], cpu->r[0]);
|
|
/* 0298F3AC */ _t38 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298F3AC */ _t39 = _t38 & 0x00000001u;
|
|
/* 0298F3AC */ if (_t39) goto L_0298F3B0; else goto L_0298F3EC;
|
|
L_0298F3B0: ; // 0x298f3b0
|
|
/* 0298F3B0 */ _t40 = cpu->r[29] + 0x00000038u;
|
|
/* 0298F3B0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0298F3B4 */ cpu->r[5] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F3B8 */ _t41 = cpu->r[5] + cpu->r[0];
|
|
/* 0298F3B8 */ rbrew_write32(cpu->mem, _t41, cpu->r[3]);
|
|
/* 0298F3BC */ _t42 = cpu->r[29] + 0x00000018u;
|
|
/* 0298F3BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 0298F3C0 */ _t43 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F3C0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t43);
|
|
/* 0298F3C4 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F3C8 */ _t44 = cpu->r[29] + 0x00000020u;
|
|
/* 0298F3C8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t44);
|
|
/* 0298F3CC */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298F3D0 */ cpu->r[0] = cpu->r[11] + cpu->r[8];
|
|
/* 0298F3D4 */ cpu->r[7] = cpu->r[7] + 0x00000001u;
|
|
/* 0298F3D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 0298F3DC */ _t45 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F3DC */ rbrew_write32(cpu->mem, _t45, cpu->r[7]);
|
|
/* 0298F3E0 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F3E0 */ _t47 = _t46 & 0x00000001u;
|
|
/* 0298F3E0 */ if (_t47) goto L_0298F3E4; else goto L_0298F38C;
|
|
L_0298F3E4: ; // 0x298f3e4
|
|
/* 0298F3E4 */ goto L_0298F408;
|
|
L_0298F3E8: ; // 0x298f3e8
|
|
/* 0298F3E8 */ Gambit_fn_029A01E0(cpu);
|
|
L_0298F3EC: ; // 0x298f3ec
|
|
/* 0298F3EC */ _t48 = cpu->r[29] + 0x00000018u;
|
|
/* 0298F3EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 0298F3F0 */ _t49 = cpu->r[29] + 0x00000020u;
|
|
/* 0298F3F0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t49);
|
|
/* 0298F3F4 */ cpu->r[8] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F3F8 */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298F3FC */ cpu->r[0] = cpu->r[11] + cpu->r[8];
|
|
/* 0298F400 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 0298F404 */ _t50 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F404 */ _t51 = _t50 & 0x00000001u;
|
|
/* 0298F404 */ if (_t51) goto L_0298F408; else goto L_0298F38C;
|
|
L_0298F408: ; // 0x298f408
|
|
/* 0298F408 */ cpu->r[3] = cpu->r[27];
|
|
/* 0298F40C */ Gambit_fn_02837030(cpu);
|
|
/* 0298F410 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298F414 */ _t52 = cpu->r[12] + 0xFFFFA9C0u;
|
|
/* 0298F414 */ cpu->r[12] = rbrew_read32(cpu->mem, _t52);
|
|
/* 0298F418 */ cpu->r[5] = 0x00000B00u;
|
|
/* 0298F41C */ cpu->r[4] = 0x00000000u;
|
|
/* 0298F420 */ cpu->r[3] = cpu->r[12] + 0x00006308u;
|
|
/* 0298F424 */ rbrew_dispatch(cpu, 0x02d0a6f0u);
|
|
/* 0298F428 */ _t53 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F428 */ cpu->r[6] = rbrew_read32(cpu->mem, _t53);
|
|
/* 0298F42C */ _t54 = cpu->r[29] + 0x00000038u;
|
|
/* 0298F42C */ cpu->r[28] = rbrew_read32(cpu->mem, _t54);
|
|
/* 0298F430 */ cpu->r[5] = rbrew_rlwinm(cpu->r[6], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F434 */ cpu->r[7] = cpu->r[28] + cpu->r[5];
|
|
/* 0298F438 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[7]);
|
|
/* 0298F43C */ _t55 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F43C */ _t56 = _t55 & 0x00000001u;
|
|
/* 0298F43C */ if (_t56) goto L_0298F47C; else goto L_0298F440;
|
|
L_0298F440: ; // 0x298f440
|
|
/* 0298F440 */ _t57 = cpu->r[28] + 0x00000000u;
|
|
/* 0298F440 */ cpu->r[12] = rbrew_read32(cpu->mem, _t57);
|
|
/* 0298F444 */ _t58 = cpu->r[12] + 0x00004FACu;
|
|
/* 0298F444 */ rbrew_write32(cpu->mem, _t58, cpu->r[30]);
|
|
/* 0298F448 */ _t59 = cpu->r[28] + 0x00000000u;
|
|
/* 0298F448 */ cpu->r[3] = rbrew_read32(cpu->mem, _t59);
|
|
/* 0298F44C */ Gambit_fn_029A00A0(cpu);
|
|
/* 0298F450 */ cpu->f[1] = cpu->f[31];
|
|
/* 0298F454 */ _t60 = cpu->r[28] + 0x00000000u;
|
|
/* 0298F454 */ cpu->r[3] = rbrew_read32(cpu->mem, _t60);
|
|
/* 0298F458 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F45C */ Gambit_fn_029A0528(cpu);
|
|
/* 0298F460 */ _t61 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F460 */ cpu->r[9] = rbrew_read32(cpu->mem, _t61);
|
|
/* 0298F464 */ _t62 = cpu->r[29] + 0x00000038u;
|
|
/* 0298F464 */ cpu->r[11] = rbrew_read32(cpu->mem, _t62);
|
|
/* 0298F468 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F46C */ cpu->r[28] = cpu->r[28] + 0x00000004u;
|
|
/* 0298F470 */ cpu->r[0] = cpu->r[11] + cpu->r[8];
|
|
/* 0298F474 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[0]);
|
|
/* 0298F478 */ _t63 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F478 */ _t64 = _t63 & 0x00000001u;
|
|
/* 0298F478 */ if (_t64) goto L_0298F47C; else goto L_0298F440;
|
|
L_0298F47C: ; // 0x298f47c
|
|
/* 0298F47C */ cpu->r[3] = cpu->r[29] + 0x00000044u;
|
|
/* 0298F480 */ cpu->r[4] = cpu->r[29] + 0x00000030u;
|
|
/* 0298F484 */ Gambit_fn_02A2DB64(cpu);
|
|
/* 0298F488 */ /* nop */
|
|
/* 0298F48C */ _t65 = cpu->r[1] + 0x00000028u;
|
|
/* 0298F48C */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t65);
|
|
/* 0298F490 */ _t66 = cpu->r[1] + 0x00000020u;
|
|
/* 0298F490 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t66);
|
|
/* 0298F494 */ _t67 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298F494 */ _t68 = _t67 & 0x00000001u;
|
|
/* 0298F494 */ if (_t68) goto L_0298F498; // else: addr-0 trap, fall-through
|
|
L_0298F498: ; // 0x298f498
|
|
/* 0298F498 */ _t69 = cpu->r[1] + 0x00000034u;
|
|
/* 0298F498 */ cpu->r[0] = rbrew_read32(cpu->mem, _t69);
|
|
/* 0298F49C */ cpu->lr = cpu->r[0];
|
|
/* 0298F4A0 */ cpu->r[1] = cpu->r[1] + 0x00000030u;
|
|
/* 0298F4A4 */ return;
|
|
}
|
|
|
|
// fn_0298F4A8 @ 0x298f4a8
|
|
void Gambit_fn_0298F4A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_0298F4A8: ; // 0x298f4a8
|
|
/* 0298F4A8 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F4AC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F4AC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F4AC */ cpu->r[1] = _t0;
|
|
/* 0298F4B0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F4B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F4B4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F4B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F4B8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F4B8 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F4BC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F4C0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F4C0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F4C4 */ _t5 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F4C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F4C8 */ _t6 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F4C8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F4CC */ cpu->r[11] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F4D0 */ cpu->r[0] = cpu->r[29] + cpu->r[11];
|
|
/* 0298F4D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F4D8 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F4DC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F4DC */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298F4DC */ if (_t8) goto L_0298F508; else goto L_0298F4E0;
|
|
L_0298F4E0: ; // 0x298f4e0
|
|
/* 0298F4E0 */ _t9 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F4E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298F4E4 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F4E8 */ Gambit_fn_029A0AC0(cpu);
|
|
/* 0298F4EC */ _t10 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F4EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298F4F0 */ _t11 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F4F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298F4F4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F4F8 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F4FC */ cpu->r[0] = cpu->r[10] + cpu->r[0];
|
|
/* 0298F500 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F504 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F504 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F504 */ if (_t13) goto L_0298F508; else goto L_0298F4E0;
|
|
L_0298F508: ; // 0x298f508
|
|
/* 0298F508 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F508 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F50C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F50C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F510 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F510 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F514 */ cpu->lr = cpu->r[0];
|
|
/* 0298F518 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F518 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F51C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F520 */ return;
|
|
}
|
|
|
|
// fn_0298F4AC @ 0x298f4ac
|
|
void Gambit_fn_0298F4AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17;
|
|
|
|
L_0298F4AC: ; // 0x298f4ac
|
|
/* 0298F4AC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F4AC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F4AC */ cpu->r[1] = _t0;
|
|
/* 0298F4B0 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F4B0 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F4B4 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F4B4 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F4B8 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F4B8 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F4BC */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F4C0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F4C0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F4C4 */ _t5 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F4C4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F4C8 */ _t6 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F4C8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F4CC */ cpu->r[11] = rbrew_rlwinm(cpu->r[12], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F4D0 */ cpu->r[0] = cpu->r[29] + cpu->r[11];
|
|
/* 0298F4D4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F4D8 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F4DC */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F4DC */ _t8 = _t7 & 0x00000001u;
|
|
/* 0298F4DC */ if (_t8) goto L_0298F508; else goto L_0298F4E0;
|
|
L_0298F4E0: ; // 0x298f4e0
|
|
/* 0298F4E0 */ _t9 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F4E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298F4E4 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F4E8 */ Gambit_fn_029A0AC0(cpu);
|
|
/* 0298F4EC */ _t10 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F4EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298F4F0 */ _t11 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F4F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298F4F4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[8], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F4F8 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F4FC */ cpu->r[0] = cpu->r[10] + cpu->r[0];
|
|
/* 0298F500 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F504 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F504 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F504 */ if (_t13) goto L_0298F508; else goto L_0298F4E0;
|
|
L_0298F508: ; // 0x298f508
|
|
/* 0298F508 */ _t14 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F508 */ cpu->r[29] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F50C */ _t15 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F50C */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F510 */ _t16 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F510 */ cpu->r[30] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F514 */ cpu->lr = cpu->r[0];
|
|
/* 0298F518 */ _t17 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F518 */ cpu->r[31] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F51C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F520 */ return;
|
|
}
|
|
|
|
// fn_0298F524 @ 0x298f524
|
|
void Gambit_fn_0298F524(CPUState* cpu) {
|
|
uint32_t _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_0298F524: ; // 0x298f524
|
|
/* 0298F524 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F528 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F528 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F528 */ cpu->r[1] = _t0;
|
|
/* 0298F52C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F52C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F530 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F530 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F534 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F534 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F538 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F538 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F53C */ cpu->r[29] = cpu->r[3];
|
|
/* 0298F540 */ cpu->r[31] = cpu->r[29] + 0x00000184u;
|
|
/* 0298F544 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298F548 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298F54C */ Gambit_fn_02836FFC(cpu);
|
|
/* 0298F550 */ cpu->r[0] = cpu->r[29] + 0x000000E0u;
|
|
/* 0298F554 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298F558 */ _t5 = cpu->r[29] + 0x000000F0u;
|
|
/* 0298F558 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298F55C */ Gambit_fn_02837030(cpu);
|
|
/* 0298F560 */ _t6 = cpu->r[29] + 0x00000014u;
|
|
/* 0298F560 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F564 */ _t7 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F564 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F568 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F568 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298F56C */ _t8 = cpu->r[29] + 0x00000038u;
|
|
/* 0298F56C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298F570 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F570 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298F570 */ if (_t10) goto L_0298F57C; else goto L_0298F574;
|
|
L_0298F574: ; // 0x298f574
|
|
/* 0298F574 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F574 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F578 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F578 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298F578 */ if (_t12) goto L_0298F57C; else goto L_0298F580;
|
|
L_0298F57C: ; // 0x298f57c
|
|
/* 0298F57C */ cpu->r[30] = 0x00000000u;
|
|
L_0298F580: ; // 0x298f580
|
|
/* 0298F580 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F584 */ cpu->r[0] = cpu->r[31] + cpu->r[12];
|
|
/* 0298F588 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 0298F58C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F58C */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298F58C */ if (_t14) goto L_0298F5B8; else goto L_0298F590;
|
|
L_0298F590: ; // 0x298f590
|
|
/* 0298F590 */ _t15 = cpu->r[31] + 0x00000000u;
|
|
/* 0298F590 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F594 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298F598 */ Gambit_fn_029A0B18(cpu);
|
|
/* 0298F59C */ _t16 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F59C */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F5A0 */ _t17 = cpu->r[29] + 0x00000038u;
|
|
/* 0298F5A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F5A4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F5A8 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 0298F5AC */ cpu->r[0] = cpu->r[11] + cpu->r[12];
|
|
/* 0298F5B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 0298F5B4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F5B4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298F5B4 */ if (_t19) goto L_0298F5B8; else goto L_0298F590;
|
|
L_0298F5B8: ; // 0x298f5b8
|
|
/* 0298F5B8 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F5B8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F5BC */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F5BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F5C0 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F5C0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F5C4 */ cpu->lr = cpu->r[0];
|
|
/* 0298F5C8 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F5C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298F5CC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F5D0 */ return;
|
|
}
|
|
|
|
// fn_0298F528 @ 0x298f528
|
|
void Gambit_fn_0298F528(CPUState* cpu) {
|
|
uint32_t _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_0298F528: ; // 0x298f528
|
|
/* 0298F528 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F528 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F528 */ cpu->r[1] = _t0;
|
|
/* 0298F52C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F52C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F530 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F530 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F534 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F534 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F538 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F538 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F53C */ cpu->r[29] = cpu->r[3];
|
|
/* 0298F540 */ cpu->r[31] = cpu->r[29] + 0x00000184u;
|
|
/* 0298F544 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298F548 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298F54C */ Gambit_fn_02836FFC(cpu);
|
|
/* 0298F550 */ cpu->r[0] = cpu->r[29] + 0x000000E0u;
|
|
/* 0298F554 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298F558 */ _t5 = cpu->r[29] + 0x000000F0u;
|
|
/* 0298F558 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298F55C */ Gambit_fn_02837030(cpu);
|
|
/* 0298F560 */ _t6 = cpu->r[29] + 0x00000014u;
|
|
/* 0298F560 */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F564 */ _t7 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F564 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F568 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F568 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0298F56C */ _t8 = cpu->r[29] + 0x00000038u;
|
|
/* 0298F56C */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298F570 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F570 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298F570 */ if (_t10) goto L_0298F57C; else goto L_0298F574;
|
|
L_0298F574: ; // 0x298f574
|
|
/* 0298F574 */ cpu->r[11] = rbrew_rlwinm(cpu->r[11], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F574 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F578 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F578 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298F578 */ if (_t12) goto L_0298F57C; else goto L_0298F580;
|
|
L_0298F57C: ; // 0x298f57c
|
|
/* 0298F57C */ cpu->r[30] = 0x00000000u;
|
|
L_0298F580: ; // 0x298f580
|
|
/* 0298F580 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F584 */ cpu->r[0] = cpu->r[31] + cpu->r[12];
|
|
/* 0298F588 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 0298F58C */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F58C */ _t14 = _t13 & 0x00000001u;
|
|
/* 0298F58C */ if (_t14) goto L_0298F5B8; else goto L_0298F590;
|
|
L_0298F590: ; // 0x298f590
|
|
/* 0298F590 */ _t15 = cpu->r[31] + 0x00000000u;
|
|
/* 0298F590 */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F594 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298F598 */ Gambit_fn_029A0B18(cpu);
|
|
/* 0298F59C */ _t16 = cpu->r[29] + 0x00000030u;
|
|
/* 0298F59C */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F5A0 */ _t17 = cpu->r[29] + 0x00000038u;
|
|
/* 0298F5A0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F5A4 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F5A8 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 0298F5AC */ cpu->r[0] = cpu->r[11] + cpu->r[12];
|
|
/* 0298F5B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 0298F5B4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F5B4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 0298F5B4 */ if (_t19) goto L_0298F5B8; else goto L_0298F590;
|
|
L_0298F5B8: ; // 0x298f5b8
|
|
/* 0298F5B8 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F5B8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F5BC */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F5BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F5C0 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F5C0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F5C4 */ cpu->lr = cpu->r[0];
|
|
/* 0298F5C8 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F5C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298F5CC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F5D0 */ return;
|
|
}
|
|
|
|
// fn_0298F5D4 @ 0x298f5d4
|
|
void Gambit_fn_0298F5D4(CPUState* cpu) {
|
|
uint32_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_0298F5D4: ; // 0x298f5d4
|
|
/* 0298F5D4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F5D8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F5D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F5D8 */ cpu->r[1] = _t0;
|
|
/* 0298F5DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F5DC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F5E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F5E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F5E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F5E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F5E8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F5EC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F5EC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F5F0 */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F5F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F5F4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F5F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F5F8 */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F5F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F5FC */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F600 */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F600 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F604 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F604 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F604 */ if (_t9) goto L_0298F610; else goto L_0298F608;
|
|
L_0298F608: ; // 0x298f608
|
|
/* 0298F608 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F608 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F60C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F60C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F60C */ if (_t11) goto L_0298F610; else goto L_0298F614;
|
|
L_0298F610: ; // 0x298f610
|
|
/* 0298F610 */ cpu->r[31] = 0x00000000u;
|
|
L_0298F614: ; // 0x298f614
|
|
/* 0298F614 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F618 */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F61C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F620 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F620 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F620 */ if (_t13) goto L_0298F64C; else goto L_0298F624;
|
|
L_0298F624: ; // 0x298f624
|
|
/* 0298F624 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F624 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F628 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F62C */ Gambit_fn_029A0B20(cpu);
|
|
/* 0298F630 */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F630 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F634 */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F634 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F638 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F63C */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F640 */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F644 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F648 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F648 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F648 */ if (_t18) goto L_0298F64C; else goto L_0298F624;
|
|
L_0298F64C: ; // 0x298f64c
|
|
/* 0298F64C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F64C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F650 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F650 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F654 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F654 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F658 */ cpu->lr = cpu->r[0];
|
|
/* 0298F65C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F65C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F660 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F664 */ return;
|
|
}
|
|
|
|
// fn_0298F5D8 @ 0x298f5d8
|
|
void Gambit_fn_0298F5D8(CPUState* cpu) {
|
|
uint32_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_0298F5D8: ; // 0x298f5d8
|
|
/* 0298F5D8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F5D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F5D8 */ cpu->r[1] = _t0;
|
|
/* 0298F5DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F5DC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F5E0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F5E0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F5E4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F5E4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F5E8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F5EC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F5EC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F5F0 */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F5F0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F5F4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F5F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F5F8 */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F5F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F5FC */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F600 */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F600 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F604 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F604 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F604 */ if (_t9) goto L_0298F610; else goto L_0298F608;
|
|
L_0298F608: ; // 0x298f608
|
|
/* 0298F608 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F608 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F60C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F60C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F60C */ if (_t11) goto L_0298F610; else goto L_0298F614;
|
|
L_0298F610: ; // 0x298f610
|
|
/* 0298F610 */ cpu->r[31] = 0x00000000u;
|
|
L_0298F614: ; // 0x298f614
|
|
/* 0298F614 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F618 */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F61C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F620 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F620 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F620 */ if (_t13) goto L_0298F64C; else goto L_0298F624;
|
|
L_0298F624: ; // 0x298f624
|
|
/* 0298F624 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F624 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F628 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F62C */ Gambit_fn_029A0B20(cpu);
|
|
/* 0298F630 */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F630 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F634 */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F634 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F638 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F63C */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F640 */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F644 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F648 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F648 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F648 */ if (_t18) goto L_0298F64C; else goto L_0298F624;
|
|
L_0298F64C: ; // 0x298f64c
|
|
/* 0298F64C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F64C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F650 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F650 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F654 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F654 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F658 */ cpu->lr = cpu->r[0];
|
|
/* 0298F65C */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F65C */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F660 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F664 */ return;
|
|
}
|
|
|
|
// fn_0298F668 @ 0x298f668
|
|
void Gambit_fn_0298F668(CPUState* cpu) {
|
|
uint32_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_0298F668: ; // 0x298f668
|
|
/* 0298F668 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F66C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F66C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F66C */ cpu->r[1] = _t0;
|
|
/* 0298F670 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F670 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F674 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F674 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F678 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F678 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F67C */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F680 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F680 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F684 */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F684 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F688 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F688 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F68C */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F68C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F690 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F694 */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F694 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F698 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F698 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F698 */ if (_t9) goto L_0298F6A4; else goto L_0298F69C;
|
|
L_0298F69C: ; // 0x298f69c
|
|
/* 0298F69C */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F69C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F6A0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F6A0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F6A0 */ if (_t11) goto L_0298F6A4; else goto L_0298F6A8;
|
|
L_0298F6A4: ; // 0x298f6a4
|
|
/* 0298F6A4 */ cpu->r[31] = 0x00000000u;
|
|
L_0298F6A8: ; // 0x298f6a8
|
|
/* 0298F6A8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F6AC */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F6B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F6B4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F6B4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F6B4 */ if (_t13) goto L_0298F6E0; else goto L_0298F6B8;
|
|
L_0298F6B8: ; // 0x298f6b8
|
|
/* 0298F6B8 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F6B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F6BC */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F6C0 */ Gambit_fn_029A0B68(cpu);
|
|
/* 0298F6C4 */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F6C4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F6C8 */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F6C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F6CC */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F6D0 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F6D4 */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F6D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F6DC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F6DC */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F6DC */ if (_t18) goto L_0298F6E0; else goto L_0298F6B8;
|
|
L_0298F6E0: ; // 0x298f6e0
|
|
/* 0298F6E0 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F6E0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F6E4 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F6E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F6E8 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F6E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F6EC */ cpu->lr = cpu->r[0];
|
|
/* 0298F6F0 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F6F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F6F4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F6F8 */ return;
|
|
}
|
|
|
|
// fn_0298F66C @ 0x298f66c
|
|
void Gambit_fn_0298F66C(CPUState* cpu) {
|
|
uint32_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_0298F66C: ; // 0x298f66c
|
|
/* 0298F66C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F66C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F66C */ cpu->r[1] = _t0;
|
|
/* 0298F670 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F670 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F674 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F674 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F678 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F678 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F67C */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F680 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F680 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F684 */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F684 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F688 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F688 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F68C */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F68C */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F690 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F694 */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F694 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F698 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F698 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F698 */ if (_t9) goto L_0298F6A4; else goto L_0298F69C;
|
|
L_0298F69C: ; // 0x298f69c
|
|
/* 0298F69C */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F69C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F6A0 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F6A0 */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F6A0 */ if (_t11) goto L_0298F6A4; else goto L_0298F6A8;
|
|
L_0298F6A4: ; // 0x298f6a4
|
|
/* 0298F6A4 */ cpu->r[31] = 0x00000000u;
|
|
L_0298F6A8: ; // 0x298f6a8
|
|
/* 0298F6A8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F6AC */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F6B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F6B4 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F6B4 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F6B4 */ if (_t13) goto L_0298F6E0; else goto L_0298F6B8;
|
|
L_0298F6B8: ; // 0x298f6b8
|
|
/* 0298F6B8 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F6B8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F6BC */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F6C0 */ Gambit_fn_029A0B68(cpu);
|
|
/* 0298F6C4 */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F6C4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F6C8 */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F6C8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F6CC */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F6D0 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F6D4 */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F6D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F6DC */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F6DC */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F6DC */ if (_t18) goto L_0298F6E0; else goto L_0298F6B8;
|
|
L_0298F6E0: ; // 0x298f6e0
|
|
/* 0298F6E0 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F6E0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F6E4 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F6E4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F6E8 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F6E8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F6EC */ cpu->lr = cpu->r[0];
|
|
/* 0298F6F0 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F6F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F6F4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F6F8 */ return;
|
|
}
|
|
|
|
// fn_0298F6FC @ 0x298f6fc
|
|
void Gambit_fn_0298F6FC(CPUState* cpu) {
|
|
uint32_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_0298F6FC: ; // 0x298f6fc
|
|
/* 0298F6FC */ cpu->r[0] = cpu->lr;
|
|
/* 0298F700 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F700 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F700 */ cpu->r[1] = _t0;
|
|
/* 0298F704 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F704 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F708 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F708 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F70C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F70C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F710 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F714 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F714 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F718 */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F718 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F71C */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F71C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F720 */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F720 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F724 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F728 */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F728 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F72C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F72C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F72C */ if (_t9) goto L_0298F738; else goto L_0298F730;
|
|
L_0298F730: ; // 0x298f730
|
|
/* 0298F730 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F730 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F734 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F734 */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F734 */ if (_t11) goto L_0298F738; else goto L_0298F73C;
|
|
L_0298F738: ; // 0x298f738
|
|
/* 0298F738 */ cpu->r[31] = 0x00000000u;
|
|
L_0298F73C: ; // 0x298f73c
|
|
/* 0298F73C */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F740 */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F744 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F748 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F748 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F748 */ if (_t13) goto L_0298F774; else goto L_0298F74C;
|
|
L_0298F74C: ; // 0x298f74c
|
|
/* 0298F74C */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F74C */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F750 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F754 */ Gambit_fn_029A0B78(cpu);
|
|
/* 0298F758 */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F758 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F75C */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F75C */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F760 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F764 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F768 */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F76C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F770 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F770 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F770 */ if (_t18) goto L_0298F774; else goto L_0298F74C;
|
|
L_0298F774: ; // 0x298f774
|
|
/* 0298F774 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F774 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F778 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F778 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F77C */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F77C */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F780 */ cpu->lr = cpu->r[0];
|
|
/* 0298F784 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F784 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F788 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F78C */ return;
|
|
}
|
|
|
|
// fn_0298F700 @ 0x298f700
|
|
void Gambit_fn_0298F700(CPUState* cpu) {
|
|
uint32_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_0298F700: ; // 0x298f700
|
|
/* 0298F700 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F700 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F700 */ cpu->r[1] = _t0;
|
|
/* 0298F704 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F704 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F708 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F708 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F70C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F70C */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F710 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F714 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F714 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F718 */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F718 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F71C */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F71C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F720 */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F720 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F724 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F728 */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F728 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F72C */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F72C */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F72C */ if (_t9) goto L_0298F738; else goto L_0298F730;
|
|
L_0298F730: ; // 0x298f730
|
|
/* 0298F730 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F730 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F734 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F734 */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F734 */ if (_t11) goto L_0298F738; else goto L_0298F73C;
|
|
L_0298F738: ; // 0x298f738
|
|
/* 0298F738 */ cpu->r[31] = 0x00000000u;
|
|
L_0298F73C: ; // 0x298f73c
|
|
/* 0298F73C */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F740 */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F744 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F748 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F748 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F748 */ if (_t13) goto L_0298F774; else goto L_0298F74C;
|
|
L_0298F74C: ; // 0x298f74c
|
|
/* 0298F74C */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F74C */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F750 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F754 */ Gambit_fn_029A0B78(cpu);
|
|
/* 0298F758 */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F758 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F75C */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F75C */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F760 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F764 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F768 */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F76C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F770 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F770 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F770 */ if (_t18) goto L_0298F774; else goto L_0298F74C;
|
|
L_0298F774: ; // 0x298f774
|
|
/* 0298F774 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F774 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F778 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F778 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F77C */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F77C */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F780 */ cpu->lr = cpu->r[0];
|
|
/* 0298F784 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F784 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F788 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F78C */ return;
|
|
}
|
|
|
|
// fn_0298F790 @ 0x298f790
|
|
void Gambit_fn_0298F790(CPUState* cpu) {
|
|
uint32_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_0298F790: ; // 0x298f790
|
|
/* 0298F790 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F794 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F794 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F794 */ cpu->r[1] = _t0;
|
|
/* 0298F798 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F798 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F79C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F79C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F7A0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F7A0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F7A4 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F7A8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F7A8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F7AC */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F7AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F7B0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F7B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F7B4 */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F7B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F7B8 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F7BC */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F7BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F7C0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F7C0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F7C0 */ if (_t9) goto L_0298F7CC; else goto L_0298F7C4;
|
|
L_0298F7C4: ; // 0x298f7c4
|
|
/* 0298F7C4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F7C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F7C8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F7C8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F7C8 */ if (_t11) goto L_0298F7CC; else goto L_0298F7D0;
|
|
L_0298F7CC: ; // 0x298f7cc
|
|
/* 0298F7CC */ cpu->r[31] = 0x00000000u;
|
|
L_0298F7D0: ; // 0x298f7d0
|
|
/* 0298F7D0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F7D4 */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F7D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F7DC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F7DC */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F7DC */ if (_t13) goto L_0298F808; else goto L_0298F7E0;
|
|
L_0298F7E0: ; // 0x298f7e0
|
|
/* 0298F7E0 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F7E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F7E4 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F7E8 */ Gambit_fn_029A0B88(cpu);
|
|
/* 0298F7EC */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F7EC */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F7F0 */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F7F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F7F4 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F7F8 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F7FC */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F800 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F804 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F804 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F804 */ if (_t18) goto L_0298F808; else goto L_0298F7E0;
|
|
L_0298F808: ; // 0x298f808
|
|
/* 0298F808 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F808 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F80C */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F80C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F810 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F810 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F814 */ cpu->lr = cpu->r[0];
|
|
/* 0298F818 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F818 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F81C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F820 */ return;
|
|
}
|
|
|
|
// fn_0298F794 @ 0x298f794
|
|
void Gambit_fn_0298F794(CPUState* cpu) {
|
|
uint32_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_0298F794: ; // 0x298f794
|
|
/* 0298F794 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F794 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F794 */ cpu->r[1] = _t0;
|
|
/* 0298F798 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F798 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F79C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F79C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F7A0 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F7A0 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F7A4 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F7A8 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F7A8 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F7AC */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F7AC */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F7B0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F7B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F7B4 */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F7B4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F7B8 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F7BC */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F7BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F7C0 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F7C0 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F7C0 */ if (_t9) goto L_0298F7CC; else goto L_0298F7C4;
|
|
L_0298F7C4: ; // 0x298f7c4
|
|
/* 0298F7C4 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F7C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F7C8 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F7C8 */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F7C8 */ if (_t11) goto L_0298F7CC; else goto L_0298F7D0;
|
|
L_0298F7CC: ; // 0x298f7cc
|
|
/* 0298F7CC */ cpu->r[31] = 0x00000000u;
|
|
L_0298F7D0: ; // 0x298f7d0
|
|
/* 0298F7D0 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F7D4 */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F7D8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F7DC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F7DC */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F7DC */ if (_t13) goto L_0298F808; else goto L_0298F7E0;
|
|
L_0298F7E0: ; // 0x298f7e0
|
|
/* 0298F7E0 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F7E0 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F7E4 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F7E8 */ Gambit_fn_029A0B88(cpu);
|
|
/* 0298F7EC */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F7EC */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F7F0 */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F7F0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F7F4 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F7F8 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F7FC */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F800 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F804 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F804 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F804 */ if (_t18) goto L_0298F808; else goto L_0298F7E0;
|
|
L_0298F808: ; // 0x298f808
|
|
/* 0298F808 */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F808 */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F80C */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F80C */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F810 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F810 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F814 */ cpu->lr = cpu->r[0];
|
|
/* 0298F818 */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F818 */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F81C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F820 */ return;
|
|
}
|
|
|
|
// fn_0298F824 @ 0x298f824
|
|
void Gambit_fn_0298F824(CPUState* cpu) {
|
|
uint32_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_0298F824: ; // 0x298f824
|
|
/* 0298F824 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F828 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F828 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F828 */ cpu->r[1] = _t0;
|
|
/* 0298F82C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F82C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F830 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F830 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F834 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F834 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F838 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F83C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F83C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F840 */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F840 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F844 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F848 */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F848 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F84C */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F850 */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F850 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F854 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F854 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F854 */ if (_t9) goto L_0298F860; else goto L_0298F858;
|
|
L_0298F858: ; // 0x298f858
|
|
/* 0298F858 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Au, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F858 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F85C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F85C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F85C */ if (_t11) goto L_0298F860; else goto L_0298F864;
|
|
L_0298F860: ; // 0x298f860
|
|
/* 0298F860 */ cpu->r[31] = 0x00000000u;
|
|
L_0298F864: ; // 0x298f864
|
|
/* 0298F864 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F868 */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F86C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F870 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F870 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F870 */ if (_t13) goto L_0298F89C; else goto L_0298F874;
|
|
L_0298F874: ; // 0x298f874
|
|
/* 0298F874 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F874 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F878 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F87C */ Gambit_fn_029A0BF0(cpu);
|
|
/* 0298F880 */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F880 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F884 */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F884 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F888 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F88C */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F890 */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F894 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F898 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F898 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F898 */ if (_t18) goto L_0298F89C; else goto L_0298F874;
|
|
L_0298F89C: ; // 0x298f89c
|
|
/* 0298F89C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F89C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F8A0 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F8A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F8A4 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F8A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F8A8 */ cpu->lr = cpu->r[0];
|
|
/* 0298F8AC */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F8AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F8B0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F8B4 */ return;
|
|
}
|
|
|
|
// fn_0298F828 @ 0x298f828
|
|
void Gambit_fn_0298F828(CPUState* cpu) {
|
|
uint32_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_0298F828: ; // 0x298f828
|
|
/* 0298F828 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F828 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F828 */ cpu->r[1] = _t0;
|
|
/* 0298F82C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F82C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F830 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F830 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298F834 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F834 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298F838 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298F83C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F83C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 0298F840 */ _t5 = cpu->r[30] + 0x00000014u;
|
|
/* 0298F840 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 0298F844 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F844 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298F848 */ _t6 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F848 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F84C */ cpu->r[31] = cpu->r[4];
|
|
/* 0298F850 */ _t7 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F850 */ cpu->r[29] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F854 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F854 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F854 */ if (_t9) goto L_0298F860; else goto L_0298F858;
|
|
L_0298F858: ; // 0x298f858
|
|
/* 0298F858 */ cpu->r[11] = rbrew_rlwinm(cpu->r[10], 0x0000001Au, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0298F858 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298F85C */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F85C */ _t11 = _t10 & 0x00000001u;
|
|
/* 0298F85C */ if (_t11) goto L_0298F860; else goto L_0298F864;
|
|
L_0298F860: ; // 0x298f860
|
|
/* 0298F860 */ cpu->r[31] = 0x00000000u;
|
|
L_0298F864: ; // 0x298f864
|
|
/* 0298F864 */ cpu->r[12] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F868 */ cpu->r[0] = cpu->r[29] + cpu->r[12];
|
|
/* 0298F86C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F870 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F870 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F870 */ if (_t13) goto L_0298F89C; else goto L_0298F874;
|
|
L_0298F874: ; // 0x298f874
|
|
/* 0298F874 */ _t14 = cpu->r[29] + 0x00000000u;
|
|
/* 0298F874 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F878 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298F87C */ Gambit_fn_029A0BF0(cpu);
|
|
/* 0298F880 */ _t15 = cpu->r[30] + 0x00000030u;
|
|
/* 0298F880 */ cpu->r[9] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F884 */ _t16 = cpu->r[30] + 0x00000038u;
|
|
/* 0298F884 */ cpu->r[12] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F888 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298F88C */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 0298F890 */ cpu->r[0] = cpu->r[12] + cpu->r[8];
|
|
/* 0298F894 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[29], cpu->r[0]);
|
|
/* 0298F898 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F898 */ _t18 = _t17 & 0x00000001u;
|
|
/* 0298F898 */ if (_t18) goto L_0298F89C; else goto L_0298F874;
|
|
L_0298F89C: ; // 0x298f89c
|
|
/* 0298F89C */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F89C */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298F8A0 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F8A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298F8A4 */ _t21 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F8A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298F8A8 */ cpu->lr = cpu->r[0];
|
|
/* 0298F8AC */ _t22 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F8AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298F8B0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F8B4 */ return;
|
|
}
|
|
|
|
// fn_0298F8B8 @ 0x298f8b8
|
|
void Gambit_fn_0298F8B8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_0298F8B8: ; // 0x298f8b8
|
|
/* 0298F8B8 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 0298F8B8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F8B8 */ cpu->r[1] = _t0;
|
|
/* 0298F8BC */ /* nop */
|
|
/* 0298F8C0 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F8C4 */ _t1 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298F8C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298F8C8 */ cpu->r[26] = cpu->r[3];
|
|
/* 0298F8CC */ _t2 = cpu->r[26] + 0x00000100u;
|
|
/* 0298F8CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298F8D0 */ cpu->r[25] = cpu->r[26] + 0x000000F4u;
|
|
/* 0298F8D4 */ _t3 = cpu->r[26] + 0x000000F8u;
|
|
/* 0298F8D4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298F8D8 */ cpu->r[31] = cpu->r[25] - cpu->r[30];
|
|
/* 0298F8DC */ cpu->r[28] = cpu->r[8] - cpu->r[30];
|
|
/* 0298F8E0 */ cpu->r[27] = 0x00000000u;
|
|
/* 0298F8E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 0298F8E8 */ _t4 = cpu->r[8] + 0x00000004u;
|
|
/* 0298F8E8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298F8EC */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F8EC */ _t6 = _t5 & 0x00000001u;
|
|
/* 0298F8EC */ if (_t6) goto L_0298F934; else goto L_0298F8F0;
|
|
L_0298F8F0: ; // 0x298f8f0
|
|
/* 0298F8F0 */ _t7 = cpu->r[26] + 0x00000104u;
|
|
/* 0298F8F0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F8F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[27], cpu->r[0]);
|
|
/* 0298F8F8 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298F8F8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F8F8 */ if (_t9) goto L_0298F8FC; else goto L_0298F934;
|
|
L_0298F8FC: ; // 0x298f8fc
|
|
/* 0298F8FC */ cpu->r[4] = 0x00000001u;
|
|
/* 0298F900 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298F904 */ Gambit_fn_0296F73C(cpu);
|
|
/* 0298F908 */ _t10 = cpu->r[25] + 0x0000000Cu;
|
|
/* 0298F908 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298F90C */ cpu->r[3] = cpu->r[28] + cpu->r[0];
|
|
/* 0298F910 */ Gambit_fn_02801EDC(cpu);
|
|
/* 0298F914 */ _t11 = cpu->r[25] + 0x00000008u;
|
|
/* 0298F914 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298F918 */ cpu->r[27] = cpu->r[27] + 0x00000001u;
|
|
/* 0298F91C */ cpu->r[28] = cpu->r[29] - cpu->r[30];
|
|
/* 0298F920 */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 0298F924 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[28], cpu->r[31]);
|
|
/* 0298F928 */ _t12 = cpu->r[25] + 0x00000008u;
|
|
/* 0298F928 */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 0298F92C */ _t13 = cpu->r[29] + 0x00000004u;
|
|
/* 0298F92C */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298F930 */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F930 */ _t15 = _t14 & 0x00000001u;
|
|
/* 0298F930 */ if (_t15) goto L_0298F934; else goto L_0298F8F0;
|
|
L_0298F934: ; // 0x298f934
|
|
/* 0298F934 */ /* nop */
|
|
/* 0298F938 */ _t16 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298F938 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F93C */ cpu->lr = cpu->r[0];
|
|
/* 0298F940 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 0298F944 */ return;
|
|
}
|
|
|
|
// fn_0298F948 @ 0x298f948
|
|
void Gambit_fn_0298F948(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_0298F948: ; // 0x298f948
|
|
/* 0298F948 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F94C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F94C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F94C */ cpu->r[1] = _t0;
|
|
/* 0298F950 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F950 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F954 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F954 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298F958 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F958 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 0298F95C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F95C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298F960 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F960 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298F964 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298F968 */ _t6 = cpu->r[3] + 0x000000CCu;
|
|
/* 0298F968 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F96C */ cpu->r[28] = cpu->r[3] + 0x000000C0u;
|
|
/* 0298F970 */ _t7 = cpu->r[3] + 0x000000C4u;
|
|
/* 0298F970 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F974 */ cpu->r[8] = cpu->r[28] - cpu->r[31];
|
|
/* 0298F978 */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 0298F97C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[8]);
|
|
/* 0298F980 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F980 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F980 */ if (_t9) goto L_0298F9B0; else goto L_0298F984;
|
|
L_0298F984: ; // 0x298f984
|
|
/* 0298F984 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298F988 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298F98C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298F990 */ Gambit_fn_02982428(cpu);
|
|
/* 0298F994 */ _t10 = cpu->r[28] + 0x0000000Cu;
|
|
/* 0298F994 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298F998 */ cpu->r[9] = cpu->r[30] + cpu->r[31];
|
|
/* 0298F99C */ _t11 = cpu->r[9] + 0x00000004u;
|
|
/* 0298F99C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298F9A0 */ cpu->r[10] = cpu->r[28] - cpu->r[11];
|
|
/* 0298F9A4 */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 0298F9A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[10]);
|
|
/* 0298F9AC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F9AC */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F9AC */ if (_t13) goto L_0298F9B0; else goto L_0298F984;
|
|
L_0298F9B0: ; // 0x298f9b0
|
|
/* 0298F9B0 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F9B0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F9B4 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F9B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F9B8 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F9B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F9BC */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F9BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F9C0 */ cpu->lr = cpu->r[0];
|
|
/* 0298F9C4 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F9C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298F9C8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F9CC */ return;
|
|
}
|
|
|
|
// fn_0298F94C @ 0x298f94c
|
|
void Gambit_fn_0298F94C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_0298F94C: ; // 0x298f94c
|
|
/* 0298F94C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F94C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F94C */ cpu->r[1] = _t0;
|
|
/* 0298F950 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F950 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F954 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F954 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298F958 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F958 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 0298F95C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F95C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298F960 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F960 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298F964 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298F968 */ _t6 = cpu->r[3] + 0x000000CCu;
|
|
/* 0298F968 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F96C */ cpu->r[28] = cpu->r[3] + 0x000000C0u;
|
|
/* 0298F970 */ _t7 = cpu->r[3] + 0x000000C4u;
|
|
/* 0298F970 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F974 */ cpu->r[8] = cpu->r[28] - cpu->r[31];
|
|
/* 0298F978 */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 0298F97C */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[8]);
|
|
/* 0298F980 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F980 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298F980 */ if (_t9) goto L_0298F9B0; else goto L_0298F984;
|
|
L_0298F984: ; // 0x298f984
|
|
/* 0298F984 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298F988 */ cpu->r[5] = cpu->r[29];
|
|
/* 0298F98C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298F990 */ Gambit_fn_02982428(cpu);
|
|
/* 0298F994 */ _t10 = cpu->r[28] + 0x0000000Cu;
|
|
/* 0298F994 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298F998 */ cpu->r[9] = cpu->r[30] + cpu->r[31];
|
|
/* 0298F99C */ _t11 = cpu->r[9] + 0x00000004u;
|
|
/* 0298F99C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298F9A0 */ cpu->r[10] = cpu->r[28] - cpu->r[11];
|
|
/* 0298F9A4 */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 0298F9A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[10]);
|
|
/* 0298F9AC */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298F9AC */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298F9AC */ if (_t13) goto L_0298F9B0; else goto L_0298F984;
|
|
L_0298F9B0: ; // 0x298f9b0
|
|
/* 0298F9B0 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F9B0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298F9B4 */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F9B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298F9B8 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F9B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298F9BC */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F9BC */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298F9C0 */ cpu->lr = cpu->r[0];
|
|
/* 0298F9C4 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F9C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298F9C8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298F9CC */ return;
|
|
}
|
|
|
|
// fn_0298F9D0 @ 0x298f9d0
|
|
void Gambit_fn_0298F9D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_0298F9D0: ; // 0x298f9d0
|
|
/* 0298F9D0 */ cpu->r[0] = cpu->lr;
|
|
/* 0298F9D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F9D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F9D4 */ cpu->r[1] = _t0;
|
|
/* 0298F9D8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F9D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F9DC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F9DC */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298F9E0 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F9E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 0298F9E4 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F9E4 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298F9E8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F9E8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298F9EC */ cpu->r[29] = cpu->r[4];
|
|
/* 0298F9F0 */ _t6 = cpu->r[3] + 0x000000CCu;
|
|
/* 0298F9F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F9F4 */ cpu->r[28] = cpu->r[3] + 0x000000C0u;
|
|
/* 0298F9F8 */ _t7 = cpu->r[3] + 0x000000C4u;
|
|
/* 0298F9F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F9FC */ cpu->r[8] = cpu->r[28] - cpu->r[31];
|
|
/* 0298FA00 */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 0298FA04 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[8]);
|
|
/* 0298FA08 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FA08 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298FA08 */ if (_t9) goto L_0298FA38; else goto L_0298FA0C;
|
|
L_0298FA0C: ; // 0x298fa0c
|
|
/* 0298FA0C */ cpu->r[5] = 0x00000000u;
|
|
/* 0298FA10 */ cpu->r[4] = cpu->r[29];
|
|
/* 0298FA14 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298FA18 */ Gambit_fn_02982428(cpu);
|
|
/* 0298FA1C */ _t10 = cpu->r[28] + 0x0000000Cu;
|
|
/* 0298FA1C */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298FA20 */ cpu->r[9] = cpu->r[30] + cpu->r[31];
|
|
/* 0298FA24 */ _t11 = cpu->r[9] + 0x00000004u;
|
|
/* 0298FA24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298FA28 */ cpu->r[10] = cpu->r[28] - cpu->r[11];
|
|
/* 0298FA2C */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 0298FA30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[10]);
|
|
/* 0298FA34 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FA34 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298FA34 */ if (_t13) goto L_0298FA38; else goto L_0298FA0C;
|
|
L_0298FA38: ; // 0x298fa38
|
|
/* 0298FA38 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FA38 */ cpu->r[28] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298FA3C */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FA3C */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298FA40 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FA40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298FA44 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FA44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298FA48 */ cpu->lr = cpu->r[0];
|
|
/* 0298FA4C */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FA4C */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298FA50 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298FA54 */ return;
|
|
}
|
|
|
|
// fn_0298F9D4 @ 0x298f9d4
|
|
void Gambit_fn_0298F9D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_0298F9D4: ; // 0x298f9d4
|
|
/* 0298F9D4 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298F9D4 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298F9D4 */ cpu->r[1] = _t0;
|
|
/* 0298F9D8 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298F9D8 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298F9DC */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 0298F9DC */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 0298F9E0 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 0298F9E0 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 0298F9E4 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298F9E4 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298F9E8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298F9E8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298F9EC */ cpu->r[29] = cpu->r[4];
|
|
/* 0298F9F0 */ _t6 = cpu->r[3] + 0x000000CCu;
|
|
/* 0298F9F0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298F9F4 */ cpu->r[28] = cpu->r[3] + 0x000000C0u;
|
|
/* 0298F9F8 */ _t7 = cpu->r[3] + 0x000000C4u;
|
|
/* 0298F9F8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298F9FC */ cpu->r[8] = cpu->r[28] - cpu->r[31];
|
|
/* 0298FA00 */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 0298FA04 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[8]);
|
|
/* 0298FA08 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FA08 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298FA08 */ if (_t9) goto L_0298FA38; else goto L_0298FA0C;
|
|
L_0298FA0C: ; // 0x298fa0c
|
|
/* 0298FA0C */ cpu->r[5] = 0x00000000u;
|
|
/* 0298FA10 */ cpu->r[4] = cpu->r[29];
|
|
/* 0298FA14 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298FA18 */ Gambit_fn_02982428(cpu);
|
|
/* 0298FA1C */ _t10 = cpu->r[28] + 0x0000000Cu;
|
|
/* 0298FA1C */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298FA20 */ cpu->r[9] = cpu->r[30] + cpu->r[31];
|
|
/* 0298FA24 */ _t11 = cpu->r[9] + 0x00000004u;
|
|
/* 0298FA24 */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298FA28 */ cpu->r[10] = cpu->r[28] - cpu->r[11];
|
|
/* 0298FA2C */ cpu->r[30] = cpu->r[0] - cpu->r[31];
|
|
/* 0298FA30 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[30], cpu->r[10]);
|
|
/* 0298FA34 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FA34 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298FA34 */ if (_t13) goto L_0298FA38; else goto L_0298FA0C;
|
|
L_0298FA38: ; // 0x298fa38
|
|
/* 0298FA38 */ _t14 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FA38 */ cpu->r[28] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298FA3C */ _t15 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FA3C */ cpu->r[29] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298FA40 */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FA40 */ cpu->r[0] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298FA44 */ _t17 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FA44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298FA48 */ cpu->lr = cpu->r[0];
|
|
/* 0298FA4C */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FA4C */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298FA50 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298FA54 */ return;
|
|
}
|
|
|
|
// fn_0298FA58 @ 0x298fa58
|
|
void Gambit_fn_0298FA58(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2;
|
|
|
|
L_0298FA58: ; // 0x298fa58
|
|
/* 0298FA58 */ cpu->r[12] = cpu->r[3] + 0x00000108u;
|
|
/* 0298FA5C */ _t0 = cpu->r[0] + cpu->r[12];
|
|
/* 0298FA5C */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0298FA60 */ /* nop */
|
|
/* 0298FA64 */ cpu->r[0] = cpu->r[11] + 0x00000001u;
|
|
/* 0298FA68 */ /* nop */
|
|
/* 0298FA6C */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FA6C */ _t2 = _t1 & 0x00000001u;
|
|
/* 0298FA6C */ if (_t2) goto L_0298FA70; else goto L_0298FA58;
|
|
L_0298FA70: ; // 0x298fa70
|
|
/* 0298FA70 */ cpu->r[3] = rbrew_rlwinm(cpu->r[11], 0x00000000u, 0x00000015u, 0x0000001Fu);
|
|
/* 0298FA74 */ return;
|
|
}
|
|
|
|
// fn_0298FA78 @ 0x298fa78
|
|
void Gambit_fn_0298FA78(CPUState* cpu) {
|
|
uint32_t _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_0298FA78: ; // 0x298fa78
|
|
/* 0298FA78 */ cpu->r[0] = cpu->lr;
|
|
/* 0298FA7C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298FA7C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298FA7C */ cpu->r[1] = _t0;
|
|
/* 0298FA80 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FA80 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298FA84 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298FA84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298FA88 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FA88 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 0298FA8C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FA8C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 0298FA90 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FA90 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298FA94 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FA94 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298FA98 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298FA9C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FA9C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298FA9C */ if (_t7) goto L_0298FAA0; else goto L_0298FAB0;
|
|
L_0298FAA0: ; // 0x298faa0
|
|
/* 0298FAA0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298FAA4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298FAA8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298FAA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298FAAC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FAAC */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298FAAC */ if (_t9) goto L_0298FB74; else goto L_0298FAB0;
|
|
L_0298FAB0: ; // 0x298fab0
|
|
/* 0298FAB0 */ cpu->r[6] = 0x10150000u;
|
|
/* 0298FAB4 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298FAB8 */ cpu->r[6] = cpu->r[6] + 0xFFFFFA70u;
|
|
/* 0298FABC */ _t10 = cpu->r[30] + 0x00000004u;
|
|
/* 0298FABC */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 0298FAC0 */ _t11 = cpu->r[30] + 0x00000000u;
|
|
/* 0298FAC0 */ rbrew_write32(cpu->mem, _t11, cpu->r[6]);
|
|
/* 0298FAC4 */ _t12 = cpu->r[29] + 0x00000004u;
|
|
/* 0298FAC4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298FAC8 */ _t13 = cpu->r[8] + 0x00000014u;
|
|
/* 0298FAC8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298FACC */ cpu->ctr = cpu->r[9];
|
|
/* 0298FAD0 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298FAD4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298FAD8 */ _t14 = cpu->r[29] + 0x00000004u;
|
|
/* 0298FAD8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298FADC */ _t15 = cpu->r[10] + 0x00000014u;
|
|
/* 0298FADC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298FAE0 */ cpu->ctr = cpu->r[0];
|
|
/* 0298FAE4 */ _t16 = cpu->r[29] + 0x00000000u;
|
|
/* 0298FAE4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298FAE8 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298FAEC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298FAF0 */ cpu->r[12] = 0x10110000u;
|
|
/* 0298FAF4 */ _t17 = cpu->r[29] + 0x00000000u;
|
|
/* 0298FAF4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298FAF8 */ _t18 = cpu->r[12] + 0x00007399u;
|
|
/* 0298FAF8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t18);
|
|
/* 0298FAFC */ _t19 = cpu->r[10] + 0x00000000u;
|
|
/* 0298FAFC */ cpu->r[0] = rbrew_read8(cpu->mem, _t19);
|
|
/* 0298FB00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 0298FB04 */ cpu->r[0] = 0x00080000u;
|
|
/* 0298FB08 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FB08 */ _t21 = _t20 & 0x00000001u;
|
|
/* 0298FB08 */ if (_t21) goto L_0298FB54; else goto L_0298FB0C;
|
|
L_0298FB0C: ; // 0x298fb0c
|
|
/* 0298FB0C */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 0298FB10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 0298FB14 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 0298FB18 */ _t22 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298FB18 */ _t23 = _t22 & 0x00000001u;
|
|
/* 0298FB18 */ if (_t23) goto L_0298FB30; else goto L_0298FB1C;
|
|
L_0298FB1C: ; // 0x298fb1c
|
|
/* 0298FB1C */ _t24 = cpu->r[10] + 0x00000000u;
|
|
/* 0298FB1C */ cpu->r[11] = rbrew_read8(cpu->mem, _t24);
|
|
/* 0298FB20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 0298FB24 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FB24 */ _t26 = _t25 & 0x00000001u;
|
|
/* 0298FB24 */ if (_t26) goto L_0298FB28; else goto L_0298FB0C;
|
|
L_0298FB28: ; // 0x298fb28
|
|
/* 0298FB28 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298FB2C */ goto L_0298FB58;
|
|
L_0298FB30: ; // 0x298fb30
|
|
/* 0298FB30 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298FB34 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298FB38 */ Gambit_fn_02C8A604(cpu);
|
|
/* 0298FB3C */ _t27 = cpu->r[30] + 0x00000008u;
|
|
/* 0298FB3C */ rbrew_write16(cpu->mem, _t27, (uint16_t)cpu->r[3]);
|
|
/* 0298FB40 */ cpu->r[5] = 0x00000001u;
|
|
/* 0298FB44 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298FB48 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298FB4C */ Gambit_fn_02A11408(cpu);
|
|
/* 0298FB50 */ goto L_0298FB74;
|
|
L_0298FB54: ; // 0x298fb54
|
|
/* 0298FB54 */ cpu->r[4] = cpu->r[31];
|
|
L_0298FB58: ; // 0x298fb58
|
|
/* 0298FB58 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298FB5C */ Gambit_fn_02C8A604(cpu);
|
|
/* 0298FB60 */ _t28 = cpu->r[30] + 0x00000008u;
|
|
/* 0298FB60 */ rbrew_write16(cpu->mem, _t28, (uint16_t)cpu->r[3]);
|
|
/* 0298FB64 */ cpu->r[5] = 0x00000001u;
|
|
/* 0298FB68 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298FB6C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298FB70 */ Gambit_fn_02A11408(cpu);
|
|
L_0298FB74: ; // 0x298fb74
|
|
/* 0298FB74 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FB74 */ cpu->r[28] = rbrew_read32(cpu->mem, _t29);
|
|
/* 0298FB78 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FB78 */ cpu->r[29] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298FB7C */ _t31 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FB7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298FB80 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298FB84 */ _t32 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FB84 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298FB88 */ cpu->lr = cpu->r[0];
|
|
/* 0298FB8C */ _t33 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FB8C */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298FB90 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298FB94 */ return;
|
|
}
|
|
|
|
// fn_0298FA7C @ 0x298fa7c
|
|
void Gambit_fn_0298FA7C(CPUState* cpu) {
|
|
uint32_t _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_0298FA7C: ; // 0x298fa7c
|
|
/* 0298FA7C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298FA7C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298FA7C */ cpu->r[1] = _t0;
|
|
/* 0298FA80 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FA80 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0298FA84 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298FA84 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298FA88 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FA88 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 0298FA8C */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FA8C */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 0298FA90 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FA90 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298FA94 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FA94 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298FA98 */ cpu->r[29] = cpu->r[4];
|
|
/* 0298FA9C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FA9C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298FA9C */ if (_t7) goto L_0298FAA0; else goto L_0298FAB0;
|
|
L_0298FAA0: ; // 0x298faa0
|
|
/* 0298FAA0 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298FAA4 */ Gambit_fn_02801A78(cpu);
|
|
/* 0298FAA8 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298FAA8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 0298FAAC */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FAAC */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298FAAC */ if (_t9) goto L_0298FB74; else goto L_0298FAB0;
|
|
L_0298FAB0: ; // 0x298fab0
|
|
/* 0298FAB0 */ cpu->r[6] = 0x10150000u;
|
|
/* 0298FAB4 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298FAB8 */ cpu->r[6] = cpu->r[6] + 0xFFFFFA70u;
|
|
/* 0298FABC */ _t10 = cpu->r[30] + 0x00000004u;
|
|
/* 0298FABC */ rbrew_write32(cpu->mem, _t10, cpu->r[31]);
|
|
/* 0298FAC0 */ _t11 = cpu->r[30] + 0x00000000u;
|
|
/* 0298FAC0 */ rbrew_write32(cpu->mem, _t11, cpu->r[6]);
|
|
/* 0298FAC4 */ _t12 = cpu->r[29] + 0x00000004u;
|
|
/* 0298FAC4 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298FAC8 */ _t13 = cpu->r[8] + 0x00000014u;
|
|
/* 0298FAC8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0298FACC */ cpu->ctr = cpu->r[9];
|
|
/* 0298FAD0 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298FAD4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298FAD8 */ _t14 = cpu->r[29] + 0x00000004u;
|
|
/* 0298FAD8 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298FADC */ _t15 = cpu->r[10] + 0x00000014u;
|
|
/* 0298FADC */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 0298FAE0 */ cpu->ctr = cpu->r[0];
|
|
/* 0298FAE4 */ _t16 = cpu->r[29] + 0x00000000u;
|
|
/* 0298FAE4 */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298FAE8 */ cpu->r[3] = cpu->r[29];
|
|
/* 0298FAEC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298FAF0 */ cpu->r[12] = 0x10110000u;
|
|
/* 0298FAF4 */ _t17 = cpu->r[29] + 0x00000000u;
|
|
/* 0298FAF4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298FAF8 */ _t18 = cpu->r[12] + 0x00007399u;
|
|
/* 0298FAF8 */ cpu->r[12] = rbrew_read8(cpu->mem, _t18);
|
|
/* 0298FAFC */ _t19 = cpu->r[10] + 0x00000000u;
|
|
/* 0298FAFC */ cpu->r[0] = rbrew_read8(cpu->mem, _t19);
|
|
/* 0298FB00 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[12]);
|
|
/* 0298FB04 */ cpu->r[0] = 0x00080000u;
|
|
/* 0298FB08 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FB08 */ _t21 = _t20 & 0x00000001u;
|
|
/* 0298FB08 */ if (_t21) goto L_0298FB54; else goto L_0298FB0C;
|
|
L_0298FB0C: ; // 0x298fb0c
|
|
/* 0298FB0C */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 0298FB10 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[0]);
|
|
/* 0298FB14 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 0298FB18 */ _t22 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0298FB18 */ _t23 = _t22 & 0x00000001u;
|
|
/* 0298FB18 */ if (_t23) goto L_0298FB30; else goto L_0298FB1C;
|
|
L_0298FB1C: ; // 0x298fb1c
|
|
/* 0298FB1C */ _t24 = cpu->r[10] + 0x00000000u;
|
|
/* 0298FB1C */ cpu->r[11] = rbrew_read8(cpu->mem, _t24);
|
|
/* 0298FB20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[11], cpu->r[12]);
|
|
/* 0298FB24 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FB24 */ _t26 = _t25 & 0x00000001u;
|
|
/* 0298FB24 */ if (_t26) goto L_0298FB28; else goto L_0298FB0C;
|
|
L_0298FB28: ; // 0x298fb28
|
|
/* 0298FB28 */ cpu->r[4] = cpu->r[31];
|
|
/* 0298FB2C */ goto L_0298FB58;
|
|
L_0298FB30: ; // 0x298fb30
|
|
/* 0298FB30 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298FB34 */ cpu->r[4] = 0x00000000u;
|
|
/* 0298FB38 */ Gambit_fn_02C8A604(cpu);
|
|
/* 0298FB3C */ _t27 = cpu->r[30] + 0x00000008u;
|
|
/* 0298FB3C */ rbrew_write16(cpu->mem, _t27, (uint16_t)cpu->r[3]);
|
|
/* 0298FB40 */ cpu->r[5] = 0x00000001u;
|
|
/* 0298FB44 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298FB48 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298FB4C */ Gambit_fn_02A11408(cpu);
|
|
/* 0298FB50 */ goto L_0298FB74;
|
|
L_0298FB54: ; // 0x298fb54
|
|
/* 0298FB54 */ cpu->r[4] = cpu->r[31];
|
|
L_0298FB58: ; // 0x298fb58
|
|
/* 0298FB58 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298FB5C */ Gambit_fn_02C8A604(cpu);
|
|
/* 0298FB60 */ _t28 = cpu->r[30] + 0x00000008u;
|
|
/* 0298FB60 */ rbrew_write16(cpu->mem, _t28, (uint16_t)cpu->r[3]);
|
|
/* 0298FB64 */ cpu->r[5] = 0x00000001u;
|
|
/* 0298FB68 */ cpu->r[4] = 0x00000003u;
|
|
/* 0298FB6C */ cpu->r[3] = cpu->r[30];
|
|
/* 0298FB70 */ Gambit_fn_02A11408(cpu);
|
|
L_0298FB74: ; // 0x298fb74
|
|
/* 0298FB74 */ _t29 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FB74 */ cpu->r[28] = rbrew_read32(cpu->mem, _t29);
|
|
/* 0298FB78 */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FB78 */ cpu->r[29] = rbrew_read32(cpu->mem, _t30);
|
|
/* 0298FB7C */ _t31 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FB7C */ cpu->r[0] = rbrew_read32(cpu->mem, _t31);
|
|
/* 0298FB80 */ cpu->r[3] = cpu->r[30];
|
|
/* 0298FB84 */ _t32 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FB84 */ cpu->r[30] = rbrew_read32(cpu->mem, _t32);
|
|
/* 0298FB88 */ cpu->lr = cpu->r[0];
|
|
/* 0298FB8C */ _t33 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FB8C */ cpu->r[31] = rbrew_read32(cpu->mem, _t33);
|
|
/* 0298FB90 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298FB94 */ return;
|
|
}
|
|
|
|
// fn_0298FB98 @ 0x298fb98
|
|
void Gambit_fn_0298FB98(CPUState* 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_0298FB98: ; // 0x298fb98
|
|
/* 0298FB98 */ cpu->r[0] = cpu->lr;
|
|
/* 0298FB9C */ _t0 = cpu->r[1] + 0xFFFFFBD8u;
|
|
/* 0298FB9C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298FB9C */ cpu->r[1] = _t0;
|
|
/* 0298FBA0 */ cpu->r[12] = 0x101F0000u;
|
|
/* 0298FBA4 */ _t1 = cpu->r[1] + 0x00000424u;
|
|
/* 0298FBA4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298FBA8 */ cpu->r[8] = 0x10150000u;
|
|
/* 0298FBAC */ _t2 = cpu->r[1] + 0x00000420u;
|
|
/* 0298FBAC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298FBB0 */ cpu->r[8] = cpu->r[8] + 0xFFFFF97Cu;
|
|
/* 0298FBB4 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298FBB8 */ _t3 = cpu->r[1] + 0x0000042Cu;
|
|
/* 0298FBB8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298FBBC */ _t4 = cpu->r[12] + 0x000066E8u;
|
|
/* 0298FBBC */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298FBC0 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298FBC4 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FBC4 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 0298FBC8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298FBCC */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FBCC */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 0298FBD0 */ Gambit_fn_029903E8(cpu);
|
|
/* 0298FBD4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FBD4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298FBD8 */ cpu->r[4] = 0x10150000u;
|
|
/* 0298FBDC */ _t8 = cpu->r[30] + 0x00000004u;
|
|
/* 0298FBDC */ cpu->r[6] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298FBE0 */ cpu->r[4] = cpu->r[4] + 0xFFFFFA40u;
|
|
/* 0298FBE4 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 0298FBE8 */ _t9 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 0298FBE8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298FBE8 */ if (_t10) goto L_0298FBEC; // else: addr-0 trap, fall-through
|
|
L_0298FBEC: ; // 0x298fbec
|
|
/* 0298FBEC */ Gambit_fn_0299041C(cpu);
|
|
/* 0298FBF0 */ _t11 = cpu->r[31] + 0x000000DCu;
|
|
/* 0298FBF0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298FBF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298FBF8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FBF8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298FBF8 */ if (_t13) goto L_0298FC04; else goto L_0298FBFC;
|
|
L_0298FBFC: ; // 0x298fbfc
|
|
/* 0298FBFC */ _t14 = cpu->r[30] + 0x00000008u;
|
|
/* 0298FBFC */ cpu->r[0] = rbrew_read16(cpu->mem, _t14);
|
|
/* 0298FC00 */ _t15 = cpu->r[11] + 0x00000034u;
|
|
/* 0298FC00 */ rbrew_write16(cpu->mem, _t15, (uint16_t)cpu->r[0]);
|
|
L_0298FC04: ; // 0x298fc04
|
|
/* 0298FC04 */ _t16 = cpu->r[30] + 0x00000004u;
|
|
/* 0298FC04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298FC08 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 0298FC0C */ _t17 = cpu->r[30] + 0x00000004u;
|
|
/* 0298FC0C */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 0298FC10 */ _t18 = cpu->r[1] + 0x0000042Cu;
|
|
/* 0298FC10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298FC14 */ _t19 = cpu->r[1] + 0x00000420u;
|
|
/* 0298FC14 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298FC18 */ cpu->lr = cpu->r[0];
|
|
/* 0298FC1C */ _t20 = cpu->r[1] + 0x00000424u;
|
|
/* 0298FC1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298FC20 */ cpu->r[1] = cpu->r[1] + 0x00000428u;
|
|
/* 0298FC24 */ return;
|
|
}
|
|
|
|
// fn_0298FB9C @ 0x298fb9c
|
|
void Gambit_fn_0298FB9C(CPUState* 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_0298FB9C: ; // 0x298fb9c
|
|
/* 0298FB9C */ _t0 = cpu->r[1] + 0xFFFFFBD8u;
|
|
/* 0298FB9C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298FB9C */ cpu->r[1] = _t0;
|
|
/* 0298FBA0 */ cpu->r[12] = 0x101F0000u;
|
|
/* 0298FBA4 */ _t1 = cpu->r[1] + 0x00000424u;
|
|
/* 0298FBA4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 0298FBA8 */ cpu->r[8] = 0x10150000u;
|
|
/* 0298FBAC */ _t2 = cpu->r[1] + 0x00000420u;
|
|
/* 0298FBAC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298FBB0 */ cpu->r[8] = cpu->r[8] + 0xFFFFF97Cu;
|
|
/* 0298FBB4 */ cpu->r[31] = cpu->r[4];
|
|
/* 0298FBB8 */ _t3 = cpu->r[1] + 0x0000042Cu;
|
|
/* 0298FBB8 */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 0298FBBC */ _t4 = cpu->r[12] + 0x000066E8u;
|
|
/* 0298FBBC */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0298FBC0 */ cpu->r[30] = cpu->r[3];
|
|
/* 0298FBC4 */ _t5 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FBC4 */ rbrew_write32(cpu->mem, _t5, cpu->r[8]);
|
|
/* 0298FBC8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298FBCC */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FBCC */ rbrew_write32(cpu->mem, _t6, cpu->r[12]);
|
|
/* 0298FBD0 */ Gambit_fn_029903E8(cpu);
|
|
/* 0298FBD4 */ _t7 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FBD4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298FBD8 */ cpu->r[4] = 0x10150000u;
|
|
/* 0298FBDC */ _t8 = cpu->r[30] + 0x00000004u;
|
|
/* 0298FBDC */ cpu->r[6] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298FBE0 */ cpu->r[4] = cpu->r[4] + 0xFFFFFA40u;
|
|
/* 0298FBE4 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 0298FBE8 */ _t9 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 0298FBE8 */ _t10 = _t9 & 0x00000001u;
|
|
/* 0298FBE8 */ if (_t10) goto L_0298FBEC; // else: addr-0 trap, fall-through
|
|
L_0298FBEC: ; // 0x298fbec
|
|
/* 0298FBEC */ Gambit_fn_0299041C(cpu);
|
|
/* 0298FBF0 */ _t11 = cpu->r[31] + 0x000000DCu;
|
|
/* 0298FBF0 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0298FBF4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0298FBF8 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FBF8 */ _t13 = _t12 & 0x00000001u;
|
|
/* 0298FBF8 */ if (_t13) goto L_0298FC04; else goto L_0298FBFC;
|
|
L_0298FBFC: ; // 0x298fbfc
|
|
/* 0298FBFC */ _t14 = cpu->r[30] + 0x00000008u;
|
|
/* 0298FBFC */ cpu->r[0] = rbrew_read16(cpu->mem, _t14);
|
|
/* 0298FC00 */ _t15 = cpu->r[11] + 0x00000034u;
|
|
/* 0298FC00 */ rbrew_write16(cpu->mem, _t15, (uint16_t)cpu->r[0]);
|
|
L_0298FC04: ; // 0x298fc04
|
|
/* 0298FC04 */ _t16 = cpu->r[30] + 0x00000004u;
|
|
/* 0298FC04 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0298FC08 */ cpu->r[10] = cpu->r[10] + 0x00000001u;
|
|
/* 0298FC0C */ _t17 = cpu->r[30] + 0x00000004u;
|
|
/* 0298FC0C */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 0298FC10 */ _t18 = cpu->r[1] + 0x0000042Cu;
|
|
/* 0298FC10 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298FC14 */ _t19 = cpu->r[1] + 0x00000420u;
|
|
/* 0298FC14 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298FC18 */ cpu->lr = cpu->r[0];
|
|
/* 0298FC1C */ _t20 = cpu->r[1] + 0x00000424u;
|
|
/* 0298FC1C */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298FC20 */ cpu->r[1] = cpu->r[1] + 0x00000428u;
|
|
/* 0298FC24 */ return;
|
|
}
|
|
|
|
// fn_0298FC28 @ 0x298fc28
|
|
void Gambit_fn_0298FC28(CPUState* cpu) {
|
|
uint32_t _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;
|
|
|
|
L_0298FC28: ; // 0x298fc28
|
|
/* 0298FC28 */ _t0 = cpu->r[1] + 0xFFFFFF98u;
|
|
/* 0298FC28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298FC28 */ cpu->r[1] = _t0;
|
|
/* 0298FC2C */ /* nop */
|
|
/* 0298FC30 */ cpu->r[27] = cpu->r[3];
|
|
/* 0298FC34 */ cpu->r[26] = cpu->r[27] + 0x00000184u;
|
|
/* 0298FC38 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298FC3C */ cpu->r[0] = cpu->lr;
|
|
/* 0298FC40 */ cpu->r[28] = cpu->r[4];
|
|
/* 0298FC44 */ cpu->r[31] = cpu->r[5];
|
|
/* 0298FC48 */ cpu->r[25] = cpu->r[6];
|
|
/* 0298FC4C */ _t1 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0298FC4C */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 0298FC50 */ Gambit_fn_02836FFC(cpu);
|
|
/* 0298FC54 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0298FC58 */ _t2 = cpu->r[12] + 0xFFFFA304u;
|
|
/* 0298FC58 */ cpu->r[12] = rbrew_read32(cpu->mem, _t2);
|
|
/* 0298FC5C */ _t3 = cpu->r[12] + 0x00000030u;
|
|
/* 0298FC5C */ cpu->r[23] = rbrew_read32(cpu->mem, _t3);
|
|
/* 0298FC60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 0298FC64 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FC64 */ _t5 = _t4 & 0x00000001u;
|
|
/* 0298FC64 */ if (_t5) goto L_0298FC70; else goto L_0298FC68;
|
|
L_0298FC68: ; // 0x298fc68
|
|
/* 0298FC68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0298FC6C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FC6C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0298FC6C */ if (_t7) goto L_0298FC70; else goto L_0298FC7C;
|
|
L_0298FC70: ; // 0x298fc70
|
|
/* 0298FC70 */ cpu->r[22] = cpu->r[27] + 0x000000C0u;
|
|
/* 0298FC74 */ _t8 = cpu->r[27] + 0x000000CCu;
|
|
/* 0298FC74 */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 0298FC78 */ goto L_0298FECC;
|
|
L_0298FC7C: ; // 0x298fc7c
|
|
/* 0298FC7C */ _t9 = cpu->r[27] + 0x000001C4u;
|
|
/* 0298FC7C */ cpu->r[4] = rbrew_read32(cpu->mem, _t9);
|
|
/* 0298FC80 */ cpu->r[24] = 0x101F0000u;
|
|
/* 0298FC84 */ _t10 = cpu->r[27] + 0x000001CCu;
|
|
/* 0298FC84 */ cpu->r[19] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298FC88 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298FC8C */ cpu->r[29] = 0x10110000u;
|
|
/* 0298FC90 */ cpu->r[20] = cpu->r[19] + cpu->r[0];
|
|
/* 0298FC94 */ cpu->r[30] = 0x10150000u;
|
|
/* 0298FC98 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 0298FC9C */ cpu->r[30] = cpu->r[30] + 0xFFFFF97Cu;
|
|
/* 0298FCA0 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FCA0 */ _t12 = _t11 & 0x00000001u;
|
|
/* 0298FCA0 */ if (_t12) goto L_0298FD5C; else goto L_0298FCA4;
|
|
L_0298FCA4: ; // 0x298fca4
|
|
/* 0298FCA4 */ _t13 = cpu->r[29] + 0x00007399u;
|
|
/* 0298FCA4 */ cpu->r[31] = rbrew_read8(cpu->mem, _t13);
|
|
/* 0298FCA8 */ cpu->r[21] = 0x00080000u;
|
|
/* 0298FCAC */ _t14 = cpu->r[24] + 0x000066E8u;
|
|
/* 0298FCAC */ cpu->r[22] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298FCB0 */ cpu->r[21] = cpu->r[21] + 0x00000001u;
|
|
L_0298FCB4: ; // 0x298fcb4
|
|
/* 0298FCB4 */ _t15 = cpu->r[1] + 0x00000018u;
|
|
/* 0298FCB4 */ rbrew_write32(cpu->mem, _t15, cpu->r[22]);
|
|
/* 0298FCB8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298FCBC */ _t16 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FCBC */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
/* 0298FCC0 */ _t17 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FCC0 */ rbrew_write32(cpu->mem, _t17, cpu->r[22]);
|
|
/* 0298FCC4 */ _t18 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FCC4 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
/* 0298FCC8 */ Gambit_fn_029903E8(cpu);
|
|
/* 0298FCCC */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FCCC */ cpu->r[6] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298FCD0 */ _t20 = cpu->r[6] + 0x00000014u;
|
|
/* 0298FCD0 */ cpu->r[7] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298FCD4 */ cpu->ctr = cpu->r[7];
|
|
/* 0298FCD8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0298FCDC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298FCE0 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FCE0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298FCE4 */ _t22 = cpu->r[8] + 0x00000014u;
|
|
/* 0298FCE4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298FCE8 */ cpu->ctr = cpu->r[9];
|
|
/* 0298FCEC */ _t23 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FCEC */ cpu->r[18] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298FCF0 */ cpu->r[3] = cpu->r[1] + 0x00000018u;
|
|
/* 0298FCF4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298FCF8 */ _t24 = cpu->r[1] + 0x00000018u;
|
|
/* 0298FCF8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t24);
|
|
/* 0298FCFC */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[18], cpu->r[4]);
|
|
/* 0298FD00 */ _t25 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FD00 */ _t26 = _t25 & 0x00000001u;
|
|
/* 0298FD00 */ if (_t26) goto L_0298FD34; else goto L_0298FD04;
|
|
L_0298FD04: ; // 0x298fd04
|
|
/* 0298FD04 */ _t27 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FD04 */ cpu->r[5] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0298FD08 */ cpu->ctr = cpu->r[21];
|
|
/* 0298FD0C */ cpu->r[8] = cpu->r[4] + 0xFFFFFFFFu;
|
|
L_0298FD10: ; // 0x298fd10
|
|
/* 0298FD10 */ _t28 = cpu->r[5] + 0x00000000u;
|
|
/* 0298FD10 */ cpu->r[6] = rbrew_read8(cpu->mem, _t28);
|
|
/* 0298FD14 */ _t29 = cpu->r[8] + 0x00000001u;
|
|
/* 0298FD14 */ cpu->r[0] = rbrew_read8(cpu->mem, _t29);
|
|
/* 0298FD14 */ cpu->r[8] = _t29;
|
|
/* 0298FD18 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[0]);
|
|
/* 0298FD1C */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FD1C */ _t31 = _t30 & 0x00000001u;
|
|
/* 0298FD1C */ if (_t31) goto L_0298FD20; else goto L_0298FD50;
|
|
L_0298FD20: ; // 0x298fd20
|
|
/* 0298FD20 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[6], cpu->r[31]);
|
|
/* 0298FD24 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FD24 */ _t33 = _t32 & 0x00000001u;
|
|
/* 0298FD24 */ if (_t33) goto L_0298FD34; else goto L_0298FD28;
|
|
L_0298FD28: ; // 0x298fd28
|
|
/* 0298FD28 */ cpu->r[5] = cpu->r[5] + 0x00000001u;
|
|
/* 0298FD2C */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298FD2C */ _t34 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298FD2C */ _t35 = _t34 >> (0x00000002u & 31u);
|
|
/* 0298FD2C */ _t36 = _t35 & 0x00000001u;
|
|
/* 0298FD2C */ if (_t36) goto L_0298FD10; else goto L_0298FD30;
|
|
L_0298FD30: ; // 0x298fd30
|
|
/* 0298FD30 */ goto L_0298FD50;
|
|
L_0298FD34: ; // 0x298fd34
|
|
/* 0298FD34 */ _t37 = cpu->r[19] + 0x00000000u;
|
|
/* 0298FD34 */ cpu->r[3] = rbrew_read32(cpu->mem, _t37);
|
|
/* 0298FD38 */ cpu->r[4] = cpu->r[28];
|
|
/* 0298FD3C */ cpu->r[5] = cpu->r[23];
|
|
/* 0298FD40 */ Gambit_fn_0298FB98(cpu);
|
|
/* 0298FD44 */ cpu->r[22] = cpu->r[27] + 0x000000C0u;
|
|
/* 0298FD48 */ _t38 = cpu->r[27] + 0x000000CCu;
|
|
/* 0298FD48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 0298FD4C */ goto L_0298FECC;
|
|
L_0298FD50: ; // 0x298fd50
|
|
/* 0298FD50 */ cpu->r[19] = cpu->r[19] + 0x00000004u;
|
|
/* 0298FD54 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[20]);
|
|
/* 0298FD58 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FD58 */ _t40 = _t39 & 0x00000001u;
|
|
/* 0298FD58 */ if (_t40) goto L_0298FD5C; else goto L_0298FCB4;
|
|
L_0298FD5C: ; // 0x298fd5c
|
|
/* 0298FD5C */ _t41 = cpu->r[27] + 0x000000CCu;
|
|
/* 0298FD5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t41);
|
|
/* 0298FD60 */ cpu->r[22] = cpu->r[27] + 0x000000C0u;
|
|
/* 0298FD64 */ _t42 = cpu->r[27] + 0x000000C4u;
|
|
/* 0298FD64 */ cpu->r[11] = rbrew_read32(cpu->mem, _t42);
|
|
/* 0298FD68 */ cpu->r[12] = cpu->r[22] - cpu->r[0];
|
|
/* 0298FD6C */ cpu->r[21] = cpu->r[11] - cpu->r[0];
|
|
/* 0298FD70 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[21], cpu->r[12]);
|
|
/* 0298FD74 */ cpu->r[31] = cpu->r[0];
|
|
/* 0298FD78 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FD78 */ _t44 = _t43 & 0x00000001u;
|
|
/* 0298FD78 */ if (_t44) goto L_0298FECC; else goto L_0298FD7C;
|
|
L_0298FD7C: ; // 0x298fd7c
|
|
/* 0298FD7C */ _t45 = cpu->r[29] + 0x00007399u;
|
|
/* 0298FD7C */ cpu->r[29] = rbrew_read8(cpu->mem, _t45);
|
|
/* 0298FD80 */ cpu->r[20] = 0x00080000u;
|
|
/* 0298FD84 */ _t46 = cpu->r[24] + 0x000066E8u;
|
|
/* 0298FD84 */ cpu->r[24] = rbrew_read32(cpu->mem, _t46);
|
|
/* 0298FD88 */ cpu->r[20] = cpu->r[20] + 0x00000001u;
|
|
L_0298FD8C: ; // 0x298fd8c
|
|
/* 0298FD8C */ _t47 = cpu->r[1] + 0x00000020u;
|
|
/* 0298FD8C */ rbrew_write32(cpu->mem, _t47, cpu->r[24]);
|
|
/* 0298FD90 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 0298FD94 */ _t48 = cpu->r[1] + 0x00000024u;
|
|
/* 0298FD94 */ rbrew_write32(cpu->mem, _t48, cpu->r[30]);
|
|
/* 0298FD98 */ _t49 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FD98 */ rbrew_write32(cpu->mem, _t49, cpu->r[24]);
|
|
/* 0298FD9C */ _t50 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FD9C */ rbrew_write32(cpu->mem, _t50, cpu->r[30]);
|
|
/* 0298FDA0 */ Gambit_fn_029903E8(cpu);
|
|
/* 0298FDA4 */ _t51 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FDA4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t51);
|
|
/* 0298FDA8 */ _t52 = cpu->r[12] + 0x00000014u;
|
|
/* 0298FDA8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t52);
|
|
/* 0298FDAC */ cpu->ctr = cpu->r[4];
|
|
/* 0298FDB0 */ cpu->r[3] = cpu->r[1] + 0x00000010u;
|
|
/* 0298FDB4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298FDB8 */ _t53 = cpu->r[1] + 0x00000024u;
|
|
/* 0298FDB8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t53);
|
|
/* 0298FDBC */ _t54 = cpu->r[5] + 0x00000014u;
|
|
/* 0298FDBC */ cpu->r[6] = rbrew_read32(cpu->mem, _t54);
|
|
/* 0298FDC0 */ cpu->ctr = cpu->r[6];
|
|
/* 0298FDC4 */ _t55 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FDC4 */ cpu->r[19] = rbrew_read32(cpu->mem, _t55);
|
|
/* 0298FDC8 */ cpu->r[3] = cpu->r[1] + 0x00000020u;
|
|
/* 0298FDCC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0298FDD0 */ _t56 = cpu->r[1] + 0x00000020u;
|
|
/* 0298FDD0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t56);
|
|
/* 0298FDD4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[19], cpu->r[5]);
|
|
/* 0298FDD8 */ _t57 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FDD8 */ _t58 = _t57 & 0x00000001u;
|
|
/* 0298FDD8 */ if (_t58) goto L_0298FE0C; else goto L_0298FDDC;
|
|
L_0298FDDC: ; // 0x298fddc
|
|
/* 0298FDDC */ _t59 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FDDC */ cpu->r[8] = rbrew_read32(cpu->mem, _t59);
|
|
/* 0298FDE0 */ cpu->ctr = cpu->r[20];
|
|
/* 0298FDE4 */ cpu->r[9] = cpu->r[5] + 0xFFFFFFFFu;
|
|
L_0298FDE8: ; // 0x298fde8
|
|
/* 0298FDE8 */ _t60 = cpu->r[8] + 0x00000000u;
|
|
/* 0298FDE8 */ cpu->r[7] = rbrew_read8(cpu->mem, _t60);
|
|
/* 0298FDEC */ _t61 = cpu->r[9] + 0x00000001u;
|
|
/* 0298FDEC */ cpu->r[0] = rbrew_read8(cpu->mem, _t61);
|
|
/* 0298FDEC */ cpu->r[9] = _t61;
|
|
/* 0298FDF0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[0]);
|
|
/* 0298FDF4 */ _t62 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FDF4 */ _t63 = _t62 & 0x00000001u;
|
|
/* 0298FDF4 */ if (_t63) goto L_0298FDF8; else goto L_0298FEB0;
|
|
L_0298FDF8: ; // 0x298fdf8
|
|
/* 0298FDF8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[7], cpu->r[29]);
|
|
/* 0298FDFC */ _t64 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FDFC */ _t65 = _t64 & 0x00000001u;
|
|
/* 0298FDFC */ if (_t65) goto L_0298FE0C; else goto L_0298FE00;
|
|
L_0298FE00: ; // 0x298fe00
|
|
/* 0298FE00 */ cpu->r[8] = cpu->r[8] + 0x00000001u;
|
|
/* 0298FE04 */ cpu->ctr = cpu->ctr - 0x00000001u;
|
|
/* 0298FE04 */ _t66 = rbrew_cmp_u32(cpu->ctr, 0x00000000u);
|
|
/* 0298FE04 */ _t67 = _t66 >> (0x00000002u & 31u);
|
|
/* 0298FE04 */ _t68 = _t67 & 0x00000001u;
|
|
/* 0298FE04 */ if (_t68) goto L_0298FDE8; else goto L_0298FE08;
|
|
L_0298FE08: ; // 0x298fe08
|
|
/* 0298FE08 */ goto L_0298FEB0;
|
|
L_0298FE0C: ; // 0x298fe0c
|
|
/* 0298FE0C */ cpu->r[5] = 0x00000004u;
|
|
/* 0298FE10 */ cpu->r[3] = 0x0000000Cu;
|
|
/* 0298FE14 */ cpu->r[4] = cpu->r[23];
|
|
/* 0298FE18 */ cpu->r[9] = 0x00000000u;
|
|
/* 0298FE1C */ Gambit_fn_02801AC8(cpu);
|
|
/* 0298FE20 */ cpu->r[0] = cpu->r[3];
|
|
/* 0298FE20 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0298FE24 */ _t69 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FE24 */ _t70 = _t69 & 0x00000001u;
|
|
/* 0298FE24 */ if (_t70) goto L_0298FE5C; else goto L_0298FE28;
|
|
L_0298FE28: ; // 0x298fe28
|
|
/* 0298FE28 */ _t71 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0298FE28 */ rbrew_write32(cpu->mem, _t71, cpu->r[30]);
|
|
/* 0298FE2C */ cpu->r[3] = cpu->r[0];
|
|
/* 0298FE30 */ cpu->r[5] = cpu->r[23];
|
|
/* 0298FE34 */ _t72 = cpu->r[1] + 0x00000028u;
|
|
/* 0298FE34 */ rbrew_write32(cpu->mem, _t72, cpu->r[24]);
|
|
/* 0298FE38 */ cpu->r[4] = cpu->r[1] + 0x00000028u;
|
|
/* 0298FE3C */ cpu->r[9] = 0x00000001u;
|
|
/* 0298FE40 */ Gambit_fn_0298FA78(cpu);
|
|
/* 0298FE44 */ _t73 = cpu->r[27] + 0x000001C8u;
|
|
/* 0298FE44 */ cpu->r[10] = rbrew_read32(cpu->mem, _t73);
|
|
/* 0298FE48 */ _t74 = cpu->r[27] + 0x000001C4u;
|
|
/* 0298FE48 */ cpu->r[0] = rbrew_read32(cpu->mem, _t74);
|
|
/* 0298FE4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[10]);
|
|
/* 0298FE50 */ cpu->r[31] = cpu->r[3];
|
|
/* 0298FE54 */ _t75 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298FE54 */ _t76 = _t75 & 0x00000001u;
|
|
/* 0298FE54 */ if (_t76) goto L_0298FE58; else goto L_0298FE88;
|
|
L_0298FE58: ; // 0x298fe58
|
|
/* 0298FE58 */ goto L_0298FE70;
|
|
L_0298FE5C: ; // 0x298fe5c
|
|
/* 0298FE5C */ _t77 = cpu->r[27] + 0x000001C4u;
|
|
/* 0298FE5C */ cpu->r[0] = rbrew_read32(cpu->mem, _t77);
|
|
/* 0298FE60 */ _t78 = cpu->r[27] + 0x000001C8u;
|
|
/* 0298FE60 */ cpu->r[10] = rbrew_read32(cpu->mem, _t78);
|
|
/* 0298FE64 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], cpu->r[10]);
|
|
/* 0298FE68 */ cpu->r[31] = 0x00000000u;
|
|
/* 0298FE6C */ _t79 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298FE6C */ _t80 = _t79 & 0x00000001u;
|
|
/* 0298FE6C */ if (_t80) goto L_0298FE70; else goto L_0298FE88;
|
|
L_0298FE70: ; // 0x298fe70
|
|
/* 0298FE70 */ _t81 = cpu->r[27] + 0x000001CCu;
|
|
/* 0298FE70 */ cpu->r[12] = rbrew_read32(cpu->mem, _t81);
|
|
/* 0298FE74 */ cpu->r[11] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298FE78 */ _t82 = cpu->r[11] + cpu->r[12];
|
|
/* 0298FE78 */ rbrew_write32(cpu->mem, _t82, cpu->r[31]);
|
|
/* 0298FE7C */ _t83 = cpu->r[27] + 0x000001C4u;
|
|
/* 0298FE7C */ cpu->r[4] = rbrew_read32(cpu->mem, _t83);
|
|
/* 0298FE80 */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 0298FE84 */ _t84 = cpu->r[27] + 0x000001C4u;
|
|
/* 0298FE84 */ rbrew_write32(cpu->mem, _t84, cpu->r[4]);
|
|
L_0298FE88: ; // 0x298fe88
|
|
/* 0298FE88 */ cpu->r[5] = cpu->r[23];
|
|
/* 0298FE8C */ cpu->r[4] = cpu->r[21];
|
|
/* 0298FE90 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298FE94 */ Gambit_fn_0298FB98(cpu);
|
|
/* 0298FE98 */ cpu->r[5] = cpu->r[23];
|
|
/* 0298FE9C */ cpu->r[4] = cpu->r[28];
|
|
/* 0298FEA0 */ cpu->r[3] = cpu->r[31];
|
|
/* 0298FEA4 */ Gambit_fn_0298FB98(cpu);
|
|
/* 0298FEA8 */ _t85 = cpu->r[22] + 0x0000000Cu;
|
|
/* 0298FEA8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t85);
|
|
/* 0298FEAC */ goto L_0298FECC;
|
|
L_0298FEB0: ; // 0x298feb0
|
|
/* 0298FEB0 */ _t86 = cpu->r[22] + 0x0000000Cu;
|
|
/* 0298FEB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t86);
|
|
/* 0298FEB4 */ cpu->r[5] = cpu->r[21] + cpu->r[31];
|
|
/* 0298FEB8 */ _t87 = cpu->r[5] + 0x00000004u;
|
|
/* 0298FEB8 */ cpu->r[7] = rbrew_read32(cpu->mem, _t87);
|
|
/* 0298FEBC */ cpu->r[12] = cpu->r[22] - cpu->r[0];
|
|
/* 0298FEC0 */ cpu->r[21] = cpu->r[7] - cpu->r[31];
|
|
/* 0298FEC4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[21], cpu->r[12]);
|
|
/* 0298FEC8 */ _t88 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FEC8 */ _t89 = _t88 & 0x00000001u;
|
|
/* 0298FEC8 */ if (_t89) goto L_0298FECC; else goto L_0298FD8C;
|
|
L_0298FECC: ; // 0x298fecc
|
|
/* 0298FECC */ cpu->r[3] = cpu->r[22];
|
|
/* 0298FED0 */ cpu->r[4] = cpu->r[28] + cpu->r[0];
|
|
/* 0298FED4 */ Gambit_fn_02801EBC(cpu);
|
|
/* 0298FED8 */ _t90 = cpu->r[22] + 0x00000008u;
|
|
/* 0298FED8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t90);
|
|
/* 0298FEDC */ cpu->r[9] = cpu->r[9] + 0x00000001u;
|
|
/* 0298FEE0 */ _t91 = cpu->r[22] + 0x00000008u;
|
|
/* 0298FEE0 */ rbrew_write32(cpu->mem, _t91, cpu->r[9]);
|
|
/* 0298FEE4 */ _t92 = cpu->r[27] + 0x00000040u;
|
|
/* 0298FEE4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t92);
|
|
/* 0298FEE8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298FEEC */ _t93 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FEEC */ _t94 = _t93 & 0x00000001u;
|
|
/* 0298FEEC */ if (_t94) goto L_0298FF08; else goto L_0298FEF0;
|
|
L_0298FEF0: ; // 0x298fef0
|
|
/* 0298FEF0 */ _t95 = cpu->r[3] + 0x00000000u;
|
|
/* 0298FEF0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t95);
|
|
/* 0298FEF4 */ _t96 = cpu->r[10] + 0x00000014u;
|
|
/* 0298FEF4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t96);
|
|
/* 0298FEF8 */ cpu->ctr = cpu->r[0];
|
|
/* 0298FEFC */ cpu->r[4] = cpu->r[28];
|
|
/* 0298FF00 */ cpu->r[5] = cpu->r[25];
|
|
/* 0298FF04 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298FF08: ; // 0x298ff08
|
|
/* 0298FF08 */ cpu->r[3] = cpu->r[26];
|
|
/* 0298FF0C */ Gambit_fn_02837030(cpu);
|
|
/* 0298FF10 */ /* nop */
|
|
/* 0298FF14 */ _t97 = cpu->r[1] + 0x0000006Cu;
|
|
/* 0298FF14 */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 0298FF18 */ cpu->lr = cpu->r[0];
|
|
/* 0298FF1C */ cpu->r[1] = cpu->r[1] + 0x00000068u;
|
|
/* 0298FF20 */ return;
|
|
}
|
|
|
|
// fn_0298FF24 @ 0x298ff24
|
|
void Gambit_fn_0298FF24(CPUState* cpu) {
|
|
uint32_t _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_0298FF24: ; // 0x298ff24
|
|
/* 0298FF24 */ cpu->r[0] = cpu->lr;
|
|
/* 0298FF28 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298FF28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298FF28 */ cpu->r[1] = _t0;
|
|
/* 0298FF2C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FF2C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298FF30 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FF30 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298FF34 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FF34 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 0298FF38 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FF38 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298FF3C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FF3C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298FF40 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298FF44 */ cpu->r[28] = cpu->r[29] + 0x0000010Cu;
|
|
/* 0298FF48 */ cpu->r[31] = cpu->r[5];
|
|
/* 0298FF4C */ cpu->r[3] = cpu->r[28];
|
|
/* 0298FF50 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298FF54 */ Gambit_fn_02836FFC(cpu);
|
|
/* 0298FF58 */ _t6 = cpu->r[29] + 0x00000024u;
|
|
/* 0298FF58 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298FF5C */ _t7 = cpu->r[29] + 0x00000028u;
|
|
/* 0298FF5C */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298FF60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[8]);
|
|
/* 0298FF64 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298FF64 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298FF64 */ if (_t9) goto L_0298FF68; else goto L_0298FF80;
|
|
L_0298FF68: ; // 0x298ff68
|
|
/* 0298FF68 */ _t10 = cpu->r[29] + 0x0000002Cu;
|
|
/* 0298FF68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298FF6C */ cpu->r[9] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298FF70 */ _t11 = cpu->r[9] + cpu->r[0];
|
|
/* 0298FF70 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 0298FF74 */ _t12 = cpu->r[29] + 0x00000024u;
|
|
/* 0298FF74 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298FF78 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 0298FF7C */ _t13 = cpu->r[29] + 0x00000024u;
|
|
/* 0298FF7C */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
L_0298FF80: ; // 0x298ff80
|
|
/* 0298FF80 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298FF84 */ Gambit_fn_02837030(cpu);
|
|
/* 0298FF88 */ _t14 = cpu->r[29] + 0x00000040u;
|
|
/* 0298FF88 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298FF8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298FF90 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FF90 */ _t16 = _t15 & 0x00000001u;
|
|
/* 0298FF90 */ if (_t16) goto L_0298FFAC; else goto L_0298FF94;
|
|
L_0298FF94: ; // 0x298ff94
|
|
/* 0298FF94 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 0298FF94 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298FF98 */ _t18 = cpu->r[12] + 0x00000034u;
|
|
/* 0298FF98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298FF9C */ cpu->ctr = cpu->r[0];
|
|
/* 0298FFA0 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298FFA4 */ cpu->r[5] = cpu->r[31];
|
|
/* 0298FFA8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298FFAC: ; // 0x298ffac
|
|
/* 0298FFAC */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FFAC */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298FFB0 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FFB0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298FFB4 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FFB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298FFB8 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FFB8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298FFBC */ cpu->lr = cpu->r[0];
|
|
/* 0298FFC0 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FFC0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298FFC4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298FFC8 */ return;
|
|
}
|
|
|
|
// fn_0298FF28 @ 0x298ff28
|
|
void Gambit_fn_0298FF28(CPUState* cpu) {
|
|
uint32_t _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_0298FF28: ; // 0x298ff28
|
|
/* 0298FF28 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298FF28 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298FF28 */ cpu->r[1] = _t0;
|
|
/* 0298FF2C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FF2C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 0298FF30 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FF30 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 0298FF34 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FF34 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 0298FF38 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FF38 */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 0298FF3C */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FF3C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298FF40 */ cpu->r[29] = cpu->r[3];
|
|
/* 0298FF44 */ cpu->r[28] = cpu->r[29] + 0x0000010Cu;
|
|
/* 0298FF48 */ cpu->r[31] = cpu->r[5];
|
|
/* 0298FF4C */ cpu->r[3] = cpu->r[28];
|
|
/* 0298FF50 */ cpu->r[30] = cpu->r[4];
|
|
/* 0298FF54 */ Gambit_fn_02836FFC(cpu);
|
|
/* 0298FF58 */ _t6 = cpu->r[29] + 0x00000024u;
|
|
/* 0298FF58 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298FF5C */ _t7 = cpu->r[29] + 0x00000028u;
|
|
/* 0298FF5C */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0298FF60 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], cpu->r[8]);
|
|
/* 0298FF64 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 0298FF64 */ _t9 = _t8 & 0x00000001u;
|
|
/* 0298FF64 */ if (_t9) goto L_0298FF68; else goto L_0298FF80;
|
|
L_0298FF68: ; // 0x298ff68
|
|
/* 0298FF68 */ _t10 = cpu->r[29] + 0x0000002Cu;
|
|
/* 0298FF68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0298FF6C */ cpu->r[9] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 0298FF70 */ _t11 = cpu->r[9] + cpu->r[0];
|
|
/* 0298FF70 */ rbrew_write32(cpu->mem, _t11, cpu->r[30]);
|
|
/* 0298FF74 */ _t12 = cpu->r[29] + 0x00000024u;
|
|
/* 0298FF74 */ cpu->r[11] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0298FF78 */ cpu->r[11] = cpu->r[11] + 0x00000001u;
|
|
/* 0298FF7C */ _t13 = cpu->r[29] + 0x00000024u;
|
|
/* 0298FF7C */ rbrew_write32(cpu->mem, _t13, cpu->r[11]);
|
|
L_0298FF80: ; // 0x298ff80
|
|
/* 0298FF80 */ cpu->r[3] = cpu->r[28];
|
|
/* 0298FF84 */ Gambit_fn_02837030(cpu);
|
|
/* 0298FF88 */ _t14 = cpu->r[29] + 0x00000040u;
|
|
/* 0298FF88 */ cpu->r[3] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0298FF8C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298FF90 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0298FF90 */ _t16 = _t15 & 0x00000001u;
|
|
/* 0298FF90 */ if (_t16) goto L_0298FFAC; else goto L_0298FF94;
|
|
L_0298FF94: ; // 0x298ff94
|
|
/* 0298FF94 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 0298FF94 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0298FF98 */ _t18 = cpu->r[12] + 0x00000034u;
|
|
/* 0298FF98 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0298FF9C */ cpu->ctr = cpu->r[0];
|
|
/* 0298FFA0 */ cpu->r[4] = cpu->r[30];
|
|
/* 0298FFA4 */ cpu->r[5] = cpu->r[31];
|
|
/* 0298FFA8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0298FFAC: ; // 0x298ffac
|
|
/* 0298FFAC */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FFAC */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 0298FFB0 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FFB0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 0298FFB4 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FFB4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 0298FFB8 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FFB8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0298FFBC */ cpu->lr = cpu->r[0];
|
|
/* 0298FFC0 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FFC0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0298FFC4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0298FFC8 */ return;
|
|
}
|
|
|
|
// fn_0298FFCC @ 0x298ffcc
|
|
void Gambit_fn_0298FFCC(CPUState* cpu) {
|
|
L_0298FFCC: ; // 0x298ffcc
|
|
/* 0298FFCC */ cpu->r[3] = 0x00000001u;
|
|
/* 0298FFD0 */ return;
|
|
}
|
|
|
|
// fn_0298FFD4 @ 0x298ffd4
|
|
void Gambit_fn_0298FFD4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55;
|
|
|
|
L_0298FFD4: ; // 0x298ffd4
|
|
/* 0298FFD4 */ cpu->r[0] = cpu->lr;
|
|
/* 0298FFD8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298FFD8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298FFD8 */ cpu->r[1] = _t0;
|
|
/* 0298FFDC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FFDC */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 0298FFE0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FFE0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 0298FFE4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FFE4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298FFE8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FFE8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 0298FFEC */ cpu->r[31] = cpu->r[3];
|
|
/* 0298FFF0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FFF0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298FFF4 */ _t6 = cpu->r[31] + 0x00000040u;
|
|
/* 0298FFF4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298FFF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298FFFC */ cpu->r[30] = cpu->r[4];
|
|
/* 02990000 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990000 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02990000 */ if (_t8) goto L_02990018; else goto L_02990004;
|
|
L_02990004: ; // 0x2990004
|
|
/* 02990004 */ _t9 = cpu->r[3] + 0x00000000u;
|
|
/* 02990004 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02990008 */ _t10 = cpu->r[9] + 0x0000003Cu;
|
|
/* 02990008 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0299000C */ cpu->ctr = cpu->r[10];
|
|
/* 02990010 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990014 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02990018: ; // 0x2990018
|
|
/* 02990018 */ cpu->r[29] = cpu->r[31] + 0x00000184u;
|
|
/* 0299001C */ cpu->r[3] = cpu->r[29];
|
|
/* 02990020 */ Gambit_fn_02836FFC(cpu);
|
|
/* 02990024 */ _t11 = cpu->r[30] + 0x000000CCu;
|
|
/* 02990024 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02990028 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0299002C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299002C */ _t13 = _t12 & 0x00000001u;
|
|
/* 0299002C */ if (_t13) goto L_02990030; else goto L_0299003C;
|
|
L_02990030: ; // 0x2990030
|
|
/* 02990030 */ _t14 = cpu->r[30] + 0x000000C8u;
|
|
/* 02990030 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990034 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02990038 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990038 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02990038 */ if (_t16) goto L_02990054; else goto L_0299003C;
|
|
L_0299003C: ; // 0x299003c
|
|
/* 0299003C */ _t17 = cpu->r[31] + 0x000000CCu;
|
|
/* 0299003C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02990040 */ cpu->r[3] = cpu->r[30] + cpu->r[0];
|
|
/* 02990044 */ Gambit_fn_02801EDC(cpu);
|
|
/* 02990048 */ _t18 = cpu->r[31] + 0x000000C8u;
|
|
/* 02990048 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0299004C */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 02990050 */ _t19 = cpu->r[31] + 0x000000C8u;
|
|
/* 02990050 */ rbrew_write32(cpu->mem, _t19, cpu->r[9]);
|
|
L_02990054: ; // 0x2990054
|
|
/* 02990054 */ _t20 = cpu->r[30] + 0x000000D4u;
|
|
/* 02990054 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02990058 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0299005C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299005C */ _t22 = _t21 & 0x00000001u;
|
|
/* 0299005C */ if (_t22) goto L_02990060; else goto L_0299006C;
|
|
L_02990060: ; // 0x2990060
|
|
/* 02990060 */ _t23 = cpu->r[30] + 0x000000D0u;
|
|
/* 02990060 */ cpu->r[11] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02990064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02990068 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990068 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02990068 */ if (_t25) goto L_029900D0; else goto L_0299006C;
|
|
L_0299006C: ; // 0x299006c
|
|
/* 0299006C */ _t26 = cpu->r[31] + 0x000000DCu;
|
|
/* 0299006C */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02990070 */ cpu->r[3] = cpu->r[31] + 0x000000D0u;
|
|
/* 02990074 */ cpu->r[4] = cpu->r[30] + cpu->r[12];
|
|
/* 02990078 */ Gambit_fn_02802290(cpu);
|
|
/* 0299007C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 02990080 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990080 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02990080 */ if (_t28) goto L_029900A0; else goto L_02990084;
|
|
L_02990084: ; // 0x2990084
|
|
/* 02990084 */ _t29 = cpu->r[31] + 0x000000DCu;
|
|
/* 02990084 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02990088 */ cpu->r[3] = cpu->r[30] + cpu->r[0];
|
|
/* 0299008C */ Gambit_fn_02801EDC(cpu);
|
|
/* 02990090 */ _t30 = cpu->r[31] + 0x000000D8u;
|
|
/* 02990090 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02990094 */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 02990098 */ _t31 = cpu->r[31] + 0x000000D8u;
|
|
/* 02990098 */ rbrew_write32(cpu->mem, _t31, cpu->r[11]);
|
|
/* 0299009C */ goto L_029900D0;
|
|
L_029900A0: ; // 0x29900a0
|
|
/* 029900A0 */ _t32 = cpu->r[31] + 0x000000ECu;
|
|
/* 029900A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 029900A4 */ cpu->r[3] = cpu->r[31] + 0x000000E0u;
|
|
/* 029900A8 */ cpu->r[4] = cpu->r[30] + cpu->r[0];
|
|
/* 029900AC */ Gambit_fn_02802290(cpu);
|
|
/* 029900B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 029900B4 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029900B4 */ _t34 = _t33 & 0x00000001u;
|
|
/* 029900B4 */ if (_t34) goto L_029900D0; else goto L_029900B8;
|
|
L_029900B8: ; // 0x29900b8
|
|
/* 029900B8 */ _t35 = cpu->r[31] + 0x000000ECu;
|
|
/* 029900B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029900BC */ cpu->r[3] = cpu->r[30] + cpu->r[9];
|
|
/* 029900C0 */ Gambit_fn_02801EDC(cpu);
|
|
/* 029900C4 */ _t36 = cpu->r[31] + 0x000000E8u;
|
|
/* 029900C4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t36);
|
|
/* 029900C8 */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 029900CC */ _t37 = cpu->r[31] + 0x000000E8u;
|
|
/* 029900CC */ rbrew_write32(cpu->mem, _t37, cpu->r[11]);
|
|
L_029900D0: ; // 0x29900d0
|
|
/* 029900D0 */ _t38 = cpu->r[31] + 0x000001C4u;
|
|
/* 029900D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029900D4 */ _t39 = cpu->r[31] + 0x000001CCu;
|
|
/* 029900D4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029900D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029900DC */ cpu->r[12] = cpu->r[10] + cpu->r[0];
|
|
/* 029900E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[12]);
|
|
/* 029900E4 */ cpu->r[28] = 0x00000000u;
|
|
/* 029900E8 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029900E8 */ _t41 = _t40 & 0x00000001u;
|
|
/* 029900E8 */ if (_t41) goto L_0299014C; else goto L_029900EC;
|
|
L_029900EC: ; // 0x29900ec
|
|
/* 029900EC */ _t42 = cpu->r[10] + 0x00000000u;
|
|
/* 029900EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 029900F0 */ cpu->r[4] = cpu->r[30];
|
|
/* 029900F4 */ cpu->r[3] = cpu->r[0];
|
|
/* 029900F8 */ Gambit_fn_0298FFCC(cpu);
|
|
/* 029900FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990100 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990100 */ _t44 = _t43 & 0x00000001u;
|
|
/* 02990100 */ if (_t44) goto L_0299013C; else goto L_02990104;
|
|
L_02990104: ; // 0x2990104
|
|
/* 02990104 */ cpu->r[3] = cpu->r[0];
|
|
/* 02990104 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990108 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990108 */ _t46 = _t45 & 0x00000001u;
|
|
/* 02990108 */ if (_t46) goto L_02990120; else goto L_0299010C;
|
|
L_0299010C: ; // 0x299010c
|
|
/* 0299010C */ _t47 = cpu->r[3] + 0x00000000u;
|
|
/* 0299010C */ cpu->r[11] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02990110 */ _t48 = cpu->r[11] + 0x00000014u;
|
|
/* 02990110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02990114 */ cpu->ctr = cpu->r[0];
|
|
/* 02990118 */ cpu->r[4] = 0x00000003u;
|
|
/* 0299011C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02990120: ; // 0x2990120
|
|
/* 02990120 */ cpu->r[5] = 0x00000001u;
|
|
/* 02990124 */ cpu->r[4] = cpu->r[28];
|
|
/* 02990128 */ cpu->r[3] = cpu->r[31] + 0x000001C4u;
|
|
/* 0299012C */ Gambit_fn_0280246C(cpu);
|
|
/* 02990130 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990134 */ Gambit_fn_02837030(cpu);
|
|
/* 02990138 */ goto L_02990154;
|
|
L_0299013C: ; // 0x299013c
|
|
/* 0299013C */ cpu->r[10] = cpu->r[10] + 0x00000004u;
|
|
/* 02990140 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[12]);
|
|
/* 02990144 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 02990148 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990148 */ _t50 = _t49 & 0x00000001u;
|
|
/* 02990148 */ if (_t50) goto L_0299014C; else goto L_029900EC;
|
|
L_0299014C: ; // 0x299014c
|
|
/* 0299014C */ cpu->r[3] = cpu->r[29];
|
|
/* 02990150 */ Gambit_fn_02837030(cpu);
|
|
L_02990154: ; // 0x2990154
|
|
/* 02990154 */ _t51 = cpu->r[1] + 0x00000008u;
|
|
/* 02990154 */ cpu->r[28] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02990158 */ _t52 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990158 */ cpu->r[29] = rbrew_read32(cpu->mem, _t52);
|
|
/* 0299015C */ _t53 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299015C */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 02990160 */ _t54 = cpu->r[1] + 0x00000010u;
|
|
/* 02990160 */ cpu->r[30] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02990164 */ cpu->lr = cpu->r[0];
|
|
/* 02990168 */ _t55 = cpu->r[1] + 0x00000014u;
|
|
/* 02990168 */ cpu->r[31] = rbrew_read32(cpu->mem, _t55);
|
|
/* 0299016C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02990170 */ return;
|
|
}
|
|
|
|
// fn_0298FFD8 @ 0x298ffd8
|
|
void Gambit_fn_0298FFD8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55;
|
|
|
|
L_0298FFD8: ; // 0x298ffd8
|
|
/* 0298FFD8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0298FFD8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0298FFD8 */ cpu->r[1] = _t0;
|
|
/* 0298FFDC */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 0298FFDC */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 0298FFE0 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0298FFE0 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 0298FFE4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0298FFE4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0298FFE8 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 0298FFE8 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 0298FFEC */ cpu->r[31] = cpu->r[3];
|
|
/* 0298FFF0 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0298FFF0 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0298FFF4 */ _t6 = cpu->r[31] + 0x00000040u;
|
|
/* 0298FFF4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0298FFF8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 0298FFFC */ cpu->r[30] = cpu->r[4];
|
|
/* 02990000 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990000 */ _t8 = _t7 & 0x00000001u;
|
|
/* 02990000 */ if (_t8) goto L_02990018; else goto L_02990004;
|
|
L_02990004: ; // 0x2990004
|
|
/* 02990004 */ _t9 = cpu->r[3] + 0x00000000u;
|
|
/* 02990004 */ cpu->r[9] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02990008 */ _t10 = cpu->r[9] + 0x0000003Cu;
|
|
/* 02990008 */ cpu->r[10] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0299000C */ cpu->ctr = cpu->r[10];
|
|
/* 02990010 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990014 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02990018: ; // 0x2990018
|
|
/* 02990018 */ cpu->r[29] = cpu->r[31] + 0x00000184u;
|
|
/* 0299001C */ cpu->r[3] = cpu->r[29];
|
|
/* 02990020 */ Gambit_fn_02836FFC(cpu);
|
|
/* 02990024 */ _t11 = cpu->r[30] + 0x000000CCu;
|
|
/* 02990024 */ cpu->r[11] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02990028 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 0299002C */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299002C */ _t13 = _t12 & 0x00000001u;
|
|
/* 0299002C */ if (_t13) goto L_02990030; else goto L_0299003C;
|
|
L_02990030: ; // 0x2990030
|
|
/* 02990030 */ _t14 = cpu->r[30] + 0x000000C8u;
|
|
/* 02990030 */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990034 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02990038 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990038 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02990038 */ if (_t16) goto L_02990054; else goto L_0299003C;
|
|
L_0299003C: ; // 0x299003c
|
|
/* 0299003C */ _t17 = cpu->r[31] + 0x000000CCu;
|
|
/* 0299003C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02990040 */ cpu->r[3] = cpu->r[30] + cpu->r[0];
|
|
/* 02990044 */ Gambit_fn_02801EDC(cpu);
|
|
/* 02990048 */ _t18 = cpu->r[31] + 0x000000C8u;
|
|
/* 02990048 */ cpu->r[9] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0299004C */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 02990050 */ _t19 = cpu->r[31] + 0x000000C8u;
|
|
/* 02990050 */ rbrew_write32(cpu->mem, _t19, cpu->r[9]);
|
|
L_02990054: ; // 0x2990054
|
|
/* 02990054 */ _t20 = cpu->r[30] + 0x000000D4u;
|
|
/* 02990054 */ cpu->r[10] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02990058 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 0299005C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299005C */ _t22 = _t21 & 0x00000001u;
|
|
/* 0299005C */ if (_t22) goto L_02990060; else goto L_0299006C;
|
|
L_02990060: ; // 0x2990060
|
|
/* 02990060 */ _t23 = cpu->r[30] + 0x000000D0u;
|
|
/* 02990060 */ cpu->r[11] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02990064 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02990068 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990068 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02990068 */ if (_t25) goto L_029900D0; else goto L_0299006C;
|
|
L_0299006C: ; // 0x299006c
|
|
/* 0299006C */ _t26 = cpu->r[31] + 0x000000DCu;
|
|
/* 0299006C */ cpu->r[12] = rbrew_read32(cpu->mem, _t26);
|
|
/* 02990070 */ cpu->r[3] = cpu->r[31] + 0x000000D0u;
|
|
/* 02990074 */ cpu->r[4] = cpu->r[30] + cpu->r[12];
|
|
/* 02990078 */ Gambit_fn_02802290(cpu);
|
|
/* 0299007C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 02990080 */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990080 */ _t28 = _t27 & 0x00000001u;
|
|
/* 02990080 */ if (_t28) goto L_029900A0; else goto L_02990084;
|
|
L_02990084: ; // 0x2990084
|
|
/* 02990084 */ _t29 = cpu->r[31] + 0x000000DCu;
|
|
/* 02990084 */ cpu->r[0] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02990088 */ cpu->r[3] = cpu->r[30] + cpu->r[0];
|
|
/* 0299008C */ Gambit_fn_02801EDC(cpu);
|
|
/* 02990090 */ _t30 = cpu->r[31] + 0x000000D8u;
|
|
/* 02990090 */ cpu->r[11] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02990094 */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 02990098 */ _t31 = cpu->r[31] + 0x000000D8u;
|
|
/* 02990098 */ rbrew_write32(cpu->mem, _t31, cpu->r[11]);
|
|
/* 0299009C */ goto L_029900D0;
|
|
L_029900A0: ; // 0x29900a0
|
|
/* 029900A0 */ _t32 = cpu->r[31] + 0x000000ECu;
|
|
/* 029900A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t32);
|
|
/* 029900A4 */ cpu->r[3] = cpu->r[31] + 0x000000E0u;
|
|
/* 029900A8 */ cpu->r[4] = cpu->r[30] + cpu->r[0];
|
|
/* 029900AC */ Gambit_fn_02802290(cpu);
|
|
/* 029900B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0xFFFFFFFFu);
|
|
/* 029900B4 */ _t33 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029900B4 */ _t34 = _t33 & 0x00000001u;
|
|
/* 029900B4 */ if (_t34) goto L_029900D0; else goto L_029900B8;
|
|
L_029900B8: ; // 0x29900b8
|
|
/* 029900B8 */ _t35 = cpu->r[31] + 0x000000ECu;
|
|
/* 029900B8 */ cpu->r[9] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029900BC */ cpu->r[3] = cpu->r[30] + cpu->r[9];
|
|
/* 029900C0 */ Gambit_fn_02801EDC(cpu);
|
|
/* 029900C4 */ _t36 = cpu->r[31] + 0x000000E8u;
|
|
/* 029900C4 */ cpu->r[11] = rbrew_read32(cpu->mem, _t36);
|
|
/* 029900C8 */ cpu->r[11] = cpu->r[11] + 0xFFFFFFFFu;
|
|
/* 029900CC */ _t37 = cpu->r[31] + 0x000000E8u;
|
|
/* 029900CC */ rbrew_write32(cpu->mem, _t37, cpu->r[11]);
|
|
L_029900D0: ; // 0x29900d0
|
|
/* 029900D0 */ _t38 = cpu->r[31] + 0x000001C4u;
|
|
/* 029900D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029900D4 */ _t39 = cpu->r[31] + 0x000001CCu;
|
|
/* 029900D4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029900D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029900DC */ cpu->r[12] = cpu->r[10] + cpu->r[0];
|
|
/* 029900E0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[12]);
|
|
/* 029900E4 */ cpu->r[28] = 0x00000000u;
|
|
/* 029900E8 */ _t40 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029900E8 */ _t41 = _t40 & 0x00000001u;
|
|
/* 029900E8 */ if (_t41) goto L_0299014C; else goto L_029900EC;
|
|
L_029900EC: ; // 0x29900ec
|
|
/* 029900EC */ _t42 = cpu->r[10] + 0x00000000u;
|
|
/* 029900EC */ cpu->r[0] = rbrew_read32(cpu->mem, _t42);
|
|
/* 029900F0 */ cpu->r[4] = cpu->r[30];
|
|
/* 029900F4 */ cpu->r[3] = cpu->r[0];
|
|
/* 029900F8 */ Gambit_fn_0298FFCC(cpu);
|
|
/* 029900FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990100 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990100 */ _t44 = _t43 & 0x00000001u;
|
|
/* 02990100 */ if (_t44) goto L_0299013C; else goto L_02990104;
|
|
L_02990104: ; // 0x2990104
|
|
/* 02990104 */ cpu->r[3] = cpu->r[0];
|
|
/* 02990104 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990108 */ _t45 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990108 */ _t46 = _t45 & 0x00000001u;
|
|
/* 02990108 */ if (_t46) goto L_02990120; else goto L_0299010C;
|
|
L_0299010C: ; // 0x299010c
|
|
/* 0299010C */ _t47 = cpu->r[3] + 0x00000000u;
|
|
/* 0299010C */ cpu->r[11] = rbrew_read32(cpu->mem, _t47);
|
|
/* 02990110 */ _t48 = cpu->r[11] + 0x00000014u;
|
|
/* 02990110 */ cpu->r[0] = rbrew_read32(cpu->mem, _t48);
|
|
/* 02990114 */ cpu->ctr = cpu->r[0];
|
|
/* 02990118 */ cpu->r[4] = 0x00000003u;
|
|
/* 0299011C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02990120: ; // 0x2990120
|
|
/* 02990120 */ cpu->r[5] = 0x00000001u;
|
|
/* 02990124 */ cpu->r[4] = cpu->r[28];
|
|
/* 02990128 */ cpu->r[3] = cpu->r[31] + 0x000001C4u;
|
|
/* 0299012C */ Gambit_fn_0280246C(cpu);
|
|
/* 02990130 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990134 */ Gambit_fn_02837030(cpu);
|
|
/* 02990138 */ goto L_02990154;
|
|
L_0299013C: ; // 0x299013c
|
|
/* 0299013C */ cpu->r[10] = cpu->r[10] + 0x00000004u;
|
|
/* 02990140 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[12]);
|
|
/* 02990144 */ cpu->r[28] = cpu->r[28] + 0x00000001u;
|
|
/* 02990148 */ _t49 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990148 */ _t50 = _t49 & 0x00000001u;
|
|
/* 02990148 */ if (_t50) goto L_0299014C; else goto L_029900EC;
|
|
L_0299014C: ; // 0x299014c
|
|
/* 0299014C */ cpu->r[3] = cpu->r[29];
|
|
/* 02990150 */ Gambit_fn_02837030(cpu);
|
|
L_02990154: ; // 0x2990154
|
|
/* 02990154 */ _t51 = cpu->r[1] + 0x00000008u;
|
|
/* 02990154 */ cpu->r[28] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02990158 */ _t52 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990158 */ cpu->r[29] = rbrew_read32(cpu->mem, _t52);
|
|
/* 0299015C */ _t53 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299015C */ cpu->r[0] = rbrew_read32(cpu->mem, _t53);
|
|
/* 02990160 */ _t54 = cpu->r[1] + 0x00000010u;
|
|
/* 02990160 */ cpu->r[30] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02990164 */ cpu->lr = cpu->r[0];
|
|
/* 02990168 */ _t55 = cpu->r[1] + 0x00000014u;
|
|
/* 02990168 */ cpu->r[31] = rbrew_read32(cpu->mem, _t55);
|
|
/* 0299016C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02990170 */ return;
|
|
}
|
|
|
|
// fn_0299014C @ 0x299014c
|
|
void Gambit_fn_0299014C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4;
|
|
|
|
L_0299014C: ; // 0x299014c
|
|
/* 0299014C */ cpu->r[3] = cpu->r[29];
|
|
/* 02990150 */ Gambit_fn_02837030(cpu);
|
|
/* 02990154 */ _t0 = cpu->r[1] + 0x00000008u;
|
|
/* 02990154 */ cpu->r[28] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02990158 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990158 */ cpu->r[29] = rbrew_read32(cpu->mem, _t1);
|
|
/* 0299015C */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299015C */ cpu->r[0] = rbrew_read32(cpu->mem, _t2);
|
|
/* 02990160 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 02990160 */ cpu->r[30] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02990164 */ cpu->lr = cpu->r[0];
|
|
/* 02990168 */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 02990168 */ cpu->r[31] = rbrew_read32(cpu->mem, _t4);
|
|
/* 0299016C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02990170 */ return;
|
|
}
|
|
|
|
// fn_02990174 @ 0x2990174
|
|
void Gambit_fn_02990174(CPUState* cpu) {
|
|
uint32_t _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_02990174: ; // 0x2990174
|
|
/* 02990174 */ cpu->r[0] = cpu->lr;
|
|
/* 02990178 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02990178 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02990178 */ cpu->r[1] = _t0;
|
|
/* 0299017C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299017C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02990180 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02990180 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02990184 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02990184 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02990188 */ cpu->r[30] = cpu->r[3];
|
|
/* 0299018C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299018C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02990190 */ cpu->r[29] = cpu->r[30] + 0x0000010Cu;
|
|
/* 02990194 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990198 */ cpu->r[31] = cpu->r[4];
|
|
/* 0299019C */ Gambit_fn_02836FFC(cpu);
|
|
/* 029901A0 */ _t5 = cpu->r[30] + 0x00000018u;
|
|
/* 029901A0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029901A4 */ _t6 = cpu->r[30] + 0x00000020u;
|
|
/* 029901A4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029901A8 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029901AC */ cpu->r[8] = cpu->r[10] + cpu->r[8];
|
|
/* 029901B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[8]);
|
|
/* 029901B4 */ cpu->r[4] = 0x00000000u;
|
|
/* 029901B8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029901B8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029901B8 */ if (_t8) goto L_02990240; else goto L_029901BC;
|
|
L_029901BC: ; // 0x29901bc
|
|
/* 029901BC */ _t9 = cpu->r[10] + 0x00000000u;
|
|
/* 029901BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029901C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 029901C4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029901C4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 029901C4 */ if (_t11) goto L_029901C8; else goto L_02990230;
|
|
L_029901C8: ; // 0x29901c8
|
|
/* 029901C8 */ cpu->r[5] = 0x00000001u;
|
|
/* 029901CC */ cpu->r[3] = cpu->r[30] + 0x00000018u;
|
|
/* 029901D0 */ Gambit_fn_0280246C(cpu);
|
|
/* 029901D4 */ _t12 = cpu->r[30] + 0x00000030u;
|
|
/* 029901D4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029901D8 */ _t13 = cpu->r[30] + 0x00000038u;
|
|
/* 029901D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029901DC */ cpu->r[11] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029901E0 */ cpu->r[0] = cpu->r[12] + cpu->r[11];
|
|
/* 029901E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 029901E8 */ cpu->r[4] = 0x00000000u;
|
|
/* 029901EC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029901EC */ _t15 = _t14 & 0x00000001u;
|
|
/* 029901EC */ if (_t15) goto L_02990240; else goto L_029901F0;
|
|
L_029901F0: ; // 0x29901f0
|
|
/* 029901F0 */ _t16 = cpu->r[12] + 0x00000000u;
|
|
/* 029901F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029901F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[31]);
|
|
/* 029901F8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029901F8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 029901F8 */ if (_t18) goto L_029901FC; else goto L_02990214;
|
|
L_029901FC: ; // 0x29901fc
|
|
/* 029901FC */ cpu->r[5] = 0x00000001u;
|
|
/* 02990200 */ cpu->r[3] = cpu->r[30] + 0x00000030u;
|
|
/* 02990204 */ Gambit_fn_0280246C(cpu);
|
|
/* 02990208 */ cpu->r[3] = cpu->r[29];
|
|
/* 0299020C */ Gambit_fn_02837030(cpu);
|
|
/* 02990210 */ goto L_02990248;
|
|
L_02990214: ; // 0x2990214
|
|
/* 02990214 */ cpu->r[12] = cpu->r[12] + 0x00000004u;
|
|
/* 02990218 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 0299021C */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 02990220 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990220 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02990220 */ if (_t20) goto L_02990224; else goto L_029901F0;
|
|
L_02990224: ; // 0x2990224
|
|
/* 02990224 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990228 */ Gambit_fn_02837030(cpu);
|
|
/* 0299022C */ goto L_02990248;
|
|
L_02990230: ; // 0x2990230
|
|
/* 02990230 */ cpu->r[10] = cpu->r[10] + 0x00000004u;
|
|
/* 02990234 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[8]);
|
|
/* 02990238 */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 0299023C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299023C */ _t22 = _t21 & 0x00000001u;
|
|
/* 0299023C */ if (_t22) goto L_02990240; else goto L_029901BC;
|
|
L_02990240: ; // 0x2990240
|
|
/* 02990240 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990244 */ Gambit_fn_02837030(cpu);
|
|
L_02990248: ; // 0x2990248
|
|
/* 02990248 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990248 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0299024C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299024C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02990250 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 02990250 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02990254 */ cpu->lr = cpu->r[0];
|
|
/* 02990258 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 02990258 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0299025C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02990260 */ return;
|
|
}
|
|
|
|
// fn_02990178 @ 0x2990178
|
|
void Gambit_fn_02990178(CPUState* cpu) {
|
|
uint32_t _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_02990178: ; // 0x2990178
|
|
/* 02990178 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02990178 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02990178 */ cpu->r[1] = _t0;
|
|
/* 0299017C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299017C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02990180 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02990180 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02990184 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02990184 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02990188 */ cpu->r[30] = cpu->r[3];
|
|
/* 0299018C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299018C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02990190 */ cpu->r[29] = cpu->r[30] + 0x0000010Cu;
|
|
/* 02990194 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990198 */ cpu->r[31] = cpu->r[4];
|
|
/* 0299019C */ Gambit_fn_02836FFC(cpu);
|
|
/* 029901A0 */ _t5 = cpu->r[30] + 0x00000018u;
|
|
/* 029901A0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029901A4 */ _t6 = cpu->r[30] + 0x00000020u;
|
|
/* 029901A4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029901A8 */ cpu->r[8] = rbrew_rlwinm(cpu->r[9], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029901AC */ cpu->r[8] = cpu->r[10] + cpu->r[8];
|
|
/* 029901B0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[8]);
|
|
/* 029901B4 */ cpu->r[4] = 0x00000000u;
|
|
/* 029901B8 */ _t7 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029901B8 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029901B8 */ if (_t8) goto L_02990240; else goto L_029901BC;
|
|
L_029901BC: ; // 0x29901bc
|
|
/* 029901BC */ _t9 = cpu->r[10] + 0x00000000u;
|
|
/* 029901BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029901C0 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[31]);
|
|
/* 029901C4 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029901C4 */ _t11 = _t10 & 0x00000001u;
|
|
/* 029901C4 */ if (_t11) goto L_029901C8; else goto L_02990230;
|
|
L_029901C8: ; // 0x29901c8
|
|
/* 029901C8 */ cpu->r[5] = 0x00000001u;
|
|
/* 029901CC */ cpu->r[3] = cpu->r[30] + 0x00000018u;
|
|
/* 029901D0 */ Gambit_fn_0280246C(cpu);
|
|
/* 029901D4 */ _t12 = cpu->r[30] + 0x00000030u;
|
|
/* 029901D4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029901D8 */ _t13 = cpu->r[30] + 0x00000038u;
|
|
/* 029901D8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 029901DC */ cpu->r[11] = rbrew_rlwinm(cpu->r[7], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 029901E0 */ cpu->r[0] = cpu->r[12] + cpu->r[11];
|
|
/* 029901E4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 029901E8 */ cpu->r[4] = 0x00000000u;
|
|
/* 029901EC */ _t14 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029901EC */ _t15 = _t14 & 0x00000001u;
|
|
/* 029901EC */ if (_t15) goto L_02990240; else goto L_029901F0;
|
|
L_029901F0: ; // 0x29901f0
|
|
/* 029901F0 */ _t16 = cpu->r[12] + 0x00000000u;
|
|
/* 029901F0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029901F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[31]);
|
|
/* 029901F8 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029901F8 */ _t18 = _t17 & 0x00000001u;
|
|
/* 029901F8 */ if (_t18) goto L_029901FC; else goto L_02990214;
|
|
L_029901FC: ; // 0x29901fc
|
|
/* 029901FC */ cpu->r[5] = 0x00000001u;
|
|
/* 02990200 */ cpu->r[3] = cpu->r[30] + 0x00000030u;
|
|
/* 02990204 */ Gambit_fn_0280246C(cpu);
|
|
/* 02990208 */ cpu->r[3] = cpu->r[29];
|
|
/* 0299020C */ Gambit_fn_02837030(cpu);
|
|
/* 02990210 */ goto L_02990248;
|
|
L_02990214: ; // 0x2990214
|
|
/* 02990214 */ cpu->r[12] = cpu->r[12] + 0x00000004u;
|
|
/* 02990218 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[0]);
|
|
/* 0299021C */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 02990220 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990220 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02990220 */ if (_t20) goto L_02990224; else goto L_029901F0;
|
|
L_02990224: ; // 0x2990224
|
|
/* 02990224 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990228 */ Gambit_fn_02837030(cpu);
|
|
/* 0299022C */ goto L_02990248;
|
|
L_02990230: ; // 0x2990230
|
|
/* 02990230 */ cpu->r[10] = cpu->r[10] + 0x00000004u;
|
|
/* 02990234 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[10], cpu->r[8]);
|
|
/* 02990238 */ cpu->r[4] = cpu->r[4] + 0x00000001u;
|
|
/* 0299023C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299023C */ _t22 = _t21 & 0x00000001u;
|
|
/* 0299023C */ if (_t22) goto L_02990240; else goto L_029901BC;
|
|
L_02990240: ; // 0x2990240
|
|
/* 02990240 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990244 */ Gambit_fn_02837030(cpu);
|
|
L_02990248: ; // 0x2990248
|
|
/* 02990248 */ _t23 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990248 */ cpu->r[29] = rbrew_read32(cpu->mem, _t23);
|
|
/* 0299024C */ _t24 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299024C */ cpu->r[0] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02990250 */ _t25 = cpu->r[1] + 0x00000010u;
|
|
/* 02990250 */ cpu->r[30] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02990254 */ cpu->lr = cpu->r[0];
|
|
/* 02990258 */ _t26 = cpu->r[1] + 0x00000014u;
|
|
/* 02990258 */ cpu->r[31] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0299025C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02990260 */ return;
|
|
}
|
|
|
|
// fn_02990268 @ 0x2990268
|
|
void Gambit_fn_02990268(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02990268: ; // 0x2990268
|
|
/* 02990268 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02990268 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02990268 */ cpu->r[1] = _t0;
|
|
/* 0299026C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299026C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02990270 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02990270 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02990274 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02990274 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02990278 */ cpu->r[30] = cpu->r[3];
|
|
/* 0299027C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299027C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02990280 */ cpu->r[29] = cpu->r[30] + 0x00000184u;
|
|
/* 02990284 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990288 */ cpu->r[31] = cpu->r[4];
|
|
/* 0299028C */ Gambit_fn_02836FFC(cpu);
|
|
/* 02990290 */ _t5 = cpu->r[30] + 0x000000F0u;
|
|
/* 02990290 */ cpu->r[30] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02990294 */ _t6 = cpu->r[30] + 0x0000000Cu;
|
|
/* 02990294 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02990298 */ cpu->r[3] = cpu->r[30];
|
|
/* 0299029C */ cpu->r[4] = cpu->r[31] + cpu->r[0];
|
|
/* 029902A0 */ Gambit_fn_02801EBC(cpu);
|
|
/* 029902A4 */ _t7 = cpu->r[30] + 0x00000008u;
|
|
/* 029902A4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029902A8 */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 029902AC */ cpu->r[3] = cpu->r[29];
|
|
/* 029902B0 */ _t8 = cpu->r[30] + 0x00000008u;
|
|
/* 029902B0 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
/* 029902B4 */ Gambit_fn_02837030(cpu);
|
|
/* 029902B8 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029902B8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029902BC */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029902BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029902C0 */ _t11 = cpu->r[1] + 0x00000010u;
|
|
/* 029902C0 */ cpu->r[30] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029902C4 */ cpu->lr = cpu->r[0];
|
|
/* 029902C8 */ _t12 = cpu->r[1] + 0x00000014u;
|
|
/* 029902C8 */ cpu->r[31] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029902CC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029902D0 */ return;
|
|
}
|
|
|
|
// fn_029902D4 @ 0x29902d4
|
|
void Gambit_fn_029902D4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_029902D4: ; // 0x29902d4
|
|
/* 029902D4 */ cpu->r[0] = cpu->lr;
|
|
/* 029902D8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029902D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029902D8 */ cpu->r[1] = _t0;
|
|
/* 029902DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029902DC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029902E0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029902E4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 029902E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 029902E8 */ _t3 = cpu->r[31] + 0x00000100u;
|
|
/* 029902E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029902EC */ cpu->r[3] = cpu->r[31] + 0x000000F4u;
|
|
/* 029902F0 */ cpu->r[4] = cpu->r[4] + cpu->r[0];
|
|
/* 029902F4 */ Gambit_fn_02801EBC(cpu);
|
|
/* 029902F8 */ _t4 = cpu->r[31] + 0x000000FCu;
|
|
/* 029902F8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029902FC */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 02990300 */ _t5 = cpu->r[31] + 0x000000FCu;
|
|
/* 02990300 */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 02990304 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02990304 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02990308 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990308 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0299030C */ cpu->lr = cpu->r[0];
|
|
/* 02990310 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02990314 */ return;
|
|
}
|
|
|
|
// fn_029902D8 @ 0x29902d8
|
|
void Gambit_fn_029902D8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7;
|
|
|
|
L_029902D8: ; // 0x29902d8
|
|
/* 029902D8 */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 029902D8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029902D8 */ cpu->r[1] = _t0;
|
|
/* 029902DC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029902DC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029902E0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029902E4 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 029902E4 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 029902E8 */ _t3 = cpu->r[31] + 0x00000100u;
|
|
/* 029902E8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029902EC */ cpu->r[3] = cpu->r[31] + 0x000000F4u;
|
|
/* 029902F0 */ cpu->r[4] = cpu->r[4] + cpu->r[0];
|
|
/* 029902F4 */ Gambit_fn_02801EBC(cpu);
|
|
/* 029902F8 */ _t4 = cpu->r[31] + 0x000000FCu;
|
|
/* 029902F8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029902FC */ cpu->r[12] = cpu->r[12] + 0x00000001u;
|
|
/* 02990300 */ _t5 = cpu->r[31] + 0x000000FCu;
|
|
/* 02990300 */ rbrew_write32(cpu->mem, _t5, cpu->r[12]);
|
|
/* 02990304 */ _t6 = cpu->r[1] + 0x00000014u;
|
|
/* 02990304 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02990308 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990308 */ cpu->r[31] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0299030C */ cpu->lr = cpu->r[0];
|
|
/* 02990310 */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02990314 */ return;
|
|
}
|
|
|
|
// fn_02990318 @ 0x2990318
|
|
void Gambit_fn_02990318(CPUState* cpu) {
|
|
uint32_t _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_02990318: ; // 0x2990318
|
|
/* 02990318 */ cpu->r[0] = cpu->lr;
|
|
/* 0299031C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0299031C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0299031C */ cpu->r[1] = _t0;
|
|
/* 02990320 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02990320 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 02990324 */ cpu->r[28] = cpu->r[4];
|
|
/* 02990328 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02990328 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0299032C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299032C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02990330 */ cpu->r[31] = cpu->r[3];
|
|
/* 02990330 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02990334 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 02990334 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 02990338 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990338 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0299033C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299033C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0299033C */ if (_t7) goto L_029903A0; else goto L_02990340;
|
|
L_02990340: ; // 0x2990340
|
|
/* 02990340 */ cpu->r[6] = 0x10150000u;
|
|
/* 02990344 */ cpu->r[6] = cpu->r[6] + 0xFFFFFA48u;
|
|
/* 02990348 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0299034C */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0299034C */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 02990350 */ _t9 = cpu->r[12] + 0xFFFFA6B4u;
|
|
/* 02990350 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02990350 */ cpu->r[12] = _t9;
|
|
/* 02990354 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 02990358 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990358 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02990358 */ if (_t11) goto L_0299035C; else goto L_02990384;
|
|
L_0299035C: ; // 0x299035c
|
|
/* 0299035C */ cpu->r[30] = 0x101D0000u;
|
|
/* 02990360 */ cpu->r[29] = 0x00000000u;
|
|
/* 02990364 */ _t12 = cpu->r[30] + 0xFFFFA6B0u;
|
|
/* 02990364 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02990368 */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 02990368 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 0299036C */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 0299036C */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990370 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 02990370 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990374 */ cpu->ctr = cpu->r[10];
|
|
/* 02990378 */ cpu->r[4] = 0x00000002u;
|
|
/* 0299037C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990380 */ _t16 = cpu->r[30] + 0xFFFFA6B0u;
|
|
/* 02990380 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_02990384: ; // 0x2990384
|
|
/* 02990384 */ cpu->r[3] = cpu->r[31];
|
|
/* 02990388 */ cpu->r[4] = 0x00000000u;
|
|
/* 0299038C */ Gambit_fn_02821E68(cpu);
|
|
/* 02990390 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02990390 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02990394 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990394 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02990394 */ if (_t18) goto L_029903A0; else goto L_02990398;
|
|
L_02990398: ; // 0x2990398
|
|
/* 02990398 */ cpu->r[3] = cpu->r[31];
|
|
/* 0299039C */ Gambit_fn_02801BB0(cpu);
|
|
L_029903A0: ; // 0x29903a0
|
|
/* 029903A0 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 029903A0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029903A4 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029903A4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029903A8 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029903A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029903AC */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 029903AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029903B0 */ cpu->lr = cpu->r[0];
|
|
/* 029903B4 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 029903B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029903B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029903BC */ return;
|
|
}
|
|
|
|
// fn_0299031C @ 0x299031c
|
|
void Gambit_fn_0299031C(CPUState* cpu) {
|
|
uint32_t _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_0299031C: ; // 0x299031c
|
|
/* 0299031C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0299031C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0299031C */ cpu->r[1] = _t0;
|
|
/* 02990320 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02990320 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 02990324 */ cpu->r[28] = cpu->r[4];
|
|
/* 02990328 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02990328 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0299032C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299032C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02990330 */ cpu->r[31] = cpu->r[3];
|
|
/* 02990330 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02990334 */ _t4 = cpu->r[1] + 0x00000010u;
|
|
/* 02990334 */ rbrew_write32(cpu->mem, _t4, cpu->r[30]);
|
|
/* 02990338 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990338 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 0299033C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299033C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0299033C */ if (_t7) goto L_029903A0; else goto L_02990340;
|
|
L_02990340: ; // 0x2990340
|
|
/* 02990340 */ cpu->r[6] = 0x10150000u;
|
|
/* 02990344 */ cpu->r[6] = cpu->r[6] + 0xFFFFFA48u;
|
|
/* 02990348 */ cpu->r[12] = 0x101D0000u;
|
|
/* 0299034C */ _t8 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0299034C */ rbrew_write32(cpu->mem, _t8, cpu->r[6]);
|
|
/* 02990350 */ _t9 = cpu->r[12] + 0xFFFFA6B4u;
|
|
/* 02990350 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02990350 */ cpu->r[12] = _t9;
|
|
/* 02990354 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[31], cpu->r[0]);
|
|
/* 02990358 */ _t10 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990358 */ _t11 = _t10 & 0x00000001u;
|
|
/* 02990358 */ if (_t11) goto L_0299035C; else goto L_02990384;
|
|
L_0299035C: ; // 0x299035c
|
|
/* 0299035C */ cpu->r[30] = 0x101D0000u;
|
|
/* 02990360 */ cpu->r[29] = 0x00000000u;
|
|
/* 02990364 */ _t12 = cpu->r[30] + 0xFFFFA6B0u;
|
|
/* 02990364 */ cpu->r[3] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02990368 */ _t13 = cpu->r[12] + 0x00000000u;
|
|
/* 02990368 */ rbrew_write32(cpu->mem, _t13, cpu->r[29]);
|
|
/* 0299036C */ _t14 = cpu->r[3] + 0x00000000u;
|
|
/* 0299036C */ cpu->r[8] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990370 */ _t15 = cpu->r[8] + 0x00000014u;
|
|
/* 02990370 */ cpu->r[10] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990374 */ cpu->ctr = cpu->r[10];
|
|
/* 02990378 */ cpu->r[4] = 0x00000002u;
|
|
/* 0299037C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990380 */ _t16 = cpu->r[30] + 0xFFFFA6B0u;
|
|
/* 02990380 */ rbrew_write32(cpu->mem, _t16, cpu->r[29]);
|
|
L_02990384: ; // 0x2990384
|
|
/* 02990384 */ cpu->r[3] = cpu->r[31];
|
|
/* 02990388 */ cpu->r[4] = 0x00000000u;
|
|
/* 0299038C */ Gambit_fn_02821E68(cpu);
|
|
/* 02990390 */ cpu->r[0] = rbrew_rlwinm(cpu->r[28], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02990390 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02990394 */ _t17 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990394 */ _t18 = _t17 & 0x00000001u;
|
|
/* 02990394 */ if (_t18) goto L_029903A0; else goto L_02990398;
|
|
L_02990398: ; // 0x2990398
|
|
/* 02990398 */ cpu->r[3] = cpu->r[31];
|
|
/* 0299039C */ Gambit_fn_02801BB0(cpu);
|
|
L_029903A0: ; // 0x29903a0
|
|
/* 029903A0 */ _t19 = cpu->r[1] + 0x00000008u;
|
|
/* 029903A0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029903A4 */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029903A4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029903A8 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029903A8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029903AC */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 029903AC */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029903B0 */ cpu->lr = cpu->r[0];
|
|
/* 029903B4 */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 029903B4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029903B8 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029903BC */ return;
|
|
}
|
|
|
|
// fn_029903C0 @ 0x29903c0
|
|
void Gambit_fn_029903C0(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_029903C0: ; // 0x29903c0
|
|
/* 029903C0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029903C4 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029903C4 */ _t17 = _t16 & 0x00000001u;
|
|
/* 029903C4 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029903C4 */ goto L_029903C8;
|
|
L_029903C8: ; // 0x29903c8
|
|
/* 029903C8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029903C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029903CC */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029903CC */ _t19 = _t18 & 0x00000001u;
|
|
/* 029903CC */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029903CC */ goto L_029903D0;
|
|
L_029903D0: ; // 0x29903d0
|
|
/* 029903D0 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_029903D4 @ 0x29903d4
|
|
void Gambit_fn_029903D4(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_029903D4: ; // 0x29903d4
|
|
/* 029903D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029903D8 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029903D8 */ _t17 = _t16 & 0x00000001u;
|
|
/* 029903D8 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029903D8 */ goto L_029903DC;
|
|
L_029903DC: ; // 0x29903dc
|
|
/* 029903DC */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029903DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029903E0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029903E0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 029903E0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029903E0 */ goto L_029903E4;
|
|
L_029903E4: ; // 0x29903e4
|
|
/* 029903E4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_029903E8 @ 0x29903e8
|
|
void Gambit_fn_029903E8(CPUState* cpu) {
|
|
L_029903E8: ; // 0x29903e8
|
|
/* 029903E8 */ return;
|
|
}
|
|
|
|
// fn_029903EC @ 0x29903ec
|
|
void Gambit_fn_029903EC(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_029903EC: ; // 0x29903ec
|
|
/* 029903EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029903F0 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029903F0 */ _t17 = _t16 & 0x00000001u;
|
|
/* 029903F0 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029903F0 */ goto L_029903F4;
|
|
L_029903F4: ; // 0x29903f4
|
|
/* 029903F4 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029903F4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029903F8 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029903F8 */ _t19 = _t18 & 0x00000001u;
|
|
/* 029903F8 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029903F8 */ goto L_029903FC;
|
|
L_029903FC: ; // 0x29903fc
|
|
/* 029903FC */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_02990400 @ 0x2990400
|
|
void Gambit_fn_02990400(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_02990400: ; // 0x2990400
|
|
/* 02990400 */ _t0 = cpu->r[3] + 0x00000000u;
|
|
/* 02990400 */ cpu->r[11] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02990404 */ _t1 = cpu->r[3] + 0x00000008u;
|
|
/* 02990404 */ cpu->r[12] = rbrew_read32(cpu->mem, _t1);
|
|
/* 02990408 */ cpu->r[12] = cpu->r[11] + cpu->r[12];
|
|
/* 0299040C */ cpu->r[11] = 0x10110000u;
|
|
/* 02990410 */ _t2 = cpu->r[11] + 0x00007399u;
|
|
/* 02990410 */ cpu->r[0] = rbrew_read8(cpu->mem, _t2);
|
|
/* 02990414 */ _t3 = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 02990414 */ rbrew_write8(cpu->mem, _t3, (uint8_t)cpu->r[0]);
|
|
/* 02990418 */ return;
|
|
}
|
|
|
|
// fn_0299041C @ 0x299041c
|
|
void Gambit_fn_0299041C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57;
|
|
|
|
L_0299041C: ; // 0x299041c
|
|
/* 0299041C */ cpu->r[0] = cpu->lr;
|
|
/* 02990420 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 02990420 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02990420 */ cpu->r[1] = _t0;
|
|
/* 02990424 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 02990424 */ rbrew_write32(cpu->mem, _t1, cpu->r[10]);
|
|
/* 02990428 */ _t2 = cpu->r[1] + 0x00000084u;
|
|
/* 02990428 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0299042C */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0299042C */ rbrew_write32(cpu->mem, _t3, cpu->r[8]);
|
|
/* 02990430 */ _t4 = cpu->r[1] + 0x00000020u;
|
|
/* 02990430 */ rbrew_write32(cpu->mem, _t4, cpu->r[5]);
|
|
/* 02990434 */ _t5 = cpu->r[1] + 0x00000018u;
|
|
/* 02990434 */ rbrew_write32(cpu->mem, _t5, cpu->r[3]);
|
|
/* 02990438 */ _t6 = cpu->r[1] + 0x0000008Cu;
|
|
/* 02990438 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0299043C */ _t7 = cpu->r[1] + 0x00000078u;
|
|
/* 0299043C */ rbrew_write32(cpu->mem, _t7, cpu->r[28]);
|
|
/* 02990440 */ _t8 = cpu->r[1] + 0x00000080u;
|
|
/* 02990440 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 02990444 */ _t9 = cpu->r[1] + 0x00000024u;
|
|
/* 02990444 */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 02990448 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 02990448 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 0299044C */ _t11 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0299044C */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 02990450 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990450 */ rbrew_write32(cpu->mem, _t12, cpu->r[4]);
|
|
/* 02990454 */ _t13 = cpu->r[1] + 0x00000028u;
|
|
/* 02990454 */ rbrew_write32(cpu->mem, _t13, cpu->r[7]);
|
|
/* 02990458 */ _t14 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 02990458 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02990458 */ if (_t15) goto L_0299045C; else goto L_0299047C;
|
|
L_0299045C: ; // 0x299045c
|
|
/* 0299045C */ _t16 = cpu->r[1] + 0x00000048u;
|
|
/* 0299045C */ rbrew_write_f64(cpu->mem, _t16, cpu->f[3]);
|
|
/* 02990460 */ _t17 = cpu->r[1] + 0x00000068u;
|
|
/* 02990460 */ rbrew_write_f64(cpu->mem, _t17, cpu->f[7]);
|
|
/* 02990464 */ _t18 = cpu->r[1] + 0x00000060u;
|
|
/* 02990464 */ rbrew_write_f64(cpu->mem, _t18, cpu->f[6]);
|
|
/* 02990468 */ _t19 = cpu->r[1] + 0x00000040u;
|
|
/* 02990468 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[2]);
|
|
/* 0299046C */ _t20 = cpu->r[1] + 0x00000050u;
|
|
/* 0299046C */ rbrew_write_f64(cpu->mem, _t20, cpu->f[4]);
|
|
/* 02990470 */ _t21 = cpu->r[1] + 0x00000070u;
|
|
/* 02990470 */ rbrew_write_f64(cpu->mem, _t21, cpu->f[8]);
|
|
/* 02990474 */ _t22 = cpu->r[1] + 0x00000058u;
|
|
/* 02990474 */ rbrew_write_f64(cpu->mem, _t22, cpu->f[5]);
|
|
/* 02990478 */ _t23 = cpu->r[1] + 0x00000038u;
|
|
/* 02990478 */ rbrew_write_f64(cpu->mem, _t23, cpu->f[1]);
|
|
L_0299047C: ; // 0x299047c
|
|
/* 0299047C */ cpu->r[31] = cpu->r[3];
|
|
/* 0299047C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02990480 */ cpu->r[30] = cpu->r[4];
|
|
/* 02990484 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990484 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02990484 */ if (_t25) goto L_02990488; else goto L_02990498;
|
|
L_02990488: ; // 0x2990488
|
|
/* 02990488 */ cpu->r[3] = 0x0000040Cu;
|
|
/* 0299048C */ Gambit_fn_02801A78(cpu);
|
|
/* 02990490 */ cpu->r[31] = cpu->r[3];
|
|
/* 02990490 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02990494 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990494 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02990494 */ if (_t27) goto L_0299055C; else goto L_02990498;
|
|
L_02990498: ; // 0x2990498
|
|
/* 02990498 */ cpu->r[29] = cpu->r[31];
|
|
/* 02990498 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0299049C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299049C */ _t29 = _t28 & 0x00000001u;
|
|
/* 0299049C */ if (_t29) goto L_029904A0; else goto L_029904B0;
|
|
L_029904A0: ; // 0x29904a0
|
|
/* 029904A0 */ cpu->r[3] = 0x0000040Cu;
|
|
/* 029904A4 */ Gambit_fn_02801A78(cpu);
|
|
/* 029904A8 */ cpu->r[29] = cpu->r[3];
|
|
/* 029904A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 029904AC */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029904AC */ _t31 = _t30 & 0x00000001u;
|
|
/* 029904AC */ if (_t31) goto L_02990520; else goto L_029904B0;
|
|
L_029904B0: ; // 0x29904b0
|
|
/* 029904B0 */ cpu->r[3] = cpu->r[29];
|
|
/* 029904B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029904B4 */ cpu->r[28] = 0x10110000u;
|
|
/* 029904B8 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029904B8 */ _t33 = _t32 & 0x00000001u;
|
|
/* 029904B8 */ if (_t33) goto L_029904BC; else goto L_029904E8;
|
|
L_029904BC: ; // 0x29904bc
|
|
/* 029904BC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 029904C0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029904C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029904C8 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029904C8 */ _t35 = _t34 & 0x00000001u;
|
|
/* 029904C8 */ if (_t35) goto L_029904CC; else goto L_029904E8;
|
|
L_029904CC: ; // 0x29904cc
|
|
/* 029904CC */ cpu->r[7] = 0x10150000u;
|
|
/* 029904D0 */ _t36 = cpu->r[28] + 0x00007399u;
|
|
/* 029904D0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t36);
|
|
/* 029904D4 */ cpu->r[7] = cpu->r[7] + 0xFFFFF9F4u;
|
|
/* 029904D8 */ _t37 = cpu->r[29] + 0x00000000u;
|
|
/* 029904D8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 029904DC */ _t38 = cpu->r[29] + 0x00000004u;
|
|
/* 029904DC */ rbrew_write32(cpu->mem, _t38, cpu->r[7]);
|
|
/* 029904E0 */ _t39 = cpu->r[8] + 0x00000000u;
|
|
/* 029904E0 */ rbrew_write8(cpu->mem, _t39, (uint8_t)cpu->r[0]);
|
|
/* 029904E4 */ goto L_02990520;
|
|
L_029904E8: ; // 0x29904e8
|
|
/* 029904E8 */ cpu->r[5] = 0x10150000u;
|
|
/* 029904EC */ cpu->r[0] = cpu->r[29] + 0x0000000Cu;
|
|
/* 029904F0 */ cpu->r[5] = cpu->r[5] + 0xFFFFF9CCu;
|
|
/* 029904F4 */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 029904F4 */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
/* 029904F8 */ cpu->r[6] = 0x00000400u;
|
|
/* 029904FC */ _t41 = cpu->r[3] + 0x00000004u;
|
|
/* 029904FC */ rbrew_write32(cpu->mem, _t41, cpu->r[5]);
|
|
/* 02990500 */ _t42 = cpu->r[3] + 0x00000008u;
|
|
/* 02990500 */ rbrew_write32(cpu->mem, _t42, cpu->r[6]);
|
|
/* 02990504 */ _t43 = cpu->r[28] + 0x00007399u;
|
|
/* 02990504 */ cpu->r[0] = rbrew_read8(cpu->mem, _t43);
|
|
/* 02990508 */ cpu->r[7] = 0x10150000u;
|
|
/* 0299050C */ _t44 = cpu->r[29] + 0x00000000u;
|
|
/* 0299050C */ cpu->r[8] = rbrew_read32(cpu->mem, _t44);
|
|
/* 02990510 */ cpu->r[7] = cpu->r[7] + 0xFFFFF9F4u;
|
|
/* 02990514 */ _t45 = cpu->r[29] + 0x0000040Bu;
|
|
/* 02990514 */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[0]);
|
|
/* 02990518 */ _t46 = cpu->r[29] + 0x00000004u;
|
|
/* 02990518 */ rbrew_write32(cpu->mem, _t46, cpu->r[7]);
|
|
/* 0299051C */ _t47 = cpu->r[8] + 0x00000000u;
|
|
/* 0299051C */ rbrew_write8(cpu->mem, _t47, (uint8_t)cpu->r[0]);
|
|
L_02990520: ; // 0x2990520
|
|
/* 02990520 */ cpu->r[9] = 0x10150000u;
|
|
/* 02990524 */ cpu->r[12] = 0x00000002u;
|
|
/* 02990528 */ cpu->r[9] = cpu->r[9] + 0xFFFFFA24u;
|
|
/* 0299052C */ cpu->r[0] = cpu->r[1] + 0x00000090u;
|
|
/* 02990530 */ _t48 = cpu->r[31] + 0x00000004u;
|
|
/* 02990530 */ rbrew_write32(cpu->mem, _t48, cpu->r[9]);
|
|
/* 02990534 */ cpu->r[11] = cpu->r[1] + 0x00000018u;
|
|
/* 02990538 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990538 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 0299053C */ cpu->r[0] = 0x00000000u;
|
|
/* 02990540 */ _t50 = cpu->r[1] + 0x00000010u;
|
|
/* 02990540 */ rbrew_write32(cpu->mem, _t50, cpu->r[11]);
|
|
/* 02990544 */ cpu->r[3] = cpu->r[31];
|
|
/* 02990548 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0299054C */ _t51 = cpu->r[1] + 0x00000009u;
|
|
/* 0299054C */ rbrew_write8(cpu->mem, _t51, (uint8_t)cpu->r[0]);
|
|
/* 02990550 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990554 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 02990554 */ rbrew_write8(cpu->mem, _t52, (uint8_t)cpu->r[12]);
|
|
/* 02990558 */ Gambit_fn_0282A5DC(cpu);
|
|
L_0299055C: ; // 0x299055c
|
|
/* 0299055C */ _t53 = cpu->r[1] + 0x00000078u;
|
|
/* 0299055C */ cpu->r[28] = rbrew_read32(cpu->mem, _t53);
|
|
/* 02990560 */ _t54 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02990560 */ cpu->r[29] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02990564 */ _t55 = cpu->r[1] + 0x0000008Cu;
|
|
/* 02990564 */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02990568 */ cpu->r[3] = cpu->r[31];
|
|
/* 0299056C */ _t56 = cpu->r[1] + 0x00000080u;
|
|
/* 0299056C */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02990570 */ cpu->lr = cpu->r[0];
|
|
/* 02990574 */ _t57 = cpu->r[1] + 0x00000084u;
|
|
/* 02990574 */ cpu->r[31] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02990578 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 0299057C */ return;
|
|
}
|
|
|
|
// fn_02990420 @ 0x2990420
|
|
void Gambit_fn_02990420(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57;
|
|
|
|
L_02990420: ; // 0x2990420
|
|
/* 02990420 */ _t0 = cpu->r[1] + 0xFFFFFF78u;
|
|
/* 02990420 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02990420 */ cpu->r[1] = _t0;
|
|
/* 02990424 */ _t1 = cpu->r[1] + 0x00000034u;
|
|
/* 02990424 */ rbrew_write32(cpu->mem, _t1, cpu->r[10]);
|
|
/* 02990428 */ _t2 = cpu->r[1] + 0x00000084u;
|
|
/* 02990428 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 0299042C */ _t3 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0299042C */ rbrew_write32(cpu->mem, _t3, cpu->r[8]);
|
|
/* 02990430 */ _t4 = cpu->r[1] + 0x00000020u;
|
|
/* 02990430 */ rbrew_write32(cpu->mem, _t4, cpu->r[5]);
|
|
/* 02990434 */ _t5 = cpu->r[1] + 0x00000018u;
|
|
/* 02990434 */ rbrew_write32(cpu->mem, _t5, cpu->r[3]);
|
|
/* 02990438 */ _t6 = cpu->r[1] + 0x0000008Cu;
|
|
/* 02990438 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 0299043C */ _t7 = cpu->r[1] + 0x00000078u;
|
|
/* 0299043C */ rbrew_write32(cpu->mem, _t7, cpu->r[28]);
|
|
/* 02990440 */ _t8 = cpu->r[1] + 0x00000080u;
|
|
/* 02990440 */ rbrew_write32(cpu->mem, _t8, cpu->r[30]);
|
|
/* 02990444 */ _t9 = cpu->r[1] + 0x00000024u;
|
|
/* 02990444 */ rbrew_write32(cpu->mem, _t9, cpu->r[6]);
|
|
/* 02990448 */ _t10 = cpu->r[1] + 0x00000030u;
|
|
/* 02990448 */ rbrew_write32(cpu->mem, _t10, cpu->r[9]);
|
|
/* 0299044C */ _t11 = cpu->r[1] + 0x0000007Cu;
|
|
/* 0299044C */ rbrew_write32(cpu->mem, _t11, cpu->r[29]);
|
|
/* 02990450 */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990450 */ rbrew_write32(cpu->mem, _t12, cpu->r[4]);
|
|
/* 02990454 */ _t13 = cpu->r[1] + 0x00000028u;
|
|
/* 02990454 */ rbrew_write32(cpu->mem, _t13, cpu->r[7]);
|
|
/* 02990458 */ _t14 = cpu->cr[1] >> (0x00000001u & 31u);
|
|
/* 02990458 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02990458 */ if (_t15) goto L_0299045C; else goto L_0299047C;
|
|
L_0299045C: ; // 0x299045c
|
|
/* 0299045C */ _t16 = cpu->r[1] + 0x00000048u;
|
|
/* 0299045C */ rbrew_write_f64(cpu->mem, _t16, cpu->f[3]);
|
|
/* 02990460 */ _t17 = cpu->r[1] + 0x00000068u;
|
|
/* 02990460 */ rbrew_write_f64(cpu->mem, _t17, cpu->f[7]);
|
|
/* 02990464 */ _t18 = cpu->r[1] + 0x00000060u;
|
|
/* 02990464 */ rbrew_write_f64(cpu->mem, _t18, cpu->f[6]);
|
|
/* 02990468 */ _t19 = cpu->r[1] + 0x00000040u;
|
|
/* 02990468 */ rbrew_write_f64(cpu->mem, _t19, cpu->f[2]);
|
|
/* 0299046C */ _t20 = cpu->r[1] + 0x00000050u;
|
|
/* 0299046C */ rbrew_write_f64(cpu->mem, _t20, cpu->f[4]);
|
|
/* 02990470 */ _t21 = cpu->r[1] + 0x00000070u;
|
|
/* 02990470 */ rbrew_write_f64(cpu->mem, _t21, cpu->f[8]);
|
|
/* 02990474 */ _t22 = cpu->r[1] + 0x00000058u;
|
|
/* 02990474 */ rbrew_write_f64(cpu->mem, _t22, cpu->f[5]);
|
|
/* 02990478 */ _t23 = cpu->r[1] + 0x00000038u;
|
|
/* 02990478 */ rbrew_write_f64(cpu->mem, _t23, cpu->f[1]);
|
|
L_0299047C: ; // 0x299047c
|
|
/* 0299047C */ cpu->r[31] = cpu->r[3];
|
|
/* 0299047C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02990480 */ cpu->r[30] = cpu->r[4];
|
|
/* 02990484 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990484 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02990484 */ if (_t25) goto L_02990488; else goto L_02990498;
|
|
L_02990488: ; // 0x2990488
|
|
/* 02990488 */ cpu->r[3] = 0x0000040Cu;
|
|
/* 0299048C */ Gambit_fn_02801A78(cpu);
|
|
/* 02990490 */ cpu->r[31] = cpu->r[3];
|
|
/* 02990490 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02990494 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990494 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02990494 */ if (_t27) goto L_0299055C; else goto L_02990498;
|
|
L_02990498: ; // 0x2990498
|
|
/* 02990498 */ cpu->r[29] = cpu->r[31];
|
|
/* 02990498 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 0299049C */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299049C */ _t29 = _t28 & 0x00000001u;
|
|
/* 0299049C */ if (_t29) goto L_029904A0; else goto L_029904B0;
|
|
L_029904A0: ; // 0x29904a0
|
|
/* 029904A0 */ cpu->r[3] = 0x0000040Cu;
|
|
/* 029904A4 */ Gambit_fn_02801A78(cpu);
|
|
/* 029904A8 */ cpu->r[29] = cpu->r[3];
|
|
/* 029904A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], 0x00000000u);
|
|
/* 029904AC */ _t30 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029904AC */ _t31 = _t30 & 0x00000001u;
|
|
/* 029904AC */ if (_t31) goto L_02990520; else goto L_029904B0;
|
|
L_029904B0: ; // 0x29904b0
|
|
/* 029904B0 */ cpu->r[3] = cpu->r[29];
|
|
/* 029904B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029904B4 */ cpu->r[28] = 0x10110000u;
|
|
/* 029904B8 */ _t32 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029904B8 */ _t33 = _t32 & 0x00000001u;
|
|
/* 029904B8 */ if (_t33) goto L_029904BC; else goto L_029904E8;
|
|
L_029904BC: ; // 0x29904bc
|
|
/* 029904BC */ cpu->r[3] = 0x0000000Cu;
|
|
/* 029904C0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029904C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029904C8 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029904C8 */ _t35 = _t34 & 0x00000001u;
|
|
/* 029904C8 */ if (_t35) goto L_029904CC; else goto L_029904E8;
|
|
L_029904CC: ; // 0x29904cc
|
|
/* 029904CC */ cpu->r[7] = 0x10150000u;
|
|
/* 029904D0 */ _t36 = cpu->r[28] + 0x00007399u;
|
|
/* 029904D0 */ cpu->r[0] = rbrew_read8(cpu->mem, _t36);
|
|
/* 029904D4 */ cpu->r[7] = cpu->r[7] + 0xFFFFF9F4u;
|
|
/* 029904D8 */ _t37 = cpu->r[29] + 0x00000000u;
|
|
/* 029904D8 */ cpu->r[8] = rbrew_read32(cpu->mem, _t37);
|
|
/* 029904DC */ _t38 = cpu->r[29] + 0x00000004u;
|
|
/* 029904DC */ rbrew_write32(cpu->mem, _t38, cpu->r[7]);
|
|
/* 029904E0 */ _t39 = cpu->r[8] + 0x00000000u;
|
|
/* 029904E0 */ rbrew_write8(cpu->mem, _t39, (uint8_t)cpu->r[0]);
|
|
/* 029904E4 */ goto L_02990520;
|
|
L_029904E8: ; // 0x29904e8
|
|
/* 029904E8 */ cpu->r[5] = 0x10150000u;
|
|
/* 029904EC */ cpu->r[0] = cpu->r[29] + 0x0000000Cu;
|
|
/* 029904F0 */ cpu->r[5] = cpu->r[5] + 0xFFFFF9CCu;
|
|
/* 029904F4 */ _t40 = cpu->r[3] + 0x00000000u;
|
|
/* 029904F4 */ rbrew_write32(cpu->mem, _t40, cpu->r[0]);
|
|
/* 029904F8 */ cpu->r[6] = 0x00000400u;
|
|
/* 029904FC */ _t41 = cpu->r[3] + 0x00000004u;
|
|
/* 029904FC */ rbrew_write32(cpu->mem, _t41, cpu->r[5]);
|
|
/* 02990500 */ _t42 = cpu->r[3] + 0x00000008u;
|
|
/* 02990500 */ rbrew_write32(cpu->mem, _t42, cpu->r[6]);
|
|
/* 02990504 */ _t43 = cpu->r[28] + 0x00007399u;
|
|
/* 02990504 */ cpu->r[0] = rbrew_read8(cpu->mem, _t43);
|
|
/* 02990508 */ cpu->r[7] = 0x10150000u;
|
|
/* 0299050C */ _t44 = cpu->r[29] + 0x00000000u;
|
|
/* 0299050C */ cpu->r[8] = rbrew_read32(cpu->mem, _t44);
|
|
/* 02990510 */ cpu->r[7] = cpu->r[7] + 0xFFFFF9F4u;
|
|
/* 02990514 */ _t45 = cpu->r[29] + 0x0000040Bu;
|
|
/* 02990514 */ rbrew_write8(cpu->mem, _t45, (uint8_t)cpu->r[0]);
|
|
/* 02990518 */ _t46 = cpu->r[29] + 0x00000004u;
|
|
/* 02990518 */ rbrew_write32(cpu->mem, _t46, cpu->r[7]);
|
|
/* 0299051C */ _t47 = cpu->r[8] + 0x00000000u;
|
|
/* 0299051C */ rbrew_write8(cpu->mem, _t47, (uint8_t)cpu->r[0]);
|
|
L_02990520: ; // 0x2990520
|
|
/* 02990520 */ cpu->r[9] = 0x10150000u;
|
|
/* 02990524 */ cpu->r[12] = 0x00000002u;
|
|
/* 02990528 */ cpu->r[9] = cpu->r[9] + 0xFFFFFA24u;
|
|
/* 0299052C */ cpu->r[0] = cpu->r[1] + 0x00000090u;
|
|
/* 02990530 */ _t48 = cpu->r[31] + 0x00000004u;
|
|
/* 02990530 */ rbrew_write32(cpu->mem, _t48, cpu->r[9]);
|
|
/* 02990534 */ cpu->r[11] = cpu->r[1] + 0x00000018u;
|
|
/* 02990538 */ _t49 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990538 */ rbrew_write32(cpu->mem, _t49, cpu->r[0]);
|
|
/* 0299053C */ cpu->r[0] = 0x00000000u;
|
|
/* 02990540 */ _t50 = cpu->r[1] + 0x00000010u;
|
|
/* 02990540 */ rbrew_write32(cpu->mem, _t50, cpu->r[11]);
|
|
/* 02990544 */ cpu->r[3] = cpu->r[31];
|
|
/* 02990548 */ cpu->r[5] = cpu->r[1] + 0x00000008u;
|
|
/* 0299054C */ _t51 = cpu->r[1] + 0x00000009u;
|
|
/* 0299054C */ rbrew_write8(cpu->mem, _t51, (uint8_t)cpu->r[0]);
|
|
/* 02990550 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990554 */ _t52 = cpu->r[1] + 0x00000008u;
|
|
/* 02990554 */ rbrew_write8(cpu->mem, _t52, (uint8_t)cpu->r[12]);
|
|
/* 02990558 */ Gambit_fn_0282A5DC(cpu);
|
|
L_0299055C: ; // 0x299055c
|
|
/* 0299055C */ _t53 = cpu->r[1] + 0x00000078u;
|
|
/* 0299055C */ cpu->r[28] = rbrew_read32(cpu->mem, _t53);
|
|
/* 02990560 */ _t54 = cpu->r[1] + 0x0000007Cu;
|
|
/* 02990560 */ cpu->r[29] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02990564 */ _t55 = cpu->r[1] + 0x0000008Cu;
|
|
/* 02990564 */ cpu->r[0] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02990568 */ cpu->r[3] = cpu->r[31];
|
|
/* 0299056C */ _t56 = cpu->r[1] + 0x00000080u;
|
|
/* 0299056C */ cpu->r[30] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02990570 */ cpu->lr = cpu->r[0];
|
|
/* 02990574 */ _t57 = cpu->r[1] + 0x00000084u;
|
|
/* 02990574 */ cpu->r[31] = rbrew_read32(cpu->mem, _t57);
|
|
/* 02990578 */ cpu->r[1] = cpu->r[1] + 0x00000088u;
|
|
/* 0299057C */ return;
|
|
}
|
|
|
|
// fn_02990580 @ 0x2990580
|
|
void Gambit_fn_02990580(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_02990580: ; // 0x2990580
|
|
/* 02990580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990584 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990584 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02990584 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02990584 */ goto L_02990588;
|
|
L_02990588: ; // 0x2990588
|
|
/* 02990588 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02990588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0299058C */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299058C */ _t19 = _t18 & 0x00000001u;
|
|
/* 0299058C */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 0299058C */ goto L_02990590;
|
|
L_02990590: ; // 0x2990590
|
|
/* 02990590 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_02990594 @ 0x2990594
|
|
void Gambit_fn_02990594(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_02990594: ; // 0x2990594
|
|
/* 02990594 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990598 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990598 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02990598 */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 02990598 */ goto L_0299059C;
|
|
L_0299059C: ; // 0x299059c
|
|
/* 0299059C */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0299059C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029905A0 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029905A0 */ _t19 = _t18 & 0x00000001u;
|
|
/* 029905A0 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029905A0 */ goto L_029905A4;
|
|
L_029905A4: ; // 0x29905a4
|
|
/* 029905A4 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_029905A8 @ 0x29905a8
|
|
void Gambit_fn_029905A8(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_029905A8: ; // 0x29905a8
|
|
/* 029905A8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029905AC */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029905AC */ _t17 = _t16 & 0x00000001u;
|
|
/* 029905AC */ if (_t17) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029905AC */ goto L_029905B0;
|
|
L_029905B0: ; // 0x29905b0
|
|
/* 029905B0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[4], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029905B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029905B4 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029905B4 */ _t19 = _t18 & 0x00000001u;
|
|
/* 029905B4 */ if (_t19) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029905B4 */ goto L_029905B8;
|
|
L_029905B8: ; // 0x29905b8
|
|
/* 029905B8 */ goto L_02801BB0;
|
|
}
|
|
|
|
// fn_029905BC @ 0x29905bc
|
|
void Gambit_fn_029905BC(CPUState* cpu) {
|
|
uint32_t _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_029905BC: ; // 0x29905bc
|
|
/* 029905BC */ cpu->r[0] = cpu->lr;
|
|
/* 029905C0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029905C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029905C0 */ cpu->r[1] = _t0;
|
|
/* 029905C4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029905C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029905C8 */ cpu->r[31] = cpu->r[4];
|
|
/* 029905CC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029905CC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029905D0 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 029905D0 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 029905D4 */ cpu->r[30] = cpu->r[3];
|
|
/* 029905D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 029905D8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029905D8 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 029905DC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029905DC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029905E0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029905E0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029905E0 */ if (_t7) goto L_029906D8; else goto L_029905E4;
|
|
L_029905E4: ; // 0x29905e4
|
|
/* 029905E4 */ cpu->r[11] = 0x10150000u;
|
|
/* 029905E8 */ cpu->r[0] = 0x10150000u;
|
|
/* 029905EC */ _t8 = cpu->r[30] + 0x000000A8u;
|
|
/* 029905EC */ cpu->r[28] = rbrew_read16(cpu->mem, _t8);
|
|
/* 029905F0 */ cpu->r[11] = cpu->r[11] + 0xFFFFFBDCu;
|
|
/* 029905F4 */ cpu->r[0] = cpu->r[0] + 0xFFFFFBB4u;
|
|
/* 029905F8 */ _t9 = cpu->r[30] + 0x00000088u;
|
|
/* 029905F8 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 029905FC */ cpu->r[9] = 0x10150000u;
|
|
/* 02990600 */ _t10 = cpu->r[30] + 0x0000008Cu;
|
|
/* 02990600 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 02990604 */ cpu->r[9] = cpu->r[9] + 0xFFFFFBCCu;
|
|
/* 02990608 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0299060C */ _t11 = cpu->r[30] + 0x00000090u;
|
|
/* 0299060C */ rbrew_write32(cpu->mem, _t11, cpu->r[9]);
|
|
/* 02990610 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990610 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02990610 */ if (_t13) goto L_02990648; else goto L_02990614;
|
|
L_02990614: ; // 0x2990614
|
|
/* 02990614 */ cpu->r[29] = 0x00000000u;
|
|
L_02990618: ; // 0x2990618
|
|
/* 02990618 */ _t14 = cpu->r[30] + 0x000000CCu;
|
|
/* 02990618 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0299061C */ _t15 = cpu->r[10] + cpu->r[29];
|
|
/* 0299061C */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990620 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990624 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990624 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02990624 */ if (_t17) goto L_0299063C; else goto L_02990628;
|
|
L_02990628: ; // 0x2990628
|
|
/* 02990628 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02990628 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0299062C */ _t19 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0299062C */ cpu->r[7] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02990630 */ cpu->ctr = cpu->r[7];
|
|
/* 02990634 */ cpu->r[4] = 0x00000003u;
|
|
/* 02990638 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0299063C: ; // 0x299063c
|
|
/* 0299063C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 0299063C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02990640 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 02990644 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990644 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02990644 */ if (_t21) goto L_02990648; else goto L_02990618;
|
|
L_02990648: ; // 0x2990648
|
|
/* 02990648 */ _t22 = cpu->r[30] + 0x000000D4u;
|
|
/* 02990648 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0299064C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990650 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990650 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02990650 */ if (_t24) goto L_02990668; else goto L_02990654;
|
|
L_02990654: ; // 0x2990654
|
|
/* 02990654 */ _t25 = cpu->r[3] + 0x00000000u;
|
|
/* 02990654 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02990658 */ _t26 = cpu->r[11] + 0x00000014u;
|
|
/* 02990658 */ cpu->r[6] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0299065C */ cpu->ctr = cpu->r[6];
|
|
/* 02990660 */ cpu->r[4] = 0x00000003u;
|
|
/* 02990664 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02990668: ; // 0x2990668
|
|
/* 02990668 */ _t27 = cpu->r[30] + 0x000000D0u;
|
|
/* 02990668 */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0299066C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990670 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990670 */ _t29 = _t28 & 0x00000001u;
|
|
/* 02990670 */ if (_t29) goto L_02990694; else goto L_02990674;
|
|
L_02990674: ; // 0x2990674
|
|
/* 02990674 */ _t30 = cpu->r[3] + 0x00000004u;
|
|
/* 02990674 */ cpu->r[8] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02990678 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[30]);
|
|
/* 0299067C */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299067C */ _t32 = _t31 & 0x00000001u;
|
|
/* 0299067C */ if (_t32) goto L_02990680; else goto L_02990694;
|
|
L_02990680: ; // 0x2990680
|
|
/* 02990680 */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 02990680 */ cpu->r[9] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02990684 */ _t34 = cpu->r[9] + 0x00000014u;
|
|
/* 02990684 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02990688 */ cpu->ctr = cpu->r[0];
|
|
/* 0299068C */ cpu->r[4] = 0x00000003u;
|
|
/* 02990690 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02990694: ; // 0x2990694
|
|
/* 02990694 */ cpu->r[3] = cpu->r[30] + 0x00000094u;
|
|
/* 02990698 */ Gambit_fn_02C50688(cpu);
|
|
/* 0299069C */ _t35 = cpu->r[30] + 0x000000C0u;
|
|
/* 0299069C */ cpu->r[3] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029906A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029906A4 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029906A4 */ _t37 = _t36 & 0x00000001u;
|
|
/* 029906A4 */ if (_t37) goto L_029906AC; else goto L_029906A8;
|
|
L_029906A8: ; // 0x29906a8
|
|
/* 029906A8 */ Gambit_fn_02801BB0(cpu);
|
|
L_029906AC: ; // 0x29906ac
|
|
/* 029906AC */ _t38 = cpu->r[30] + 0x000000C4u;
|
|
/* 029906AC */ cpu->r[3] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029906B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029906B4 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029906B4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 029906B4 */ if (_t40) goto L_029906BC; else goto L_029906B8;
|
|
L_029906B8: ; // 0x29906b8
|
|
/* 029906B8 */ Gambit_fn_02801BB0(cpu);
|
|
L_029906BC: ; // 0x29906bc
|
|
/* 029906BC */ cpu->r[3] = cpu->r[30];
|
|
/* 029906C0 */ cpu->r[4] = 0x00000000u;
|
|
/* 029906C4 */ Gambit_fn_029DA740(cpu);
|
|
/* 029906C8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029906C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029906CC */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029906CC */ _t42 = _t41 & 0x00000001u;
|
|
/* 029906CC */ if (_t42) goto L_029906D8; else goto L_029906D0;
|
|
L_029906D0: ; // 0x29906d0
|
|
/* 029906D0 */ cpu->r[3] = cpu->r[30];
|
|
/* 029906D4 */ Gambit_fn_02801BB0(cpu);
|
|
L_029906D8: ; // 0x29906d8
|
|
/* 029906D8 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 029906D8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t43);
|
|
/* 029906DC */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029906DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 029906E0 */ _t45 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029906E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 029906E4 */ _t46 = cpu->r[1] + 0x00000010u;
|
|
/* 029906E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 029906E8 */ cpu->lr = cpu->r[0];
|
|
/* 029906EC */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 029906EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
/* 029906F0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029906F4 */ return;
|
|
}
|
|
|
|
// fn_029905C0 @ 0x29905c0
|
|
void Gambit_fn_029905C0(CPUState* cpu) {
|
|
uint32_t _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_029905C0: ; // 0x29905c0
|
|
/* 029905C0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029905C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029905C0 */ cpu->r[1] = _t0;
|
|
/* 029905C4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029905C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029905C8 */ cpu->r[31] = cpu->r[4];
|
|
/* 029905CC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029905CC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029905D0 */ _t3 = cpu->r[1] + 0x00000008u;
|
|
/* 029905D0 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 029905D4 */ cpu->r[30] = cpu->r[3];
|
|
/* 029905D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 029905D8 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029905D8 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 029905DC */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029905DC */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029905E0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029905E0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029905E0 */ if (_t7) goto L_029906D8; else goto L_029905E4;
|
|
L_029905E4: ; // 0x29905e4
|
|
/* 029905E4 */ cpu->r[11] = 0x10150000u;
|
|
/* 029905E8 */ cpu->r[0] = 0x10150000u;
|
|
/* 029905EC */ _t8 = cpu->r[30] + 0x000000A8u;
|
|
/* 029905EC */ cpu->r[28] = rbrew_read16(cpu->mem, _t8);
|
|
/* 029905F0 */ cpu->r[11] = cpu->r[11] + 0xFFFFFBDCu;
|
|
/* 029905F4 */ cpu->r[0] = cpu->r[0] + 0xFFFFFBB4u;
|
|
/* 029905F8 */ _t9 = cpu->r[30] + 0x00000088u;
|
|
/* 029905F8 */ rbrew_write32(cpu->mem, _t9, cpu->r[11]);
|
|
/* 029905FC */ cpu->r[9] = 0x10150000u;
|
|
/* 02990600 */ _t10 = cpu->r[30] + 0x0000008Cu;
|
|
/* 02990600 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 02990604 */ cpu->r[9] = cpu->r[9] + 0xFFFFFBCCu;
|
|
/* 02990608 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 0299060C */ _t11 = cpu->r[30] + 0x00000090u;
|
|
/* 0299060C */ rbrew_write32(cpu->mem, _t11, cpu->r[9]);
|
|
/* 02990610 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990610 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02990610 */ if (_t13) goto L_02990648; else goto L_02990614;
|
|
L_02990614: ; // 0x2990614
|
|
/* 02990614 */ cpu->r[29] = 0x00000000u;
|
|
L_02990618: ; // 0x2990618
|
|
/* 02990618 */ _t14 = cpu->r[30] + 0x000000CCu;
|
|
/* 02990618 */ cpu->r[10] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0299061C */ _t15 = cpu->r[10] + cpu->r[29];
|
|
/* 0299061C */ cpu->r[3] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990620 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990624 */ _t16 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990624 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02990624 */ if (_t17) goto L_0299063C; else goto L_02990628;
|
|
L_02990628: ; // 0x2990628
|
|
/* 02990628 */ _t18 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02990628 */ cpu->r[12] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0299062C */ _t19 = cpu->r[12] + 0x0000000Cu;
|
|
/* 0299062C */ cpu->r[7] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02990630 */ cpu->ctr = cpu->r[7];
|
|
/* 02990634 */ cpu->r[4] = 0x00000003u;
|
|
/* 02990638 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_0299063C: ; // 0x299063c
|
|
/* 0299063C */ cpu->r[28] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 0299063C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02990640 */ cpu->r[29] = cpu->r[29] + 0x00000004u;
|
|
/* 02990644 */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990644 */ _t21 = _t20 & 0x00000001u;
|
|
/* 02990644 */ if (_t21) goto L_02990648; else goto L_02990618;
|
|
L_02990648: ; // 0x2990648
|
|
/* 02990648 */ _t22 = cpu->r[30] + 0x000000D4u;
|
|
/* 02990648 */ cpu->r[3] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0299064C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990650 */ _t23 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990650 */ _t24 = _t23 & 0x00000001u;
|
|
/* 02990650 */ if (_t24) goto L_02990668; else goto L_02990654;
|
|
L_02990654: ; // 0x2990654
|
|
/* 02990654 */ _t25 = cpu->r[3] + 0x00000000u;
|
|
/* 02990654 */ cpu->r[11] = rbrew_read32(cpu->mem, _t25);
|
|
/* 02990658 */ _t26 = cpu->r[11] + 0x00000014u;
|
|
/* 02990658 */ cpu->r[6] = rbrew_read32(cpu->mem, _t26);
|
|
/* 0299065C */ cpu->ctr = cpu->r[6];
|
|
/* 02990660 */ cpu->r[4] = 0x00000003u;
|
|
/* 02990664 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02990668: ; // 0x2990668
|
|
/* 02990668 */ _t27 = cpu->r[30] + 0x000000D0u;
|
|
/* 02990668 */ cpu->r[3] = rbrew_read32(cpu->mem, _t27);
|
|
/* 0299066C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990670 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990670 */ _t29 = _t28 & 0x00000001u;
|
|
/* 02990670 */ if (_t29) goto L_02990694; else goto L_02990674;
|
|
L_02990674: ; // 0x2990674
|
|
/* 02990674 */ _t30 = cpu->r[3] + 0x00000004u;
|
|
/* 02990674 */ cpu->r[8] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02990678 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[8], cpu->r[30]);
|
|
/* 0299067C */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299067C */ _t32 = _t31 & 0x00000001u;
|
|
/* 0299067C */ if (_t32) goto L_02990680; else goto L_02990694;
|
|
L_02990680: ; // 0x2990680
|
|
/* 02990680 */ _t33 = cpu->r[3] + 0x00000000u;
|
|
/* 02990680 */ cpu->r[9] = rbrew_read32(cpu->mem, _t33);
|
|
/* 02990684 */ _t34 = cpu->r[9] + 0x00000014u;
|
|
/* 02990684 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02990688 */ cpu->ctr = cpu->r[0];
|
|
/* 0299068C */ cpu->r[4] = 0x00000003u;
|
|
/* 02990690 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02990694: ; // 0x2990694
|
|
/* 02990694 */ cpu->r[3] = cpu->r[30] + 0x00000094u;
|
|
/* 02990698 */ Gambit_fn_02C50688(cpu);
|
|
/* 0299069C */ _t35 = cpu->r[30] + 0x000000C0u;
|
|
/* 0299069C */ cpu->r[3] = rbrew_read32(cpu->mem, _t35);
|
|
/* 029906A0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029906A4 */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029906A4 */ _t37 = _t36 & 0x00000001u;
|
|
/* 029906A4 */ if (_t37) goto L_029906AC; else goto L_029906A8;
|
|
L_029906A8: ; // 0x29906a8
|
|
/* 029906A8 */ Gambit_fn_02801BB0(cpu);
|
|
L_029906AC: ; // 0x29906ac
|
|
/* 029906AC */ _t38 = cpu->r[30] + 0x000000C4u;
|
|
/* 029906AC */ cpu->r[3] = rbrew_read32(cpu->mem, _t38);
|
|
/* 029906B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029906B4 */ _t39 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029906B4 */ _t40 = _t39 & 0x00000001u;
|
|
/* 029906B4 */ if (_t40) goto L_029906BC; else goto L_029906B8;
|
|
L_029906B8: ; // 0x29906b8
|
|
/* 029906B8 */ Gambit_fn_02801BB0(cpu);
|
|
L_029906BC: ; // 0x29906bc
|
|
/* 029906BC */ cpu->r[3] = cpu->r[30];
|
|
/* 029906C0 */ cpu->r[4] = 0x00000000u;
|
|
/* 029906C4 */ Gambit_fn_029DA740(cpu);
|
|
/* 029906C8 */ cpu->r[12] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 029906C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029906CC */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029906CC */ _t42 = _t41 & 0x00000001u;
|
|
/* 029906CC */ if (_t42) goto L_029906D8; else goto L_029906D0;
|
|
L_029906D0: ; // 0x29906d0
|
|
/* 029906D0 */ cpu->r[3] = cpu->r[30];
|
|
/* 029906D4 */ Gambit_fn_02801BB0(cpu);
|
|
L_029906D8: ; // 0x29906d8
|
|
/* 029906D8 */ _t43 = cpu->r[1] + 0x00000008u;
|
|
/* 029906D8 */ cpu->r[28] = rbrew_read32(cpu->mem, _t43);
|
|
/* 029906DC */ _t44 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029906DC */ cpu->r[29] = rbrew_read32(cpu->mem, _t44);
|
|
/* 029906E0 */ _t45 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029906E0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t45);
|
|
/* 029906E4 */ _t46 = cpu->r[1] + 0x00000010u;
|
|
/* 029906E4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t46);
|
|
/* 029906E8 */ cpu->lr = cpu->r[0];
|
|
/* 029906EC */ _t47 = cpu->r[1] + 0x00000014u;
|
|
/* 029906EC */ cpu->r[31] = rbrew_read32(cpu->mem, _t47);
|
|
/* 029906F0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029906F4 */ return;
|
|
}
|
|
|
|
// fn_029906F8 @ 0x29906f8
|
|
void Gambit_fn_029906F8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_029906F8: ; // 0x29906f8
|
|
/* 029906F8 */ cpu->r[0] = cpu->lr;
|
|
/* 029906FC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029906FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029906FC */ cpu->r[1] = _t0;
|
|
/* 02990700 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02990700 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02990704 */ cpu->r[31] = cpu->r[4];
|
|
/* 02990708 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990708 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0299070C */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 0299070C */ cpu->r[6] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02990710 */ _t4 = cpu->r[5] + 0x00000008u;
|
|
/* 02990710 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02990714 */ _t5 = cpu->r[6] + 0x00000000u;
|
|
/* 02990714 */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02990718 */ cpu->r[9] = 0x34000000u;
|
|
/* 0299071C */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0299071C */ rbrew_write32(cpu->mem, _t6, cpu->r[7]);
|
|
/* 02990720 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 02990720 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02990724 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 02990728 */ cpu->r[8] = cpu->r[8] & cpu->r[9];
|
|
/* 0299072C */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 0299072C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 02990730 */ _t9 = cpu->r[5] + 0x00000000u;
|
|
/* 02990730 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02990734 */ _t10 = cpu->r[5] + 0x00000004u;
|
|
/* 02990734 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02990738 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990738 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 0299073C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 0299073C */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 02990740 */ _t13 = cpu->r[3] + 0x000000E4u;
|
|
/* 02990740 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02990740 */ cpu->r[3] = _t13;
|
|
/* 02990744 */ _t14 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02990744 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990748 */ cpu->ctr = cpu->r[0];
|
|
/* 0299074C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 02990750 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990754 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 02990754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990758 */ _t16 = cpu->r[31] + 0x00000004u;
|
|
/* 02990758 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 0299075C */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299075C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02990760 */ cpu->lr = cpu->r[0];
|
|
/* 02990764 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02990764 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02990768 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0299076C */ return;
|
|
}
|
|
|
|
// fn_029906FC @ 0x29906fc
|
|
void Gambit_fn_029906FC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_029906FC: ; // 0x29906fc
|
|
/* 029906FC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029906FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029906FC */ cpu->r[1] = _t0;
|
|
/* 02990700 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02990700 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02990704 */ cpu->r[31] = cpu->r[4];
|
|
/* 02990708 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990708 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0299070C */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 0299070C */ cpu->r[6] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02990710 */ _t4 = cpu->r[5] + 0x00000008u;
|
|
/* 02990710 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02990714 */ _t5 = cpu->r[6] + 0x00000000u;
|
|
/* 02990714 */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02990718 */ cpu->r[9] = 0x34000000u;
|
|
/* 0299071C */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0299071C */ rbrew_write32(cpu->mem, _t6, cpu->r[7]);
|
|
/* 02990720 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 02990720 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02990724 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 02990728 */ cpu->r[8] = cpu->r[8] & cpu->r[9];
|
|
/* 0299072C */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 0299072C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 02990730 */ _t9 = cpu->r[5] + 0x00000000u;
|
|
/* 02990730 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02990734 */ _t10 = cpu->r[5] + 0x00000004u;
|
|
/* 02990734 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02990738 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990738 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 0299073C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 0299073C */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 02990740 */ _t13 = cpu->r[3] + 0x000000E4u;
|
|
/* 02990740 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02990740 */ cpu->r[3] = _t13;
|
|
/* 02990744 */ _t14 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02990744 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990748 */ cpu->ctr = cpu->r[0];
|
|
/* 0299074C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 02990750 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990754 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 02990754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990758 */ _t16 = cpu->r[31] + 0x00000004u;
|
|
/* 02990758 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 0299075C */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299075C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02990760 */ cpu->lr = cpu->r[0];
|
|
/* 02990764 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02990764 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02990768 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0299076C */ return;
|
|
}
|
|
|
|
// fn_02990770 @ 0x2990770
|
|
void Gambit_fn_02990770(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18;
|
|
|
|
L_029906F8: ; // 0x29906f8
|
|
/* 029906F8 */ cpu->r[0] = cpu->lr;
|
|
/* 029906FC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029906FC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029906FC */ cpu->r[1] = _t0;
|
|
/* 02990700 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02990700 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02990704 */ cpu->r[31] = cpu->r[4];
|
|
/* 02990708 */ _t2 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990708 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 0299070C */ _t3 = cpu->r[31] + 0x00000000u;
|
|
/* 0299070C */ cpu->r[6] = rbrew_read32(cpu->mem, _t3);
|
|
/* 02990710 */ _t4 = cpu->r[5] + 0x00000008u;
|
|
/* 02990710 */ cpu->r[12] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02990714 */ _t5 = cpu->r[6] + 0x00000000u;
|
|
/* 02990714 */ cpu->r[7] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02990718 */ cpu->r[9] = 0x34000000u;
|
|
/* 0299071C */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0299071C */ rbrew_write32(cpu->mem, _t6, cpu->r[7]);
|
|
/* 02990720 */ _t7 = cpu->r[12] + 0x00000000u;
|
|
/* 02990720 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02990724 */ cpu->r[9] = cpu->r[9] + 0xFFFFFFFFu;
|
|
/* 02990728 */ cpu->r[8] = cpu->r[8] & cpu->r[9];
|
|
/* 0299072C */ _t8 = cpu->r[12] + 0x00000000u;
|
|
/* 0299072C */ rbrew_write32(cpu->mem, _t8, cpu->r[8]);
|
|
/* 02990730 */ _t9 = cpu->r[5] + 0x00000000u;
|
|
/* 02990730 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02990734 */ _t10 = cpu->r[5] + 0x00000004u;
|
|
/* 02990734 */ cpu->r[11] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02990738 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990738 */ rbrew_write32(cpu->mem, _t11, cpu->r[10]);
|
|
/* 0299073C */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 0299073C */ rbrew_write32(cpu->mem, _t12, cpu->r[11]);
|
|
/* 02990740 */ _t13 = cpu->r[3] + 0x000000E4u;
|
|
/* 02990740 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02990740 */ cpu->r[3] = _t13;
|
|
/* 02990744 */ _t14 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02990744 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990748 */ cpu->ctr = cpu->r[0];
|
|
/* 0299074C */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 02990750 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990754 */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 02990754 */ cpu->r[0] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990758 */ _t16 = cpu->r[31] + 0x00000004u;
|
|
/* 02990758 */ rbrew_write32(cpu->mem, _t16, cpu->r[0]);
|
|
/* 0299075C */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299075C */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02990760 */ cpu->lr = cpu->r[0];
|
|
/* 02990764 */ _t18 = cpu->r[1] + 0x00000014u;
|
|
/* 02990764 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02990768 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0299076C */ return;
|
|
L_02990770: ; // 0x2990770
|
|
/* 02990770 */ cpu->r[3] = cpu->r[3] + 0xFFFFFF74u;
|
|
/* 02990774 */ goto L_029906F8;
|
|
}
|
|
|
|
// fn_02990778 @ 0x2990778
|
|
void Gambit_fn_02990778(CPUState* cpu) {
|
|
uint32_t _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_02990778: ; // 0x2990778
|
|
/* 02990778 */ cpu->r[0] = cpu->lr;
|
|
/* 0299077C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0299077C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0299077C */ cpu->r[1] = _t0;
|
|
/* 02990780 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990780 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02990784 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02990784 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02990788 */ cpu->r[31] = cpu->r[3];
|
|
/* 02990788 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0299078C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0299078C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02990790 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990790 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02990790 */ if (_t5) goto L_02990794; else goto L_029907A4;
|
|
L_02990794: ; // 0x2990794
|
|
/* 02990794 */ cpu->r[3] = 0x00000104u;
|
|
/* 02990798 */ Gambit_fn_02801A78(cpu);
|
|
/* 0299079C */ cpu->r[31] = cpu->r[3];
|
|
/* 0299079C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029907A0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029907A0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029907A0 */ if (_t7) goto L_02990858; else goto L_029907A4;
|
|
L_029907A4: ; // 0x29907a4
|
|
/* 029907A4 */ cpu->r[3] = cpu->r[31];
|
|
/* 029907A8 */ Gambit_fn_029DA4E8(cpu);
|
|
/* 029907AC */ cpu->r[0] = 0x10150000u;
|
|
/* 029907B0 */ cpu->r[10] = 0x10150000u;
|
|
/* 029907B4 */ cpu->r[11] = 0x10150000u;
|
|
/* 029907B8 */ cpu->r[0] = cpu->r[0] + 0xFFFFFBDCu;
|
|
/* 029907BC */ cpu->r[10] = cpu->r[10] + 0xFFFFFBB4u;
|
|
/* 029907C0 */ _t8 = cpu->r[31] + 0x00000088u;
|
|
/* 029907C0 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 029907C4 */ cpu->r[11] = cpu->r[11] + 0xFFFFFBCCu;
|
|
/* 029907C8 */ cpu->r[3] = cpu->r[31] + 0x00000094u;
|
|
/* 029907C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029907CC */ _t9 = cpu->r[31] + 0x0000008Cu;
|
|
/* 029907CC */ rbrew_write32(cpu->mem, _t9, cpu->r[10]);
|
|
/* 029907D0 */ cpu->r[30] = 0x00000000u;
|
|
/* 029907D4 */ _t10 = cpu->r[31] + 0x00000090u;
|
|
/* 029907D4 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 029907D8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029907D8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029907D8 */ if (_t12) goto L_029907DC; else goto L_029907EC;
|
|
L_029907DC: ; // 0x29907dc
|
|
/* 029907DC */ cpu->r[3] = 0x00000034u;
|
|
/* 029907E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029907E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029907E8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029907E8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 029907E8 */ if (_t14) goto L_029907FC; else goto L_029907EC;
|
|
L_029907EC: ; // 0x29907ec
|
|
/* 029907EC */ _t15 = cpu->r[3] + 0x00000028u;
|
|
/* 029907EC */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 029907F0 */ _t16 = cpu->r[3] + 0x0000002Cu;
|
|
/* 029907F0 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
/* 029907F4 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 029907F4 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 029907F8 */ _t18 = cpu->r[3] + 0x00000030u;
|
|
/* 029907F8 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
L_029907FC: ; // 0x29907fc
|
|
/* 029907FC */ cpu->r[3] = cpu->r[31] + 0x000000C8u;
|
|
/* 029907FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990800 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990800 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02990800 */ if (_t20) goto L_02990804; else goto L_02990814;
|
|
L_02990804: ; // 0x2990804
|
|
/* 02990804 */ cpu->r[3] = 0x00000001u;
|
|
/* 02990808 */ Gambit_fn_02801A78(cpu);
|
|
/* 0299080C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990810 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990810 */ _t22 = _t21 & 0x00000001u;
|
|
/* 02990810 */ if (_t22) goto L_0299081C; else goto L_02990814;
|
|
L_02990814: ; // 0x2990814
|
|
/* 02990814 */ cpu->r[12] = 0x00000008u;
|
|
/* 02990818 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 02990818 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
L_0299081C: ; // 0x299081c
|
|
/* 0299081C */ cpu->r[3] = cpu->r[31] + 0x000000CAu;
|
|
/* 0299081C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990820 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990820 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02990820 */ if (_t25) goto L_02990824; else goto L_02990834;
|
|
L_02990824: ; // 0x2990824
|
|
/* 02990824 */ cpu->r[3] = 0x00000002u;
|
|
/* 02990828 */ Gambit_fn_02801A78(cpu);
|
|
/* 0299082C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990830 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990830 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02990830 */ if (_t27) goto L_02990838; else goto L_02990834;
|
|
L_02990834: ; // 0x2990834
|
|
/* 02990834 */ _t28 = cpu->r[3] + 0x00000000u;
|
|
/* 02990834 */ rbrew_write16(cpu->mem, _t28, (uint16_t)cpu->r[30]);
|
|
L_02990838: ; // 0x2990838
|
|
/* 02990838 */ _t29 = cpu->r[31] + 0x000000D0u;
|
|
/* 02990838 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
/* 0299083C */ cpu->r[3] = cpu->r[31] + 0x00000090u;
|
|
/* 02990840 */ _t30 = cpu->r[31] + 0x000000E0u;
|
|
/* 02990840 */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
/* 02990844 */ cpu->r[4] = 0x0000002Du;
|
|
/* 02990848 */ _t31 = cpu->r[31] + 0x000000CCu;
|
|
/* 02990848 */ rbrew_write32(cpu->mem, _t31, cpu->r[30]);
|
|
/* 0299084C */ _t32 = cpu->r[31] + 0x000000D4u;
|
|
/* 0299084C */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 02990850 */ _t33 = cpu->r[31] + 0x000000D8u;
|
|
/* 02990850 */ rbrew_write32(cpu->mem, _t33, cpu->r[30]);
|
|
/* 02990854 */ Gambit_fn_02A112C8(cpu);
|
|
L_02990858: ; // 0x2990858
|
|
/* 02990858 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 02990858 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 0299085C */ cpu->r[3] = cpu->r[31];
|
|
/* 02990860 */ _t35 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990860 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02990864 */ cpu->lr = cpu->r[0];
|
|
/* 02990868 */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 02990868 */ cpu->r[30] = rbrew_read32(cpu->mem, _t36);
|
|
/* 0299086C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02990870 */ return;
|
|
}
|
|
|
|
// fn_0299077C @ 0x299077c
|
|
void Gambit_fn_0299077C(CPUState* cpu) {
|
|
uint32_t _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_0299077C: ; // 0x299077c
|
|
/* 0299077C */ _t0 = cpu->r[1] + 0xFFFFFFF0u;
|
|
/* 0299077C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0299077C */ cpu->r[1] = _t0;
|
|
/* 02990780 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990780 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02990784 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02990784 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02990788 */ cpu->r[31] = cpu->r[3];
|
|
/* 02990788 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 0299078C */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 0299078C */ rbrew_write32(cpu->mem, _t3, cpu->r[0]);
|
|
/* 02990790 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990790 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02990790 */ if (_t5) goto L_02990794; else goto L_029907A4;
|
|
L_02990794: ; // 0x2990794
|
|
/* 02990794 */ cpu->r[3] = 0x00000104u;
|
|
/* 02990798 */ Gambit_fn_02801A78(cpu);
|
|
/* 0299079C */ cpu->r[31] = cpu->r[3];
|
|
/* 0299079C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 029907A0 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029907A0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029907A0 */ if (_t7) goto L_02990858; else goto L_029907A4;
|
|
L_029907A4: ; // 0x29907a4
|
|
/* 029907A4 */ cpu->r[3] = cpu->r[31];
|
|
/* 029907A8 */ Gambit_fn_029DA4E8(cpu);
|
|
/* 029907AC */ cpu->r[0] = 0x10150000u;
|
|
/* 029907B0 */ cpu->r[10] = 0x10150000u;
|
|
/* 029907B4 */ cpu->r[11] = 0x10150000u;
|
|
/* 029907B8 */ cpu->r[0] = cpu->r[0] + 0xFFFFFBDCu;
|
|
/* 029907BC */ cpu->r[10] = cpu->r[10] + 0xFFFFFBB4u;
|
|
/* 029907C0 */ _t8 = cpu->r[31] + 0x00000088u;
|
|
/* 029907C0 */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 029907C4 */ cpu->r[11] = cpu->r[11] + 0xFFFFFBCCu;
|
|
/* 029907C8 */ cpu->r[3] = cpu->r[31] + 0x00000094u;
|
|
/* 029907C8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029907CC */ _t9 = cpu->r[31] + 0x0000008Cu;
|
|
/* 029907CC */ rbrew_write32(cpu->mem, _t9, cpu->r[10]);
|
|
/* 029907D0 */ cpu->r[30] = 0x00000000u;
|
|
/* 029907D4 */ _t10 = cpu->r[31] + 0x00000090u;
|
|
/* 029907D4 */ rbrew_write32(cpu->mem, _t10, cpu->r[11]);
|
|
/* 029907D8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029907D8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029907D8 */ if (_t12) goto L_029907DC; else goto L_029907EC;
|
|
L_029907DC: ; // 0x29907dc
|
|
/* 029907DC */ cpu->r[3] = 0x00000034u;
|
|
/* 029907E0 */ Gambit_fn_02801A78(cpu);
|
|
/* 029907E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029907E8 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029907E8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 029907E8 */ if (_t14) goto L_029907FC; else goto L_029907EC;
|
|
L_029907EC: ; // 0x29907ec
|
|
/* 029907EC */ _t15 = cpu->r[3] + 0x00000028u;
|
|
/* 029907EC */ rbrew_write32(cpu->mem, _t15, cpu->r[30]);
|
|
/* 029907F0 */ _t16 = cpu->r[3] + 0x0000002Cu;
|
|
/* 029907F0 */ rbrew_write32(cpu->mem, _t16, cpu->r[30]);
|
|
/* 029907F4 */ _t17 = cpu->r[3] + 0x00000000u;
|
|
/* 029907F4 */ rbrew_write32(cpu->mem, _t17, cpu->r[30]);
|
|
/* 029907F8 */ _t18 = cpu->r[3] + 0x00000030u;
|
|
/* 029907F8 */ rbrew_write32(cpu->mem, _t18, cpu->r[30]);
|
|
L_029907FC: ; // 0x29907fc
|
|
/* 029907FC */ cpu->r[3] = cpu->r[31] + 0x000000C8u;
|
|
/* 029907FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990800 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990800 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02990800 */ if (_t20) goto L_02990804; else goto L_02990814;
|
|
L_02990804: ; // 0x2990804
|
|
/* 02990804 */ cpu->r[3] = 0x00000001u;
|
|
/* 02990808 */ Gambit_fn_02801A78(cpu);
|
|
/* 0299080C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990810 */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990810 */ _t22 = _t21 & 0x00000001u;
|
|
/* 02990810 */ if (_t22) goto L_0299081C; else goto L_02990814;
|
|
L_02990814: ; // 0x2990814
|
|
/* 02990814 */ cpu->r[12] = 0x00000008u;
|
|
/* 02990818 */ _t23 = cpu->r[3] + 0x00000000u;
|
|
/* 02990818 */ rbrew_write8(cpu->mem, _t23, (uint8_t)cpu->r[12]);
|
|
L_0299081C: ; // 0x299081c
|
|
/* 0299081C */ cpu->r[3] = cpu->r[31] + 0x000000CAu;
|
|
/* 0299081C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990820 */ _t24 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990820 */ _t25 = _t24 & 0x00000001u;
|
|
/* 02990820 */ if (_t25) goto L_02990824; else goto L_02990834;
|
|
L_02990824: ; // 0x2990824
|
|
/* 02990824 */ cpu->r[3] = 0x00000002u;
|
|
/* 02990828 */ Gambit_fn_02801A78(cpu);
|
|
/* 0299082C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990830 */ _t26 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990830 */ _t27 = _t26 & 0x00000001u;
|
|
/* 02990830 */ if (_t27) goto L_02990838; else goto L_02990834;
|
|
L_02990834: ; // 0x2990834
|
|
/* 02990834 */ _t28 = cpu->r[3] + 0x00000000u;
|
|
/* 02990834 */ rbrew_write16(cpu->mem, _t28, (uint16_t)cpu->r[30]);
|
|
L_02990838: ; // 0x2990838
|
|
/* 02990838 */ _t29 = cpu->r[31] + 0x000000D0u;
|
|
/* 02990838 */ rbrew_write32(cpu->mem, _t29, cpu->r[30]);
|
|
/* 0299083C */ cpu->r[3] = cpu->r[31] + 0x00000090u;
|
|
/* 02990840 */ _t30 = cpu->r[31] + 0x000000E0u;
|
|
/* 02990840 */ rbrew_write32(cpu->mem, _t30, cpu->r[30]);
|
|
/* 02990844 */ cpu->r[4] = 0x0000002Du;
|
|
/* 02990848 */ _t31 = cpu->r[31] + 0x000000CCu;
|
|
/* 02990848 */ rbrew_write32(cpu->mem, _t31, cpu->r[30]);
|
|
/* 0299084C */ _t32 = cpu->r[31] + 0x000000D4u;
|
|
/* 0299084C */ rbrew_write32(cpu->mem, _t32, cpu->r[30]);
|
|
/* 02990850 */ _t33 = cpu->r[31] + 0x000000D8u;
|
|
/* 02990850 */ rbrew_write32(cpu->mem, _t33, cpu->r[30]);
|
|
/* 02990854 */ Gambit_fn_02A112C8(cpu);
|
|
L_02990858: ; // 0x2990858
|
|
/* 02990858 */ _t34 = cpu->r[1] + 0x00000014u;
|
|
/* 02990858 */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 0299085C */ cpu->r[3] = cpu->r[31];
|
|
/* 02990860 */ _t35 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990860 */ cpu->r[31] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02990864 */ cpu->lr = cpu->r[0];
|
|
/* 02990868 */ _t36 = cpu->r[1] + 0x00000008u;
|
|
/* 02990868 */ cpu->r[30] = rbrew_read32(cpu->mem, _t36);
|
|
/* 0299086C */ cpu->r[1] = cpu->r[1] + 0x00000010u;
|
|
/* 02990870 */ return;
|
|
}
|
|
|
|
// fn_02990874 @ 0x2990874
|
|
void Gambit_fn_02990874(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_02990874: ; // 0x2990874
|
|
/* 02990874 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000001u);
|
|
/* 02990878 */ _t0 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02990878 */ _t1 = _t0 & 0x00000001u;
|
|
/* 02990878 */ if (_t1) goto L_02990888; else goto L_0299087C;
|
|
L_0299087C: ; // 0x299087c
|
|
/* 0299087C */ cpu->r[12] = cpu->r[4] + 0x00000001u;
|
|
/* 02990880 */ /* nop */
|
|
/* 02990884 */ cpu->r[4] = cpu->r[0];
|
|
L_02990888: ; // 0x2990888
|
|
/* 02990888 */ cpu->r[3] = cpu->r[4] + 0x00000001u;
|
|
/* 0299088C */ return;
|
|
}
|
|
|
|
// fn_02990890 @ 0x2990890
|
|
void Gambit_fn_02990890(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_02990890: ; // 0x2990890
|
|
/* 02990890 */ _t0 = cpu->r[3] + 0x000000D4u;
|
|
/* 02990890 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 02990894 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02990898 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990898 */ _t2 = _t1 & 0x00000001u;
|
|
/* 02990898 */ if (_t2) goto L_029908A4; else goto L_0299089C;
|
|
L_0299089C: ; // 0x299089c
|
|
/* 0299089C */ _t3 = cpu->r[12] + 0x0000002Cu;
|
|
/* 0299089C */ cpu->r[3] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029908A0 */ return;
|
|
L_029908A4: ; // 0x29908a4
|
|
/* 029908A4 */ cpu->r[3] = 0x00000000u;
|
|
/* 029908A8 */ return;
|
|
}
|
|
|
|
// fn_029908AC @ 0x29908ac
|
|
void Gambit_fn_029908AC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_029908AC: ; // 0x29908ac
|
|
/* 029908AC */ cpu->r[0] = cpu->lr;
|
|
/* 029908B0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029908B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029908B0 */ cpu->r[1] = _t0;
|
|
/* 029908B4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029908B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029908B8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029908B8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029908BC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029908BC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029908C0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029908C0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029908C4 */ _t5 = cpu->r[3] + 0x00000088u;
|
|
/* 029908C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029908C8 */ _t6 = cpu->r[10] + 0x000001ACu;
|
|
/* 029908C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029908CC */ cpu->ctr = cpu->r[0];
|
|
/* 029908D0 */ cpu->r[29] = cpu->r[3];
|
|
/* 029908D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029908D8 */ cpu->r[30] = cpu->r[3];
|
|
/* 029908D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 029908DC */ _t7 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029908DC */ _t8 = _t7 & 0x00000001u;
|
|
/* 029908DC */ if (_t8) goto L_029908E0; else goto L_029908FC;
|
|
L_029908E0: ; // 0x29908e0
|
|
/* 029908E0 */ cpu->r[31] = 0x00000000u;
|
|
L_029908E4: ; // 0x29908e4
|
|
/* 029908E4 */ _t9 = cpu->r[29] + 0x000000CCu;
|
|
/* 029908E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029908E8 */ _t10 = cpu->r[12] + cpu->r[31];
|
|
/* 029908E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029908EC */ Gambit_fn_02998120(cpu);
|
|
/* 029908F0 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 029908F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 029908F4 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 029908F8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029908F8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029908F8 */ if (_t12) goto L_029908FC; else goto L_029908E4;
|
|
L_029908FC: ; // 0x29908fc
|
|
/* 029908FC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029908FC */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02990900 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990900 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990904 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 02990904 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990908 */ cpu->lr = cpu->r[0];
|
|
/* 0299090C */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 0299090C */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02990910 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02990914 */ return;
|
|
}
|
|
|
|
// fn_029908B0 @ 0x29908b0
|
|
void Gambit_fn_029908B0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_029908B0: ; // 0x29908b0
|
|
/* 029908B0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029908B0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029908B0 */ cpu->r[1] = _t0;
|
|
/* 029908B4 */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029908B4 */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029908B8 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029908B8 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029908BC */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029908BC */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029908C0 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029908C0 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029908C4 */ _t5 = cpu->r[3] + 0x00000088u;
|
|
/* 029908C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029908C8 */ _t6 = cpu->r[10] + 0x000001ACu;
|
|
/* 029908C8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029908CC */ cpu->ctr = cpu->r[0];
|
|
/* 029908D0 */ cpu->r[29] = cpu->r[3];
|
|
/* 029908D4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029908D8 */ cpu->r[30] = cpu->r[3];
|
|
/* 029908D8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 029908DC */ _t7 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029908DC */ _t8 = _t7 & 0x00000001u;
|
|
/* 029908DC */ if (_t8) goto L_029908E0; else goto L_029908FC;
|
|
L_029908E0: ; // 0x29908e0
|
|
/* 029908E0 */ cpu->r[31] = 0x00000000u;
|
|
L_029908E4: ; // 0x29908e4
|
|
/* 029908E4 */ _t9 = cpu->r[29] + 0x000000CCu;
|
|
/* 029908E4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029908E8 */ _t10 = cpu->r[12] + cpu->r[31];
|
|
/* 029908E8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029908EC */ Gambit_fn_02998120(cpu);
|
|
/* 029908F0 */ cpu->r[30] = cpu->r[30] + 0xFFFFFFFFu;
|
|
/* 029908F0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 029908F4 */ cpu->r[31] = cpu->r[31] + 0x00000004u;
|
|
/* 029908F8 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029908F8 */ _t12 = _t11 & 0x00000001u;
|
|
/* 029908F8 */ if (_t12) goto L_029908FC; else goto L_029908E4;
|
|
L_029908FC: ; // 0x29908fc
|
|
/* 029908FC */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029908FC */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02990900 */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02990900 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02990904 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 02990904 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02990908 */ cpu->lr = cpu->r[0];
|
|
/* 0299090C */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 0299090C */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02990910 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02990914 */ return;
|
|
}
|
|
|
|
// fn_02990918 @ 0x2990918
|
|
void Gambit_fn_02990918(CPUState* cpu) {
|
|
uint32_t _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_02990918: ; // 0x2990918
|
|
/* 02990918 */ cpu->r[0] = cpu->lr;
|
|
/* 0299091C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0299091C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0299091C */ cpu->r[1] = _t0;
|
|
/* 02990920 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 02990920 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02990924 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990924 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 02990928 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02990928 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0299092C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299092C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02990930 */ cpu->r[29] = cpu->r[3];
|
|
/* 02990934 */ _t5 = cpu->r[29] + 0x000000D4u;
|
|
/* 02990934 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02990938 */ cpu->r[31] = cpu->r[5];
|
|
/* 0299093C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02990940 */ cpu->r[30] = cpu->r[4];
|
|
/* 02990944 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990944 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02990944 */ if (_t7) goto L_0299099C; else goto L_02990948;
|
|
L_02990948: ; // 0x2990948
|
|
/* 02990948 */ cpu->r[3] = cpu->r[29];
|
|
/* 0299094C */ Gambit_fn_02990890(cpu);
|
|
/* 02990950 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990954 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990954 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02990954 */ if (_t9) goto L_02990958; else goto L_0299099C;
|
|
L_02990958: ; // 0x2990958
|
|
/* 02990958 */ _t10 = cpu->r[29] + 0x00000002u;
|
|
/* 02990958 */ cpu->r[10] = rbrew_read16(cpu->mem, _t10);
|
|
/* 0299095C */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0299095C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02990960 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990960 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02990960 */ if (_t12) goto L_02990964; else goto L_0299096C;
|
|
L_02990964: ; // 0x2990964
|
|
/* 02990964 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02990964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02990968 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990968 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02990968 */ if (_t14) goto L_0299099C; else goto L_0299096C;
|
|
L_0299096C: ; // 0x299096c
|
|
/* 0299096C */ cpu->r[3] = cpu->r[11];
|
|
/* 02990970 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990974 */ Gambit_fn_02A340C8(cpu);
|
|
/* 02990978 */ cpu->r[3] = cpu->r[29];
|
|
/* 0299097C */ Gambit_fn_029908AC(cpu);
|
|
/* 02990980 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02990984 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990984 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02990984 */ if (_t16) goto L_0299099C; else goto L_02990988;
|
|
L_02990988: ; // 0x2990988
|
|
/* 02990988 */ _t17 = cpu->r[29] + 0x0000001Cu;
|
|
/* 02990988 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0299098C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990990 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990990 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02990990 */ if (_t19) goto L_0299099C; else goto L_02990994;
|
|
L_02990994: ; // 0x2990994
|
|
/* 02990994 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990998 */ Gambit_fn_029E55D4(cpu);
|
|
L_0299099C: ; // 0x299099c
|
|
/* 0299099C */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299099C */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029909A0 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029909A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029909A4 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 029909A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029909A8 */ cpu->lr = cpu->r[0];
|
|
/* 029909AC */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 029909AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029909B0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029909B4 */ cpu->r[3] = 0x00000001u;
|
|
/* 029909B8 */ return;
|
|
}
|
|
|
|
// fn_0299091C @ 0x299091c
|
|
void Gambit_fn_0299091C(CPUState* cpu) {
|
|
uint32_t _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_0299091C: ; // 0x299091c
|
|
/* 0299091C */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 0299091C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 0299091C */ cpu->r[1] = _t0;
|
|
/* 02990920 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 02990920 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02990924 */ _t2 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02990924 */ rbrew_write32(cpu->mem, _t2, cpu->r[29]);
|
|
/* 02990928 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02990928 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 0299092C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299092C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02990930 */ cpu->r[29] = cpu->r[3];
|
|
/* 02990934 */ _t5 = cpu->r[29] + 0x000000D4u;
|
|
/* 02990934 */ cpu->r[11] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02990938 */ cpu->r[31] = cpu->r[5];
|
|
/* 0299093C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000000u);
|
|
/* 02990940 */ cpu->r[30] = cpu->r[4];
|
|
/* 02990944 */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990944 */ _t7 = _t6 & 0x00000001u;
|
|
/* 02990944 */ if (_t7) goto L_0299099C; else goto L_02990948;
|
|
L_02990948: ; // 0x2990948
|
|
/* 02990948 */ cpu->r[3] = cpu->r[29];
|
|
/* 0299094C */ Gambit_fn_02990890(cpu);
|
|
/* 02990950 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990954 */ _t8 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990954 */ _t9 = _t8 & 0x00000001u;
|
|
/* 02990954 */ if (_t9) goto L_02990958; else goto L_0299099C;
|
|
L_02990958: ; // 0x2990958
|
|
/* 02990958 */ _t10 = cpu->r[29] + 0x00000002u;
|
|
/* 02990958 */ cpu->r[10] = rbrew_read16(cpu->mem, _t10);
|
|
/* 0299095C */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Cu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 0299095C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02990960 */ _t11 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990960 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02990960 */ if (_t12) goto L_02990964; else goto L_0299096C;
|
|
L_02990964: ; // 0x2990964
|
|
/* 02990964 */ cpu->r[0] = rbrew_rlwinm(cpu->r[10], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02990964 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02990968 */ _t13 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990968 */ _t14 = _t13 & 0x00000001u;
|
|
/* 02990968 */ if (_t14) goto L_0299099C; else goto L_0299096C;
|
|
L_0299096C: ; // 0x299096c
|
|
/* 0299096C */ cpu->r[3] = cpu->r[11];
|
|
/* 02990970 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990974 */ Gambit_fn_02A340C8(cpu);
|
|
/* 02990978 */ cpu->r[3] = cpu->r[29];
|
|
/* 0299097C */ Gambit_fn_029908AC(cpu);
|
|
/* 02990980 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02990984 */ _t15 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990984 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02990984 */ if (_t16) goto L_0299099C; else goto L_02990988;
|
|
L_02990988: ; // 0x2990988
|
|
/* 02990988 */ _t17 = cpu->r[29] + 0x0000001Cu;
|
|
/* 02990988 */ cpu->r[3] = rbrew_read32(cpu->mem, _t17);
|
|
/* 0299098C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990990 */ _t18 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990990 */ _t19 = _t18 & 0x00000001u;
|
|
/* 02990990 */ if (_t19) goto L_0299099C; else goto L_02990994;
|
|
L_02990994: ; // 0x2990994
|
|
/* 02990994 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990998 */ Gambit_fn_029E55D4(cpu);
|
|
L_0299099C: ; // 0x299099c
|
|
/* 0299099C */ _t20 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299099C */ cpu->r[29] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029909A0 */ _t21 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029909A0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029909A4 */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 029909A4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029909A8 */ cpu->lr = cpu->r[0];
|
|
/* 029909AC */ _t23 = cpu->r[1] + 0x00000014u;
|
|
/* 029909AC */ cpu->r[31] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029909B0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029909B4 */ cpu->r[3] = 0x00000001u;
|
|
/* 029909B8 */ return;
|
|
}
|
|
|
|
// fn_029909BC @ 0x29909bc
|
|
void Gambit_fn_029909BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_029909BC: ; // 0x29909bc
|
|
/* 029909BC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0xFFFFFFFFu);
|
|
/* 029909C0 */ _t0 = cpu->r[3] + 0x000000ACu;
|
|
/* 029909C0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t0);
|
|
/* 029909C4 */ cpu->r[8] = cpu->r[3] + 0x000000E4u;
|
|
/* 029909C8 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029909C8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 029909C8 */ if (_t2) goto L_029909F8; else goto L_029909CC;
|
|
L_029909CC: ; // 0x29909cc
|
|
/* 029909CC */ _t3 = cpu->r[8] + 0x00000004u;
|
|
/* 029909CC */ cpu->r[10] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029909D0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[10], 0x00000000u);
|
|
/* 029909D4 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029909D4 */ _t5 = _t4 & 0x00000001u;
|
|
/* 029909D4 */ if (_t5) goto L_029909F8; else goto L_029909D8;
|
|
L_029909D8: ; // 0x29909d8
|
|
/* 029909D8 */ cpu->r[0] = cpu->r[3] + 0x0000008Cu;
|
|
/* 029909DC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 029909E0 */ _t6 = cpu->r[9] + 0x00000030u;
|
|
/* 029909E0 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 029909E4 */ _t7 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029909E4 */ _t8 = _t7 & 0x00000001u;
|
|
/* 029909E4 */ if (_t8) goto L_029909E8; else goto L_02990A08;
|
|
L_029909E8: ; // 0x29909e8
|
|
/* 029909E8 */ cpu->r[12] = 0x00010000u;
|
|
/* 029909EC */ cpu->r[12] = cpu->r[12] + 0xFFFFFFFFu;
|
|
/* 029909F0 */ _t9 = cpu->r[9] + 0x0000002Eu;
|
|
/* 029909F0 */ rbrew_write16(cpu->mem, _t9, (uint16_t)cpu->r[12]);
|
|
/* 029909F4 */ return;
|
|
L_029909F8: ; // 0x29909f8
|
|
/* 029909F8 */ cpu->r[0] = 0x00000000u;
|
|
/* 029909FC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02990A00 */ _t10 = cpu->r[9] + 0x00000030u;
|
|
/* 02990A00 */ rbrew_write32(cpu->mem, _t10, cpu->r[0]);
|
|
/* 02990A04 */ _t11 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990A04 */ _t12 = _t11 & 0x00000001u;
|
|
/* 02990A04 */ if (_t12) goto L_029909E8; else goto L_02990A08;
|
|
L_02990A08: ; // 0x2990a08
|
|
/* 02990A08 */ _t13 = cpu->r[9] + 0x0000002Cu;
|
|
/* 02990A08 */ cpu->r[11] = rbrew_read16(cpu->mem, _t13);
|
|
/* 02990A0C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], cpu->r[11]);
|
|
/* 02990A10 */ _t14 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990A10 */ _t15 = _t14 & 0x00000001u;
|
|
/* 02990A10 */ if (_t15) goto L_02990A14; else goto L_029909E8;
|
|
L_02990A14: ; // 0x2990a14
|
|
/* 02990A14 */ _t16 = cpu->r[9] + 0x0000002Eu;
|
|
/* 02990A14 */ rbrew_write16(cpu->mem, _t16, (uint16_t)cpu->r[4]);
|
|
/* 02990A18 */ return;
|
|
}
|
|
|
|
// fn_02990A1C @ 0x2990a1c
|
|
void Gambit_fn_02990A1C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16, _t17, _t18, _t19, _t20, _t21, _t22, _t23, _t24, _t25, _t26, _t27, _t28, _t29, _t30, _t31, _t32, _t33, _t34, _t35, _t36, _t37, _t38, _t39, _t40, _t41, _t42, _t43, _t44, _t45, _t46, _t47, _t48, _t49, _t50, _t51, _t52, _t53, _t54, _t55, _t56, _t57, _t58, _t59, _t60, _t61, _t62, _t63, _t64, _t65, _t66, _t67, _t68, _t69, _t70, _t71, _t72, _t73, _t74, _t75, _t76, _t77, _t78, _t79, _t80, _t81, _t82, _t83, _t84, _t85, _t86, _t87, _t88, _t89, _t90, _t91, _t92, _t93, _t94, _t95, _t96, _t97, _t98, _t99, _t100, _t101, _t102, _t103, _t104, _t105, _t106, _t107, _t108, _t109, _t110, _t111, _t112, _t113, _t114, _t115, _t116, _t117, _t118, _t119, _t120, _t121, _t122, _t123, _t124, _t125, _t126, _t127, _t128, _t129, _t130, _t131, _t132, _t133, _t134, _t135, _t136, _t137, _t138, _t139, _t140, _t141, _t142, _t143, _t144, _t145, _t146, _t147, _t148, _t149, _t150, _t151, _t152, _t153, _t154, _t155, _t156, _t157, _t158, _t159, _t160, _t161, _t162, _t163, _t164, _t165, _t166, _t167, _t168, _t169, _t170, _t171, _t172, _t173, _t174, _t175, _t176, _t177, _t178, _t179, _t180, _t181, _t182, _t183, _t184, _t185, _t186, _t187, _t188, _t189, _t190, _t191, _t192, _t193, _t194, _t195, _t196, _t197, _t198, _t199, _t200, _t201, _t202, _t203, _t204, _t205, _t206, _t207, _t210, _t211, _t212, _t213, _t214, _t215, _t216, _t219, _t220, _t221, _t222, _t225, _t226, _t227, _t228, _t229, _t230, _t231, _t232, _t233, _t234, _t235, _t236, _t237, _t238, _t239, _t240, _t241, _t242, _t243, _t244, _t245, _t246, _t247, _t248, _t249, _t250, _t251, _t252, _t253, _t254, _t255, _t256, _t257, _t258, _t259, _t260;
|
|
double _ft208, _ft209, _ft217, _ft218, _ft223, _ft224;
|
|
|
|
L_02990A1C: ; // 0x2990a1c
|
|
/* 02990A1C */ _t0 = cpu->r[1] + 0xFFFFFF28u;
|
|
/* 02990A1C */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02990A1C */ cpu->r[1] = _t0;
|
|
/* 02990A20 */ /* nop */
|
|
/* 02990A24 */ _t1 = cpu->r[1] + 0x000000C8u;
|
|
/* 02990A24 */ rbrew_write_f64(cpu->mem, _t1, cpu->f[31]);
|
|
/* 02990A28 */ /* nop */
|
|
/* 02990A2C */ cpu->r[0] = cpu->lr;
|
|
/* 02990A30 */ _t2 = cpu->r[1] + 0x000000DCu;
|
|
/* 02990A30 */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02990A34 */ _t3 = cpu->r[1] + 0x000000D0u;
|
|
/* 02990A34 */ rbrew_write_f32(cpu->mem, _t3, cpu->f[31]);
|
|
/* 02990A38 */ cpu->r[29] = cpu->r[3];
|
|
/* 02990A3C */ cpu->r[28] = cpu->r[4];
|
|
/* 02990A40 */ _t4 = cpu->r[28] + 0x00000000u;
|
|
/* 02990A40 */ cpu->r[7] = rbrew_read32(cpu->mem, _t4);
|
|
/* 02990A44 */ _t5 = cpu->r[7] + 0x0000002Cu;
|
|
/* 02990A44 */ cpu->r[8] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02990A48 */ _t6 = cpu->r[8] + 0x000002CCu;
|
|
/* 02990A48 */ cpu->r[0] = rbrew_read8(cpu->mem, _t6);
|
|
/* 02990A4C */ cpu->r[30] = cpu->r[5];
|
|
/* 02990A4C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[30], 0x00000000u);
|
|
/* 02990A50 */ _t7 = cpu->r[29] + 0x00000004u;
|
|
/* 02990A50 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[0]);
|
|
/* 02990A54 */ _t8 = cpu->r[28] + 0x00000000u;
|
|
/* 02990A54 */ cpu->r[26] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02990A58 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990A58 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02990A58 */ if (_t10) goto L_02990A5C; else goto L_02990AE4;
|
|
L_02990A5C: ; // 0x2990a5c
|
|
/* 02990A5C */ cpu->r[3] = 0x101D0000u;
|
|
/* 02990A60 */ _t11 = cpu->r[3] + 0xFFFF98F0u;
|
|
/* 02990A60 */ cpu->r[3] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02990A64 */ Gambit_fn_02826F20(cpu);
|
|
/* 02990A68 */ _t12 = cpu->r[28] + 0x00000004u;
|
|
/* 02990A68 */ cpu->r[6] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02990A6C */ cpu->r[9] = 0x00000020u;
|
|
/* 02990A70 */ _t13 = cpu->r[29] + 0x00000004u;
|
|
/* 02990A70 */ cpu->r[0] = rbrew_read8(cpu->mem, _t13);
|
|
/* 02990A74 */ _t14 = cpu->r[1] + 0x00000048u;
|
|
/* 02990A74 */ rbrew_write32(cpu->mem, _t14, cpu->r[9]);
|
|
/* 02990A78 */ _t15 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02990A78 */ rbrew_write32(cpu->mem, _t15, cpu->r[0]);
|
|
/* 02990A7C */ _t16 = cpu->r[1] + 0x00000030u;
|
|
/* 02990A7C */ rbrew_write32(cpu->mem, _t16, cpu->r[26]);
|
|
/* 02990A80 */ cpu->r[27] = 0x00000000u;
|
|
/* 02990A84 */ _t17 = cpu->r[1] + 0x00000038u;
|
|
/* 02990A84 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 02990A88 */ cpu->r[12] = 0x00000001u;
|
|
/* 02990A8C */ _t18 = cpu->r[1] + 0x00000008u;
|
|
/* 02990A8C */ rbrew_write32(cpu->mem, _t18, cpu->r[3]);
|
|
/* 02990A90 */ _t19 = cpu->r[1] + 0x00000044u;
|
|
/* 02990A90 */ rbrew_write32(cpu->mem, _t19, cpu->r[6]);
|
|
/* 02990A94 */ _t20 = cpu->r[1] + 0x00000054u;
|
|
/* 02990A94 */ rbrew_write32(cpu->mem, _t20, cpu->r[27]);
|
|
/* 02990A98 */ _t21 = cpu->r[1] + 0x0000004Cu;
|
|
/* 02990A98 */ rbrew_write8(cpu->mem, _t21, (uint8_t)cpu->r[12]);
|
|
/* 02990A9C */ _t22 = cpu->r[1] + 0x00000034u;
|
|
/* 02990A9C */ rbrew_write32(cpu->mem, _t22, cpu->r[27]);
|
|
/* 02990AA0 */ cpu->r[3] = cpu->r[1] + 0x00000030u;
|
|
/* 02990AA4 */ _t23 = cpu->r[1] + 0x00000040u;
|
|
/* 02990AA4 */ rbrew_write32(cpu->mem, _t23, cpu->r[0]);
|
|
/* 02990AA8 */ _t24 = cpu->r[1] + 0x00000050u;
|
|
/* 02990AA8 */ rbrew_write32(cpu->mem, _t24, cpu->r[27]);
|
|
/* 02990AAC */ Gambit_fn_02C4FE20(cpu);
|
|
/* 02990AB0 */ _t25 = cpu->r[26] + 0x00000022u;
|
|
/* 02990AB0 */ cpu->r[11] = rbrew_read16(cpu->mem, _t25);
|
|
/* 02990AB4 */ cpu->r[31] = cpu->r[3];
|
|
/* 02990AB8 */ _t26 = cpu->r[26] + 0x00000024u;
|
|
/* 02990AB8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t26);
|
|
/* 02990ABC */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02990AC0 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02990AC4 */ cpu->r[25] = cpu->r[31] + cpu->r[10];
|
|
/* 02990AC8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 02990ACC */ cpu->r[5] = 0x00000040u;
|
|
/* 02990AD0 */ cpu->r[4] = cpu->r[25] + cpu->r[0];
|
|
/* 02990AD4 */ Gambit_fn_0297EA50(cpu);
|
|
/* 02990AD8 */ cpu->r[26] = cpu->r[3];
|
|
/* 02990AD8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 02990ADC */ _t27 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990ADC */ _t28 = _t27 & 0x00000001u;
|
|
/* 02990ADC */ if (_t28) goto L_02990AE0; else goto L_02990B58;
|
|
L_02990AE0: ; // 0x2990ae0
|
|
/* 02990AE0 */ goto L_02990CD8;
|
|
L_02990AE4: ; // 0x2990ae4
|
|
/* 02990AE4 */ _t29 = cpu->r[1] + 0x00000040u;
|
|
/* 02990AE4 */ rbrew_write32(cpu->mem, _t29, cpu->r[0]);
|
|
/* 02990AE8 */ cpu->r[27] = 0x00000000u;
|
|
/* 02990AEC */ _t30 = cpu->r[1] + 0x00000038u;
|
|
/* 02990AEC */ rbrew_write32(cpu->mem, _t30, cpu->r[0]);
|
|
/* 02990AF0 */ cpu->r[12] = 0x00000001u;
|
|
/* 02990AF4 */ _t31 = cpu->r[1] + 0x00000034u;
|
|
/* 02990AF4 */ rbrew_write32(cpu->mem, _t31, cpu->r[27]);
|
|
/* 02990AF8 */ _t32 = cpu->r[1] + 0x00000054u;
|
|
/* 02990AF8 */ rbrew_write32(cpu->mem, _t32, cpu->r[27]);
|
|
/* 02990AFC */ _t33 = cpu->r[1] + 0x00000050u;
|
|
/* 02990AFC */ rbrew_write32(cpu->mem, _t33, cpu->r[27]);
|
|
/* 02990B00 */ cpu->r[3] = cpu->r[1] + 0x00000030u;
|
|
/* 02990B04 */ _t34 = cpu->r[1] + 0x00000008u;
|
|
/* 02990B04 */ rbrew_write32(cpu->mem, _t34, cpu->r[30]);
|
|
/* 02990B08 */ _t35 = cpu->r[1] + 0x00000030u;
|
|
/* 02990B08 */ rbrew_write32(cpu->mem, _t35, cpu->r[26]);
|
|
/* 02990B0C */ _t36 = cpu->r[1] + 0x0000004Cu;
|
|
/* 02990B0C */ rbrew_write8(cpu->mem, _t36, (uint8_t)cpu->r[12]);
|
|
/* 02990B10 */ _t37 = cpu->r[28] + 0x00000004u;
|
|
/* 02990B10 */ cpu->r[6] = rbrew_read32(cpu->mem, _t37);
|
|
/* 02990B14 */ cpu->r[9] = 0x00000020u;
|
|
/* 02990B18 */ _t38 = cpu->r[1] + 0x0000003Cu;
|
|
/* 02990B18 */ rbrew_write32(cpu->mem, _t38, cpu->r[0]);
|
|
/* 02990B1C */ _t39 = cpu->r[1] + 0x00000048u;
|
|
/* 02990B1C */ rbrew_write32(cpu->mem, _t39, cpu->r[9]);
|
|
/* 02990B20 */ _t40 = cpu->r[1] + 0x00000044u;
|
|
/* 02990B20 */ rbrew_write32(cpu->mem, _t40, cpu->r[6]);
|
|
/* 02990B24 */ Gambit_fn_02C4FE20(cpu);
|
|
/* 02990B28 */ _t41 = cpu->r[26] + 0x00000022u;
|
|
/* 02990B28 */ cpu->r[11] = rbrew_read16(cpu->mem, _t41);
|
|
/* 02990B2C */ cpu->r[31] = cpu->r[3];
|
|
/* 02990B30 */ _t42 = cpu->r[26] + 0x00000024u;
|
|
/* 02990B30 */ cpu->r[0] = rbrew_read16(cpu->mem, _t42);
|
|
/* 02990B34 */ cpu->r[10] = rbrew_rlwinm(cpu->r[11], 0x00000002u, 0x00000000u, 0x0000001Du);
|
|
/* 02990B38 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02990B3C */ cpu->r[25] = cpu->r[31] + cpu->r[10];
|
|
/* 02990B40 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000003u, 0x00000000u, 0x0000001Cu);
|
|
/* 02990B44 */ cpu->r[5] = 0x00000040u;
|
|
/* 02990B48 */ cpu->r[4] = cpu->r[25] + cpu->r[0];
|
|
/* 02990B4C */ Gambit_fn_0297EA50(cpu);
|
|
/* 02990B50 */ cpu->r[26] = cpu->r[3];
|
|
/* 02990B50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 02990B54 */ _t43 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990B54 */ _t44 = _t43 & 0x00000001u;
|
|
/* 02990B54 */ if (_t44) goto L_02990CD8; else goto L_02990B58;
|
|
L_02990B58: ; // 0x2990b58
|
|
/* 02990B58 */ cpu->r[4] = cpu->r[1] + 0x00000030u;
|
|
/* 02990B5C */ cpu->r[6] = cpu->r[31];
|
|
/* 02990B60 */ cpu->r[5] = cpu->r[26];
|
|
/* 02990B64 */ cpu->r[3] = cpu->r[29] + 0x00000094u;
|
|
/* 02990B68 */ Gambit_fn_02C4FF2C(cpu);
|
|
/* 02990B6C */ cpu->r[0] = cpu->r[26] + cpu->r[31];
|
|
/* 02990B70 */ cpu->r[3] = cpu->r[29] + 0x00000094u;
|
|
/* 02990B74 */ _t45 = cpu->r[29] + 0x000000CCu;
|
|
/* 02990B74 */ rbrew_write32(cpu->mem, _t45, cpu->r[0]);
|
|
/* 02990B78 */ Gambit_fn_02C503CC(cpu);
|
|
/* 02990B7C */ cpu->r[31] = cpu->r[3];
|
|
/* 02990B7C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02990B80 */ _t46 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990B80 */ _t47 = _t46 & 0x00000001u;
|
|
/* 02990B80 */ if (_t47) goto L_02990BA8; else goto L_02990B84;
|
|
L_02990B84: ; // 0x2990b84
|
|
/* 02990B84 */ cpu->r[4] = cpu->r[31];
|
|
/* 02990B88 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02990B8C */ cpu->r[5] = 0x00000100u;
|
|
/* 02990B90 */ Gambit_fn_0297EA50(cpu);
|
|
/* 02990B94 */ cpu->r[4] = cpu->r[3];
|
|
/* 02990B94 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02990B98 */ _t48 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990B98 */ _t49 = _t48 & 0x00000001u;
|
|
/* 02990B98 */ if (_t49) goto L_02990CD8; else goto L_02990B9C;
|
|
L_02990B9C: ; // 0x2990b9c
|
|
/* 02990B9C */ cpu->r[5] = cpu->r[31];
|
|
/* 02990BA0 */ cpu->r[3] = cpu->r[29] + 0x00000094u;
|
|
/* 02990BA4 */ Gambit_fn_02C504D0(cpu);
|
|
L_02990BA8: ; // 0x2990ba8
|
|
/* 02990BA8 */ _t50 = cpu->r[29] + 0x000000AAu;
|
|
/* 02990BA8 */ cpu->r[24] = rbrew_read16(cpu->mem, _t50);
|
|
/* 02990BAC */ cpu->r[31] = cpu->r[26] + cpu->r[25];
|
|
/* 02990BB0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 02990BB4 */ cpu->r[26] = 0x00000000u;
|
|
/* 02990BB8 */ _t51 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990BB8 */ _t52 = _t51 & 0x00000001u;
|
|
/* 02990BB8 */ if (_t52) goto L_02990C00; else goto L_02990BBC;
|
|
L_02990BBC: ; // 0x2990bbc
|
|
/* 02990BBC */ cpu->r[31] = cpu->r[31] + 0xFFFFFFF8u;
|
|
/* 02990BC0 */ cpu->r[25] = 0x00000000u;
|
|
L_02990BC4: ; // 0x2990bc4
|
|
/* 02990BC4 */ _t53 = cpu->r[29] + 0x000000B4u;
|
|
/* 02990BC4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t53);
|
|
/* 02990BC8 */ cpu->r[4] = cpu->r[12] + cpu->r[25];
|
|
/* 02990BCC */ _t54 = cpu->r[4] + 0x00000000u;
|
|
/* 02990BCC */ cpu->r[12] = rbrew_read32(cpu->mem, _t54);
|
|
/* 02990BD0 */ _t55 = cpu->r[12] + 0x00000048u;
|
|
/* 02990BD0 */ cpu->r[6] = rbrew_read32(cpu->mem, _t55);
|
|
/* 02990BD4 */ cpu->r[3] = cpu->r[6] + 0x00000034u;
|
|
/* 02990BD8 */ Gambit_fn_029D8C28(cpu);
|
|
/* 02990BDC */ _t56 = cpu->r[29] + 0x000000B4u;
|
|
/* 02990BDC */ cpu->r[7] = rbrew_read32(cpu->mem, _t56);
|
|
/* 02990BE0 */ cpu->r[24] = cpu->r[24] + 0xFFFFFFFFu;
|
|
/* 02990BE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 02990BE4 */ _t57 = cpu->r[31] + 0x00000008u;
|
|
/* 02990BE4 */ rbrew_write32(cpu->mem, _t57, cpu->r[29]);
|
|
/* 02990BE4 */ cpu->r[31] = _t57;
|
|
/* 02990BE8 */ cpu->r[8] = cpu->r[7] + cpu->r[25];
|
|
/* 02990BEC */ _t58 = cpu->r[31] + 0x00000004u;
|
|
/* 02990BEC */ rbrew_write16(cpu->mem, _t58, (uint16_t)cpu->r[26]);
|
|
/* 02990BF0 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 02990BF4 */ cpu->r[25] = cpu->r[25] + 0x0000003Cu;
|
|
/* 02990BF8 */ _t59 = cpu->r[8] + 0x00000030u;
|
|
/* 02990BF8 */ rbrew_write32(cpu->mem, _t59, cpu->r[31]);
|
|
/* 02990BFC */ _t60 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990BFC */ _t61 = _t60 & 0x00000001u;
|
|
/* 02990BFC */ if (_t61) goto L_02990C00; else goto L_02990BC4;
|
|
L_02990C00: ; // 0x2990c00
|
|
/* 02990C00 */ _t62 = cpu->r[29] + 0x00000088u;
|
|
/* 02990C00 */ cpu->r[8] = rbrew_read32(cpu->mem, _t62);
|
|
/* 02990C04 */ _t63 = cpu->r[8] + 0x000001ACu;
|
|
/* 02990C04 */ cpu->r[0] = rbrew_read32(cpu->mem, _t63);
|
|
/* 02990C08 */ cpu->ctr = cpu->r[0];
|
|
/* 02990C0C */ cpu->r[26] = 0x00000000u;
|
|
/* 02990C10 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990C14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990C18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[3]);
|
|
/* 02990C1C */ _t64 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990C1C */ _t65 = _t64 & 0x00000001u;
|
|
/* 02990C1C */ if (_t65) goto L_02990C20; else goto L_02990CA8;
|
|
L_02990C20: ; // 0x2990c20
|
|
/* 02990C20 */ cpu->r[23] = 0x00000000u;
|
|
/* 02990C24 */ cpu->r[24] = cpu->r[23];
|
|
/* 02990C28 */ cpu->r[25] = cpu->r[23];
|
|
L_02990C2C: ; // 0x2990c2c
|
|
/* 02990C2C */ _t66 = cpu->r[29] + 0x000000CCu;
|
|
/* 02990C2C */ cpu->r[12] = rbrew_read32(cpu->mem, _t66);
|
|
/* 02990C30 */ _t67 = cpu->r[29] + 0x000000B0u;
|
|
/* 02990C30 */ cpu->r[10] = rbrew_read32(cpu->mem, _t67);
|
|
/* 02990C34 */ _t68 = cpu->r[12] + cpu->r[24];
|
|
/* 02990C34 */ rbrew_write32(cpu->mem, _t68, cpu->r[25]);
|
|
/* 02990C38 */ _t69 = cpu->r[29] + 0x00000088u;
|
|
/* 02990C38 */ cpu->r[4] = rbrew_read32(cpu->mem, _t69);
|
|
/* 02990C3C */ _t70 = cpu->r[4] + 0x00000274u;
|
|
/* 02990C3C */ cpu->r[0] = rbrew_read32(cpu->mem, _t70);
|
|
/* 02990C40 */ cpu->ctr = cpu->r[0];
|
|
/* 02990C44 */ cpu->r[4] = cpu->r[26];
|
|
/* 02990C48 */ cpu->r[31] = cpu->r[10] + cpu->r[23];
|
|
/* 02990C4C */ cpu->r[5] = cpu->r[30];
|
|
/* 02990C50 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990C54 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990C58 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990C5C */ _t71 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990C5C */ _t72 = _t71 & 0x00000001u;
|
|
/* 02990C5C */ if (_t72) goto L_02990CD8; else goto L_02990C60;
|
|
L_02990C60: ; // 0x2990c60
|
|
/* 02990C60 */ _t73 = cpu->r[31] + 0x00000000u;
|
|
/* 02990C60 */ cpu->r[12] = rbrew_read32(cpu->mem, _t73);
|
|
/* 02990C64 */ _t74 = cpu->r[12] + 0x00000017u;
|
|
/* 02990C64 */ cpu->r[0] = rbrew_read8(cpu->mem, _t74);
|
|
/* 02990C68 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 02990C6C */ _t75 = cpu->r[29] + 0x00000088u;
|
|
/* 02990C6C */ cpu->r[9] = rbrew_read32(cpu->mem, _t75);
|
|
/* 02990C70 */ _t76 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02990C70 */ _t77 = _t76 & 0x00000001u;
|
|
/* 02990C70 */ if (_t77) goto L_02990C74; else goto L_02990C84;
|
|
L_02990C74: ; // 0x2990c74
|
|
/* 02990C74 */ _t78 = cpu->r[29] + 0x00000008u;
|
|
/* 02990C74 */ cpu->r[8] = rbrew_read8(cpu->mem, _t78);
|
|
/* 02990C78 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[0], cpu->r[8]);
|
|
/* 02990C7C */ _t79 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990C7C */ _t80 = _t79 & 0x00000001u;
|
|
/* 02990C7C */ if (_t80) goto L_02990C84; else goto L_02990C80;
|
|
L_02990C80: ; // 0x2990c80
|
|
/* 02990C80 */ _t81 = cpu->r[29] + 0x00000008u;
|
|
/* 02990C80 */ rbrew_write8(cpu->mem, _t81, (uint8_t)cpu->r[0]);
|
|
L_02990C84: ; // 0x2990c84
|
|
/* 02990C84 */ _t82 = cpu->r[9] + 0x000001ACu;
|
|
/* 02990C84 */ cpu->r[10] = rbrew_read32(cpu->mem, _t82);
|
|
/* 02990C88 */ cpu->ctr = cpu->r[10];
|
|
/* 02990C8C */ cpu->r[24] = cpu->r[24] + 0x00000004u;
|
|
/* 02990C90 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990C94 */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 02990C98 */ cpu->r[23] = cpu->r[23] + 0x00000034u;
|
|
/* 02990C9C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990CA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[3]);
|
|
/* 02990CA4 */ _t83 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990CA4 */ _t84 = _t83 & 0x00000001u;
|
|
/* 02990CA4 */ if (_t84) goto L_02990C2C; else goto L_02990CA8;
|
|
L_02990CA8: ; // 0x2990ca8
|
|
/* 02990CA8 */ _t85 = cpu->r[29] + 0x000000ACu;
|
|
/* 02990CA8 */ cpu->r[5] = rbrew_read32(cpu->mem, _t85);
|
|
/* 02990CAC */ _t86 = cpu->r[29] + 0x000000BCu;
|
|
/* 02990CAC */ rbrew_write32(cpu->mem, _t86, cpu->r[29]);
|
|
/* 02990CB0 */ _t87 = cpu->r[5] + 0x00000004u;
|
|
/* 02990CB0 */ cpu->r[0] = rbrew_read16(cpu->mem, _t87);
|
|
/* 02990CB4 */ _t88 = cpu->r[5] + 0x00000010u;
|
|
/* 02990CB4 */ cpu->r[7] = rbrew_read32(cpu->mem, _t88);
|
|
/* 02990CB8 */ cpu->r[0] = cpu->r[0] | 0x00000010u;
|
|
/* 02990CBC */ cpu->r[3] = cpu->r[29];
|
|
/* 02990CC0 */ _t89 = cpu->r[5] + 0x00000004u;
|
|
/* 02990CC0 */ rbrew_write16(cpu->mem, _t89, (uint16_t)cpu->r[0]);
|
|
/* 02990CC4 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990CC8 */ _t90 = cpu->r[29] + 0x000000D8u;
|
|
/* 02990CC8 */ rbrew_write32(cpu->mem, _t90, cpu->r[7]);
|
|
/* 02990CCC */ Gambit_fn_029DBF78(cpu);
|
|
/* 02990CD0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990CD4 */ _t91 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990CD4 */ _t92 = _t91 & 0x00000001u;
|
|
/* 02990CD4 */ if (_t92) goto L_02990CD8; else goto L_02990CFC;
|
|
L_02990CD8: ; // 0x2990cd8
|
|
/* 02990CD8 */ /* nop */
|
|
/* 02990CDC */ _t93 = cpu->r[1] + 0x000000D0u;
|
|
/* 02990CDC */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t93);
|
|
/* 02990CE0 */ _t94 = cpu->r[1] + 0x000000C8u;
|
|
/* 02990CE0 */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t94);
|
|
/* 02990CE4 */ cpu->r[3] = 0x00000000u;
|
|
/* 02990CE8 */ _t95 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990CE8 */ _t96 = _t95 & 0x00000001u;
|
|
/* 02990CE8 */ if (_t96) goto L_02990CEC; // else: addr-0 trap, fall-through
|
|
L_02990CEC: ; // 0x2990cec
|
|
/* 02990CEC */ _t97 = cpu->r[1] + 0x000000DCu;
|
|
/* 02990CEC */ cpu->r[0] = rbrew_read32(cpu->mem, _t97);
|
|
/* 02990CF0 */ cpu->lr = cpu->r[0];
|
|
/* 02990CF4 */ cpu->r[1] = cpu->r[1] + 0x000000D8u;
|
|
/* 02990CF8 */ return;
|
|
L_02990CFC: ; // 0x2990cfc
|
|
/* 02990CFC */ _t98 = cpu->r[29] + 0x00000088u;
|
|
/* 02990CFC */ cpu->r[9] = rbrew_read32(cpu->mem, _t98);
|
|
/* 02990D00 */ _t99 = cpu->r[9] + 0x000001ACu;
|
|
/* 02990D00 */ cpu->r[0] = rbrew_read32(cpu->mem, _t99);
|
|
/* 02990D04 */ cpu->r[26] = 0x00000000u;
|
|
/* 02990D08 */ cpu->ctr = cpu->r[0];
|
|
/* 02990D0C */ cpu->r[31] = cpu->r[26];
|
|
/* 02990D10 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990D14 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990D18 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[3]);
|
|
/* 02990D1C */ _t100 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990D1C */ _t101 = _t100 & 0x00000001u;
|
|
/* 02990D1C */ if (_t101) goto L_02990D20; else goto L_02990E88;
|
|
L_02990D20: ; // 0x2990d20
|
|
/* 02990D20 */ cpu->r[25] = 0x00000000u;
|
|
L_02990D24: ; // 0x2990d24
|
|
/* 02990D24 */ _t102 = cpu->r[29] + 0x00000088u;
|
|
/* 02990D24 */ cpu->r[7] = rbrew_read32(cpu->mem, _t102);
|
|
/* 02990D28 */ _t103 = cpu->r[7] + 0x000001B4u;
|
|
/* 02990D28 */ cpu->r[0] = rbrew_read32(cpu->mem, _t103);
|
|
/* 02990D2C */ cpu->ctr = cpu->r[0];
|
|
/* 02990D30 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990D34 */ cpu->r[4] = cpu->r[31];
|
|
/* 02990D38 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990D3C */ _t104 = cpu->r[3] + 0x0000000Au;
|
|
/* 02990D3C */ cpu->r[0] = rbrew_read8(cpu->mem, _t104);
|
|
/* 02990D40 */ cpu->r[9] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02990D40 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[9], 0x00000000u);
|
|
/* 02990D44 */ _t105 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990D44 */ _t106 = _t105 & 0x00000001u;
|
|
/* 02990D44 */ if (_t106) goto L_02990D5C; else goto L_02990D48;
|
|
L_02990D48: ; // 0x2990d48
|
|
/* 02990D48 */ _t107 = cpu->r[29] + 0x000000CCu;
|
|
/* 02990D48 */ cpu->r[11] = rbrew_read32(cpu->mem, _t107);
|
|
/* 02990D4C */ _t108 = cpu->r[11] + cpu->r[25];
|
|
/* 02990D4C */ cpu->r[3] = rbrew_read32(cpu->mem, _t108);
|
|
/* 02990D50 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990D54 */ Gambit_fn_0299888C(cpu);
|
|
/* 02990D58 */ cpu->r[26] = 0x00000001u;
|
|
L_02990D5C: ; // 0x2990d5c
|
|
/* 02990D5C */ _t109 = cpu->r[29] + 0x00000088u;
|
|
/* 02990D5C */ cpu->r[4] = rbrew_read32(cpu->mem, _t109);
|
|
/* 02990D60 */ _t110 = cpu->r[4] + 0x000001ACu;
|
|
/* 02990D60 */ cpu->r[5] = rbrew_read32(cpu->mem, _t110);
|
|
/* 02990D64 */ cpu->ctr = cpu->r[5];
|
|
/* 02990D68 */ cpu->r[25] = cpu->r[25] + 0x00000004u;
|
|
/* 02990D6C */ cpu->r[3] = cpu->r[29];
|
|
/* 02990D70 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 02990D74 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990D78 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[3]);
|
|
/* 02990D7C */ _t111 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990D7C */ _t112 = _t111 & 0x00000001u;
|
|
/* 02990D7C */ if (_t112) goto L_02990D24; else goto L_02990D80;
|
|
L_02990D80: ; // 0x2990d80
|
|
/* 02990D80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 02990D84 */ _t113 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990D84 */ _t114 = _t113 & 0x00000001u;
|
|
/* 02990D84 */ if (_t114) goto L_02990E88; else goto L_02990D88;
|
|
L_02990D88: ; // 0x2990d88
|
|
/* 02990D88 */ _t115 = cpu->r[29] + 0x00000088u;
|
|
/* 02990D88 */ cpu->r[8] = rbrew_read32(cpu->mem, _t115);
|
|
/* 02990D8C */ _t116 = cpu->r[8] + 0x000001ECu;
|
|
/* 02990D8C */ cpu->r[0] = rbrew_read32(cpu->mem, _t116);
|
|
/* 02990D90 */ cpu->ctr = cpu->r[0];
|
|
/* 02990D94 */ cpu->r[24] = 0x00000000u;
|
|
/* 02990D98 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990D9C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990DA0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[3]);
|
|
/* 02990DA4 */ _t117 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990DA4 */ _t118 = _t117 & 0x00000001u;
|
|
/* 02990DA4 */ if (_t118) goto L_02990DA8; else goto L_02990E88;
|
|
L_02990DA8: ; // 0x2990da8
|
|
/* 02990DA8 */ cpu->r[31] = 0x00000000u;
|
|
L_02990DAC: ; // 0x2990dac
|
|
/* 02990DAC */ _t119 = cpu->r[29] + 0x00000088u;
|
|
/* 02990DAC */ cpu->r[11] = rbrew_read32(cpu->mem, _t119);
|
|
/* 02990DB0 */ _t120 = cpu->r[11] + 0x000001C4u;
|
|
/* 02990DB0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t120);
|
|
/* 02990DB4 */ cpu->ctr = cpu->r[0];
|
|
/* 02990DB8 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990DBC */ cpu->r[4] = cpu->r[30];
|
|
/* 02990DC0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990DC4 */ _t121 = cpu->r[29] + 0x00000088u;
|
|
/* 02990DC4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t121);
|
|
/* 02990DC8 */ _t122 = cpu->r[5] + 0x000001ACu;
|
|
/* 02990DC8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t122);
|
|
/* 02990DCC */ cpu->r[25] = cpu->r[3];
|
|
/* 02990DD0 */ cpu->ctr = cpu->r[0];
|
|
/* 02990DD4 */ cpu->r[26] = 0x00000000u;
|
|
/* 02990DD8 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990DDC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990DE0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[3]);
|
|
/* 02990DE4 */ _t123 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990DE4 */ _t124 = _t123 & 0x00000001u;
|
|
/* 02990DE4 */ if (_t124) goto L_02990DE8; else goto L_02990E64;
|
|
L_02990DE8: ; // 0x2990de8
|
|
/* 02990DE8 */ cpu->r[22] = 0x00000000u;
|
|
/* 02990DEC */ cpu->r[23] = cpu->r[22];
|
|
L_02990DF0: ; // 0x2990df0
|
|
/* 02990DF0 */ _t125 = cpu->r[29] + 0x000000CCu;
|
|
/* 02990DF0 */ cpu->r[9] = rbrew_read32(cpu->mem, _t125);
|
|
/* 02990DF4 */ _t126 = cpu->r[9] + cpu->r[23];
|
|
/* 02990DF4 */ cpu->r[5] = rbrew_read32(cpu->mem, _t126);
|
|
/* 02990DF8 */ _t127 = cpu->r[5] + 0x00000084u;
|
|
/* 02990DF8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t127);
|
|
/* 02990DFC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 02990E00 */ _t128 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990E00 */ _t129 = _t128 & 0x00000001u;
|
|
/* 02990E00 */ if (_t129) goto L_02990E08; else goto L_02990E04;
|
|
L_02990E04: ; // 0x2990e04
|
|
/* 02990E04 */ _t130 = cpu->r[4] + cpu->r[31];
|
|
/* 02990E04 */ rbrew_write32(cpu->mem, _t130, cpu->r[25]);
|
|
L_02990E08: ; // 0x2990e08
|
|
/* 02990E08 */ _t131 = cpu->r[29] + 0x000000B0u;
|
|
/* 02990E08 */ cpu->r[10] = rbrew_read32(cpu->mem, _t131);
|
|
/* 02990E0C */ _t132 = cpu->r[10] + cpu->r[22];
|
|
/* 02990E0C */ cpu->r[11] = rbrew_read32(cpu->mem, _t132);
|
|
/* 02990E10 */ _t133 = cpu->r[11] + 0x00000024u;
|
|
/* 02990E10 */ cpu->r[7] = rbrew_read32(cpu->mem, _t133);
|
|
/* 02990E14 */ cpu->r[6] = cpu->r[11] + 0x00000024u;
|
|
/* 02990E18 */ cpu->r[8] = 0x00000000u;
|
|
/* 02990E1C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02990E20 */ _t134 = cpu->r[11] + 0x00000017u;
|
|
/* 02990E20 */ cpu->r[3] = rbrew_read8(cpu->mem, _t134);
|
|
/* 02990E24 */ _t135 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990E24 */ _t136 = _t135 & 0x00000001u;
|
|
/* 02990E24 */ if (_t136) goto L_02990E2C; else goto L_02990E28;
|
|
L_02990E28: ; // 0x2990e28
|
|
/* 02990E28 */ cpu->r[8] = cpu->r[6] + cpu->r[7];
|
|
L_02990E2C: ; // 0x2990e2c
|
|
/* 02990E2C */ _t137 = cpu->r[8] + 0x0000000Cu;
|
|
/* 02990E2C */ cpu->r[4] = rbrew_read16(cpu->mem, _t137);
|
|
/* 02990E30 */ Gambit_fn_02990874(cpu);
|
|
/* 02990E34 */ _t138 = cpu->r[29] + 0x00000088u;
|
|
/* 02990E34 */ cpu->r[4] = rbrew_read32(cpu->mem, _t138);
|
|
/* 02990E38 */ _t139 = cpu->r[4] + 0x000001ACu;
|
|
/* 02990E38 */ cpu->r[6] = rbrew_read32(cpu->mem, _t139);
|
|
/* 02990E3C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[3] * (int32_t)0x00000006u);
|
|
/* 02990E40 */ cpu->ctr = cpu->r[6];
|
|
/* 02990E44 */ cpu->r[25] = cpu->r[25] + cpu->r[0];
|
|
/* 02990E48 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990E4C */ cpu->r[26] = cpu->r[26] + 0x00000001u;
|
|
/* 02990E50 */ cpu->r[23] = cpu->r[23] + 0x00000004u;
|
|
/* 02990E54 */ cpu->r[22] = cpu->r[22] + 0x00000034u;
|
|
/* 02990E58 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990E5C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], cpu->r[3]);
|
|
/* 02990E60 */ _t140 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990E60 */ _t141 = _t140 & 0x00000001u;
|
|
/* 02990E60 */ if (_t141) goto L_02990DF0; else goto L_02990E64;
|
|
L_02990E64: ; // 0x2990e64
|
|
/* 02990E64 */ _t142 = cpu->r[29] + 0x00000088u;
|
|
/* 02990E64 */ cpu->r[7] = rbrew_read32(cpu->mem, _t142);
|
|
/* 02990E68 */ _t143 = cpu->r[7] + 0x000001ECu;
|
|
/* 02990E68 */ cpu->r[0] = rbrew_read32(cpu->mem, _t143);
|
|
/* 02990E6C */ cpu->ctr = cpu->r[0];
|
|
/* 02990E70 */ cpu->r[31] = cpu->r[31] + 0x00000008u;
|
|
/* 02990E74 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990E78 */ cpu->r[24] = cpu->r[24] + 0x00000001u;
|
|
/* 02990E7C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990E80 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], cpu->r[3]);
|
|
/* 02990E84 */ _t144 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990E84 */ _t145 = _t144 & 0x00000001u;
|
|
/* 02990E84 */ if (_t145) goto L_02990DAC; else goto L_02990E88;
|
|
L_02990E88: ; // 0x2990e88
|
|
/* 02990E88 */ _t146 = cpu->r[29] + 0x00000008u;
|
|
/* 02990E88 */ cpu->r[10] = rbrew_read8(cpu->mem, _t146);
|
|
/* 02990E8C */ cpu->r[12] = 0x10150000u;
|
|
/* 02990E90 */ _t147 = cpu->r[12] + 0xFFFFFB88u;
|
|
/* 02990E90 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t147);
|
|
/* 02990E94 */ cpu->f[1] = cpu->f[31];
|
|
/* 02990E98 */ cpu->r[5] = cpu->r[10] + 0xFFFFFFFFu;
|
|
/* 02990E9C */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 02990EA0 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990EA4 */ Gambit_fn_029DB28C(cpu);
|
|
/* 02990EA8 */ _t148 = cpu->r[28] + 0x00000008u;
|
|
/* 02990EA8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t148);
|
|
/* 02990EAC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990EB0 */ _t149 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990EB0 */ _t150 = _t149 & 0x00000001u;
|
|
/* 02990EB0 */ if (_t150) goto L_02990ED8; else goto L_02990EB4;
|
|
L_02990EB4: ; // 0x2990eb4
|
|
/* 02990EB4 */ cpu->f[1] = cpu->f[31];
|
|
/* 02990EB8 */ _t151 = cpu->r[29] + 0x000000D0u;
|
|
/* 02990EB8 */ rbrew_write32(cpu->mem, _t151, cpu->r[3]);
|
|
/* 02990EBC */ cpu->r[4] = cpu->r[29];
|
|
/* 02990EC0 */ cpu->r[5] = 0x00000000u;
|
|
/* 02990EC4 */ Gambit_fn_029897E8(cpu);
|
|
/* 02990EC8 */ _t152 = cpu->r[28] + 0x0000000Cu;
|
|
/* 02990EC8 */ cpu->r[6] = rbrew_read8(cpu->mem, _t152);
|
|
/* 02990ECC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02990ED0 */ _t153 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990ED0 */ _t154 = _t153 & 0x00000001u;
|
|
/* 02990ED0 */ if (_t154) goto L_02990F3C; else goto L_02990ED4;
|
|
L_02990ED4: ; // 0x2990ed4
|
|
/* 02990ED4 */ goto L_02990F2C;
|
|
L_02990ED8: ; // 0x2990ed8
|
|
/* 02990ED8 */ _t155 = cpu->r[29] + 0x00000094u;
|
|
/* 02990ED8 */ cpu->r[12] = rbrew_read32(cpu->mem, _t155);
|
|
/* 02990EDC */ _t156 = cpu->r[12] + 0x0000002Cu;
|
|
/* 02990EDC */ cpu->r[4] = rbrew_read32(cpu->mem, _t156);
|
|
/* 02990EE0 */ _t157 = cpu->r[4] + 0x000002C4u;
|
|
/* 02990EE0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t157);
|
|
/* 02990EE4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02990EE8 */ cpu->r[31] = cpu->r[4] + 0x00000014u;
|
|
/* 02990EEC */ _t158 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990EEC */ _t159 = _t158 & 0x00000001u;
|
|
/* 02990EEC */ if (_t159) goto L_02990F20; else goto L_02990EF0;
|
|
L_02990EF0: ; // 0x2990ef0
|
|
/* 02990EF0 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990EF4 */ cpu->r[3] = 0x00000028u;
|
|
/* 02990EF8 */ cpu->r[5] = 0x00000004u;
|
|
/* 02990EFC */ Gambit_fn_02801AC8(cpu);
|
|
/* 02990F00 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02990F04 */ _t160 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990F04 */ _t161 = _t160 & 0x00000001u;
|
|
/* 02990F04 */ if (_t161) goto L_02990F0C; else goto L_02990F08;
|
|
L_02990F08: ; // 0x2990f08
|
|
/* 02990F08 */ Gambit_fn_029895D8(cpu);
|
|
L_02990F0C: ; // 0x2990f0c
|
|
/* 02990F0C */ cpu->r[6] = cpu->r[30];
|
|
/* 02990F10 */ cpu->r[4] = cpu->r[31];
|
|
/* 02990F14 */ cpu->r[5] = cpu->r[29];
|
|
/* 02990F18 */ _t162 = cpu->r[29] + 0x000000D0u;
|
|
/* 02990F18 */ rbrew_write32(cpu->mem, _t162, cpu->r[3]);
|
|
/* 02990F1C */ Gambit_fn_02989A80(cpu);
|
|
L_02990F20: ; // 0x2990f20
|
|
/* 02990F20 */ _t163 = cpu->r[28] + 0x0000000Cu;
|
|
/* 02990F20 */ cpu->r[6] = rbrew_read8(cpu->mem, _t163);
|
|
/* 02990F24 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[6], 0x00000000u);
|
|
/* 02990F28 */ _t164 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990F28 */ _t165 = _t164 & 0x00000001u;
|
|
/* 02990F28 */ if (_t165) goto L_02990F3C; else goto L_02990F2C;
|
|
L_02990F2C: ; // 0x2990f2c
|
|
/* 02990F2C */ cpu->r[5] = 0x00000000u;
|
|
/* 02990F30 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990F34 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990F38 */ Gambit_fn_02990918(cpu);
|
|
L_02990F3C: ; // 0x2990f3c
|
|
/* 02990F3C */ _t166 = cpu->r[29] + 0x00000088u;
|
|
/* 02990F3C */ cpu->r[7] = rbrew_read32(cpu->mem, _t166);
|
|
/* 02990F40 */ _t167 = cpu->r[7] + 0x000001ACu;
|
|
/* 02990F40 */ cpu->r[8] = rbrew_read32(cpu->mem, _t167);
|
|
/* 02990F44 */ cpu->ctr = cpu->r[8];
|
|
/* 02990F48 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990F4C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990F50 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000010u);
|
|
/* 02990F54 */ _t168 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02990F54 */ _t169 = _t168 & 0x00000001u;
|
|
/* 02990F54 */ if (_t169) goto L_02990F58; else goto L_02990F80;
|
|
L_02990F58: ; // 0x2990f58
|
|
/* 02990F58 */ _t170 = cpu->r[29] + 0x0000000Eu;
|
|
/* 02990F58 */ cpu->r[10] = rbrew_read16(cpu->mem, _t170);
|
|
/* 02990F5C */ cpu->r[4] = cpu->r[30];
|
|
/* 02990F60 */ cpu->r[3] = 0x00000030u;
|
|
/* 02990F64 */ cpu->r[11] = cpu->r[10] | 0x00000007u;
|
|
/* 02990F68 */ cpu->r[5] = 0x00000004u;
|
|
/* 02990F6C */ _t171 = cpu->r[29] + 0x0000000Eu;
|
|
/* 02990F6C */ rbrew_write16(cpu->mem, _t171, (uint16_t)cpu->r[11]);
|
|
/* 02990F70 */ Gambit_fn_02801AC8(cpu);
|
|
/* 02990F74 */ cpu->r[0] = cpu->r[3];
|
|
/* 02990F74 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02990F78 */ _t172 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990F78 */ _t173 = _t172 & 0x00000001u;
|
|
/* 02990F78 */ if (_t173) goto L_02990FB0; else goto L_02990F7C;
|
|
L_02990F7C: ; // 0x2990f7c
|
|
/* 02990F7C */ goto L_02990FA4;
|
|
L_02990F80: ; // 0x2990f80
|
|
/* 02990F80 */ _t174 = cpu->r[29] + 0x0000000Eu;
|
|
/* 02990F80 */ cpu->r[10] = rbrew_read16(cpu->mem, _t174);
|
|
/* 02990F84 */ cpu->r[4] = cpu->r[30];
|
|
/* 02990F88 */ cpu->r[3] = 0x00000030u;
|
|
/* 02990F8C */ cpu->r[11] = cpu->r[10] | 0x0000000Fu;
|
|
/* 02990F90 */ cpu->r[5] = 0x00000004u;
|
|
/* 02990F94 */ _t175 = cpu->r[29] + 0x0000000Eu;
|
|
/* 02990F94 */ rbrew_write16(cpu->mem, _t175, (uint16_t)cpu->r[11]);
|
|
/* 02990F98 */ Gambit_fn_02801AC8(cpu);
|
|
/* 02990F9C */ cpu->r[0] = cpu->r[3];
|
|
/* 02990F9C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02990FA0 */ _t176 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02990FA0 */ _t177 = _t176 & 0x00000001u;
|
|
/* 02990FA0 */ if (_t177) goto L_02990FB0; else goto L_02990FA4;
|
|
L_02990FA4: ; // 0x2990fa4
|
|
/* 02990FA4 */ cpu->r[3] = cpu->r[0];
|
|
/* 02990FA8 */ Gambit_fn_02A33EE0(cpu);
|
|
/* 02990FAC */ cpu->r[0] = cpu->r[3];
|
|
L_02990FB0: ; // 0x2990fb0
|
|
/* 02990FB0 */ _t178 = cpu->r[29] + 0x00000088u;
|
|
/* 02990FB0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t178);
|
|
/* 02990FB4 */ _t179 = cpu->r[29] + 0x000000D4u;
|
|
/* 02990FB4 */ rbrew_write32(cpu->mem, _t179, cpu->r[0]);
|
|
/* 02990FB8 */ _t180 = cpu->r[12] + 0x00000234u;
|
|
/* 02990FB8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t180);
|
|
/* 02990FBC */ cpu->r[4] = 0x101F0000u;
|
|
/* 02990FC0 */ cpu->r[5] = 0x101F0000u;
|
|
/* 02990FC4 */ cpu->ctr = cpu->r[0];
|
|
/* 02990FC8 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990FCC */ cpu->r[4] = cpu->r[4] + 0x00005E30u;
|
|
/* 02990FD0 */ cpu->r[7] = 0x00000000u;
|
|
/* 02990FD4 */ cpu->r[6] = 0x00000001u;
|
|
/* 02990FD8 */ cpu->r[5] = cpu->r[5] + 0x00006368u;
|
|
/* 02990FDC */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990FE0 */ _t181 = cpu->r[29] + 0x00000088u;
|
|
/* 02990FE0 */ cpu->r[5] = rbrew_read32(cpu->mem, _t181);
|
|
/* 02990FE4 */ _t182 = cpu->r[5] + 0x00000224u;
|
|
/* 02990FE4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t182);
|
|
/* 02990FE8 */ cpu->ctr = cpu->r[6];
|
|
/* 02990FEC */ cpu->r[4] = 0x00000000u;
|
|
/* 02990FF0 */ cpu->r[3] = cpu->r[29];
|
|
/* 02990FF4 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02990FF8 */ cpu->r[8] = 0x10150000u;
|
|
/* 02990FFC */ cpu->r[7] = 0x10150000u;
|
|
/* 02991000 */ _t183 = cpu->r[8] + 0xFFFFFB90u;
|
|
/* 02991000 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t183);
|
|
/* 02991004 */ _t184 = cpu->r[7] + 0xFFFFFB8Cu;
|
|
/* 02991004 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t184);
|
|
/* 02991008 */ _t185 = cpu->r[1] + 0x00000028u;
|
|
/* 02991008 */ rbrew_write_f32(cpu->mem, _t185, cpu->f[12]);
|
|
/* 0299100C */ _t186 = cpu->r[1] + 0x00000020u;
|
|
/* 0299100C */ rbrew_write_f32(cpu->mem, _t186, cpu->f[11]);
|
|
/* 02991010 */ _t187 = cpu->r[29] + 0x00000088u;
|
|
/* 02991010 */ cpu->r[8] = rbrew_read32(cpu->mem, _t187);
|
|
/* 02991014 */ _t188 = cpu->r[1] + 0x00000018u;
|
|
/* 02991014 */ rbrew_write_f32(cpu->mem, _t188, cpu->f[11]);
|
|
/* 02991018 */ _t189 = cpu->r[1] + 0x00000024u;
|
|
/* 02991018 */ rbrew_write_f32(cpu->mem, _t189, cpu->f[12]);
|
|
/* 0299101C */ _t190 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0299101C */ rbrew_write_f32(cpu->mem, _t190, cpu->f[12]);
|
|
/* 02991020 */ _t191 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991020 */ rbrew_write_f32(cpu->mem, _t191, cpu->f[11]);
|
|
/* 02991024 */ _t192 = cpu->r[8] + 0x000001F4u;
|
|
/* 02991024 */ cpu->r[0] = rbrew_read32(cpu->mem, _t192);
|
|
/* 02991028 */ cpu->ctr = cpu->r[0];
|
|
/* 0299102C */ cpu->r[3] = cpu->r[29];
|
|
/* 02991030 */ cpu->r[4] = cpu->r[1] + 0x00000018u;
|
|
/* 02991034 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02991038 */ _t193 = cpu->r[1] + 0x00000018u;
|
|
/* 02991038 */ cpu->f[7] = rbrew_read_f32(cpu->mem, _t193);
|
|
/* 0299103C */ cpu->r[10] = 0x10150000u;
|
|
/* 02991040 */ _t194 = cpu->r[1] + 0x00000020u;
|
|
/* 02991040 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t194);
|
|
/* 02991044 */ cpu->r[12] = 0x10150000u;
|
|
/* 02991048 */ _t195 = cpu->r[1] + 0x00000024u;
|
|
/* 02991048 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t195);
|
|
/* 0299104C */ _t196 = cpu->r[1] + 0x00000028u;
|
|
/* 0299104C */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t196);
|
|
/* 02991050 */ _t197 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991050 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t197);
|
|
/* 02991054 */ cpu->f[6] = cpu->f[13] - cpu->f[7];
|
|
/* 02991058 */ _t198 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02991058 */ cpu->f[11] = rbrew_read_f32(cpu->mem, _t198);
|
|
/* 0299105C */ cpu->f[7] = cpu->f[9] - cpu->f[10];
|
|
/* 02991060 */ _t199 = cpu->r[12] + 0xFFFFFB98u;
|
|
/* 02991060 */ cpu->f[10] = rbrew_read_f32(cpu->mem, _t199);
|
|
/* 02991064 */ cpu->f[12] = cpu->f[11] - cpu->f[12];
|
|
/* 02991068 */ _t200 = cpu->r[10] + 0xFFFFFB94u;
|
|
/* 02991068 */ cpu->f[9] = rbrew_read_f32(cpu->mem, _t200);
|
|
/* 0299106C */ _t201 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299106C */ rbrew_write_f32(cpu->mem, _t201, cpu->f[6]);
|
|
/* 02991070 */ cpu->f[8] = cpu->f[7] * cpu->f[12];
|
|
/* 02991074 */ _t202 = cpu->r[1] + 0x00000010u;
|
|
/* 02991074 */ rbrew_write_f32(cpu->mem, _t202, cpu->f[7]);
|
|
/* 02991078 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[8], cpu->f[31]);
|
|
/* 0299107C */ _t203 = cpu->r[1] + 0x00000014u;
|
|
/* 0299107C */ rbrew_write_f32(cpu->mem, _t203, cpu->f[12]);
|
|
/* 02991080 */ _t204 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02991080 */ _t205 = _t204 & 0x00000001u;
|
|
/* 02991080 */ if (_t205) goto L_02991098; else goto L_02991084;
|
|
L_02991084: ; // 0x2991084
|
|
/* 02991084 */ cpu->f[12] = cpu->f[12] * cpu->f[6];
|
|
/* 02991088 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[31]);
|
|
/* 0299108C */ cpu->f[11] = cpu->f[31] * cpu->f[8];
|
|
/* 02991090 */ _t206 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02991090 */ _t207 = _t206 & 0x00000001u;
|
|
/* 02991090 */ if (_t207) goto L_02991094; else goto L_029910C4;
|
|
L_02991094: ; // 0x2991094
|
|
/* 02991094 */ goto L_029910DC;
|
|
L_02991098: ; // 0x2991098
|
|
/* 02991098 */ _ft208 = sqrt(cpu->f[8]);
|
|
/* 02991098 */ _ft209 = (double)(int32_t)0x00000001u;
|
|
/* 02991098 */ cpu->f[13] = _ft209 / _ft208;
|
|
/* 0299109C */ cpu->f[11] = cpu->f[13] * cpu->f[13];
|
|
/* 029910A0 */ cpu->f[12] = cpu->f[13] * cpu->f[9];
|
|
/* 029910A4 */ cpu->f[11] = -fma(cpu->f[11], cpu->f[8], -(cpu->f[10]));
|
|
/* 029910A8 */ cpu->f[13] = cpu->f[11] * cpu->f[12];
|
|
/* 029910AC */ _t210 = cpu->r[1] + 0x00000014u;
|
|
/* 029910AC */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t210);
|
|
/* 029910B0 */ _t211 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029910B0 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t211);
|
|
/* 029910B4 */ cpu->f[12] = cpu->f[12] * cpu->f[6];
|
|
/* 029910B8 */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[12], cpu->f[31]);
|
|
/* 029910BC */ cpu->f[11] = cpu->f[13] * cpu->f[8];
|
|
/* 029910C0 */ _t212 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029910C0 */ _t213 = _t212 & 0x00000001u;
|
|
/* 029910C0 */ if (_t213) goto L_029910DC; else goto L_029910C4;
|
|
L_029910C4: ; // 0x29910c4
|
|
/* 029910C4 */ _t214 = cpu->r[1] + 0x00000010u;
|
|
/* 029910C4 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t214);
|
|
/* 029910C8 */ cpu->f[6] = cpu->f[6] * cpu->f[13];
|
|
/* 029910CC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[6], cpu->f[31]);
|
|
/* 029910D0 */ cpu->f[0] = cpu->f[31] * cpu->f[12];
|
|
/* 029910D4 */ _t215 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029910D4 */ _t216 = _t215 & 0x00000001u;
|
|
/* 029910D4 */ if (_t216) goto L_02991108; else goto L_029910D8;
|
|
L_029910D8: ; // 0x29910d8
|
|
/* 029910D8 */ goto L_0299111C;
|
|
L_029910DC: ; // 0x29910dc
|
|
/* 029910DC */ _ft217 = sqrt(cpu->f[12]);
|
|
/* 029910DC */ _ft218 = (double)(int32_t)0x00000001u;
|
|
/* 029910DC */ cpu->f[0] = _ft218 / _ft217;
|
|
/* 029910E0 */ cpu->f[13] = cpu->f[0] * cpu->f[0];
|
|
/* 029910E4 */ cpu->f[6] = cpu->f[0] * cpu->f[9];
|
|
/* 029910E8 */ cpu->f[13] = -fma(cpu->f[13], cpu->f[12], -(cpu->f[10]));
|
|
/* 029910EC */ cpu->f[0] = cpu->f[13] * cpu->f[6];
|
|
/* 029910F0 */ _t219 = cpu->r[1] + 0x00000010u;
|
|
/* 029910F0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t219);
|
|
/* 029910F4 */ _t220 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029910F4 */ cpu->f[6] = rbrew_read_f32(cpu->mem, _t220);
|
|
/* 029910F8 */ cpu->f[6] = cpu->f[6] * cpu->f[13];
|
|
/* 029910FC */ cpu->cr[0] = rbrew_cmp_f64(cpu->f[6], cpu->f[31]);
|
|
/* 02991100 */ cpu->f[0] = cpu->f[0] * cpu->f[12];
|
|
/* 02991104 */ _t221 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02991104 */ _t222 = _t221 & 0x00000001u;
|
|
/* 02991104 */ if (_t222) goto L_02991108; else goto L_0299111C;
|
|
L_02991108: ; // 0x2991108
|
|
/* 02991108 */ _ft223 = sqrt(cpu->f[6]);
|
|
/* 02991108 */ _ft224 = (double)(int32_t)0x00000001u;
|
|
/* 02991108 */ cpu->f[31] = _ft224 / _ft223;
|
|
/* 0299110C */ cpu->f[7] = cpu->f[31] * cpu->f[31];
|
|
/* 02991110 */ cpu->f[13] = cpu->f[31] * cpu->f[9];
|
|
/* 02991114 */ cpu->f[7] = -fma(cpu->f[7], cpu->f[6], -(cpu->f[10]));
|
|
/* 02991118 */ cpu->f[31] = cpu->f[7] * cpu->f[13];
|
|
L_0299111C: ; // 0x299111c
|
|
/* 0299111C */ cpu->r[7] = 0x10150000u;
|
|
/* 02991120 */ cpu->f[6] = cpu->f[31] * cpu->f[6];
|
|
/* 02991124 */ _t225 = cpu->r[7] + 0xFFFFFB9Cu;
|
|
/* 02991124 */ cpu->f[8] = rbrew_read_f32(cpu->mem, _t225);
|
|
/* 02991128 */ cpu->f[12] = cpu->f[11] / cpu->f[8];
|
|
/* 0299112C */ cpu->f[0] = cpu->f[0] / cpu->f[8];
|
|
/* 02991130 */ _t226 = cpu->r[29] + 0x0000004Cu;
|
|
/* 02991130 */ rbrew_write_f32(cpu->mem, _t226, cpu->f[12]);
|
|
/* 02991134 */ cpu->f[8] = cpu->f[6] / cpu->f[8];
|
|
/* 02991138 */ _t227 = cpu->r[29] + 0x00000050u;
|
|
/* 02991138 */ rbrew_write_f32(cpu->mem, _t227, cpu->f[0]);
|
|
/* 0299113C */ _t228 = cpu->r[29] + 0x00000094u;
|
|
/* 0299113C */ cpu->r[5] = rbrew_read32(cpu->mem, _t228);
|
|
/* 02991140 */ _t229 = cpu->r[29] + 0x00000054u;
|
|
/* 02991140 */ rbrew_write_f32(cpu->mem, _t229, cpu->f[8]);
|
|
/* 02991144 */ _t230 = cpu->r[5] + 0x0000002Cu;
|
|
/* 02991144 */ cpu->r[8] = rbrew_read32(cpu->mem, _t230);
|
|
/* 02991148 */ _t231 = cpu->r[8] + 0x00000004u;
|
|
/* 02991148 */ cpu->r[9] = rbrew_read32(cpu->mem, _t231);
|
|
/* 0299114C */ cpu->r[28] = cpu->r[29] + 0x000000E4u;
|
|
/* 0299114C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 02991150 */ _t232 = cpu->r[29] + 0x000000DCu;
|
|
/* 02991150 */ rbrew_write32(cpu->mem, _t232, cpu->r[9]);
|
|
/* 02991154 */ _t233 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991154 */ _t234 = _t233 & 0x00000001u;
|
|
/* 02991154 */ if (_t234) goto L_029911A0; else goto L_02991158;
|
|
L_02991158: ; // 0x2991158
|
|
/* 02991158 */ cpu->r[31] = 0x00000000u;
|
|
/* 0299115C */ cpu->r[3] = cpu->r[28];
|
|
/* 0299115C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02991160 */ cpu->r[26] = cpu->r[31];
|
|
/* 02991164 */ _t235 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991164 */ _t236 = _t235 & 0x00000001u;
|
|
/* 02991164 */ if (_t236) goto L_02991168; else goto L_02991178;
|
|
L_02991168: ; // 0x2991168
|
|
/* 02991168 */ cpu->r[3] = 0x00000010u;
|
|
/* 0299116C */ Gambit_fn_02801A78(cpu);
|
|
/* 02991170 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02991174 */ _t237 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991174 */ _t238 = _t237 & 0x00000001u;
|
|
/* 02991174 */ if (_t238) goto L_02991194; else goto L_02991178;
|
|
L_02991178: ; // 0x2991178
|
|
/* 02991178 */ cpu->r[10] = 0x10150000u;
|
|
/* 0299117C */ _t239 = cpu->r[3] + 0x0000000Cu;
|
|
/* 0299117C */ rbrew_write32(cpu->mem, _t239, cpu->r[26]);
|
|
/* 02991180 */ cpu->r[10] = cpu->r[10] + 0xFFFFFB10u;
|
|
/* 02991184 */ _t240 = cpu->r[3] + 0x00000008u;
|
|
/* 02991184 */ rbrew_write16(cpu->mem, _t240, (uint16_t)cpu->r[31]);
|
|
/* 02991188 */ _t241 = cpu->r[3] + 0x00000000u;
|
|
/* 02991188 */ rbrew_write32(cpu->mem, _t241, cpu->r[10]);
|
|
/* 0299118C */ _t242 = cpu->r[3] + 0x0000000Au;
|
|
/* 0299118C */ rbrew_write16(cpu->mem, _t242, (uint16_t)cpu->r[31]);
|
|
/* 02991190 */ _t243 = cpu->r[3] + 0x00000004u;
|
|
/* 02991190 */ rbrew_write32(cpu->mem, _t243, cpu->r[27]);
|
|
L_02991194: ; // 0x2991194
|
|
/* 02991194 */ cpu->r[11] = 0x10150000u;
|
|
/* 02991198 */ cpu->r[11] = cpu->r[11] + 0xFFFFFB28u;
|
|
/* 0299119C */ _t244 = cpu->r[28] + 0x00000000u;
|
|
/* 0299119C */ rbrew_write32(cpu->mem, _t244, cpu->r[11]);
|
|
L_029911A0: ; // 0x29911a0
|
|
/* 029911A0 */ _t245 = cpu->r[29] + 0x000000ACu;
|
|
/* 029911A0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t245);
|
|
/* 029911A4 */ _t246 = cpu->r[12] + 0x0000002Eu;
|
|
/* 029911A4 */ cpu->r[5] = rbrew_read16(cpu->mem, _t246);
|
|
/* 029911A8 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[5], 0x0000FFFFu);
|
|
/* 029911AC */ cpu->r[4] = 0xFFFFFFFFu;
|
|
/* 029911B0 */ _t247 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029911B0 */ _t248 = _t247 & 0x00000001u;
|
|
/* 029911B0 */ if (_t248) goto L_029911B4; else goto L_029911B8;
|
|
L_029911B4: ; // 0x29911b4
|
|
/* 029911B4 */ cpu->r[4] = cpu->r[5];
|
|
L_029911B8: ; // 0x29911b8
|
|
/* 029911B8 */ cpu->r[3] = cpu->r[29];
|
|
/* 029911BC */ Gambit_fn_029909BC(cpu);
|
|
/* 029911C0 */ cpu->r[10] = 0x101D0000u;
|
|
/* 029911C4 */ _t249 = cpu->r[10] + 0xFFFFA6B0u;
|
|
/* 029911C4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t249);
|
|
/* 029911C8 */ _t250 = cpu->r[10] + 0x00000040u;
|
|
/* 029911C8 */ cpu->r[3] = rbrew_read32(cpu->mem, _t250);
|
|
/* 029911CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 029911D0 */ _t251 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029911D0 */ _t252 = _t251 & 0x00000001u;
|
|
/* 029911D0 */ if (_t252) goto L_029911EC; else goto L_029911D4;
|
|
L_029911D4: ; // 0x29911d4
|
|
/* 029911D4 */ _t253 = cpu->r[3] + 0x00000000u;
|
|
/* 029911D4 */ cpu->r[12] = rbrew_read32(cpu->mem, _t253);
|
|
/* 029911D8 */ _t254 = cpu->r[12] + 0x0000005Cu;
|
|
/* 029911D8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t254);
|
|
/* 029911DC */ cpu->ctr = cpu->r[0];
|
|
/* 029911E0 */ cpu->r[4] = cpu->r[29];
|
|
/* 029911E4 */ cpu->r[5] = cpu->r[30];
|
|
/* 029911E8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_029911EC: ; // 0x29911ec
|
|
/* 029911EC */ _t255 = cpu->r[1] + 0x00000008u;
|
|
/* 029911EC */ cpu->r[7] = rbrew_read32(cpu->mem, _t255);
|
|
/* 029911F0 */ /* nop */
|
|
/* 029911F4 */ _t256 = cpu->r[1] + 0x000000D0u;
|
|
/* 029911F4 */ cpu->f[31] = rbrew_read_f32(cpu->mem, _t256);
|
|
/* 029911F8 */ cpu->r[8] = cpu->r[7] + 0xFFFFFFFFu;
|
|
/* 029911FC */ _t257 = cpu->r[1] + 0x000000C8u;
|
|
/* 029911FC */ cpu->f[31] = rbrew_read_f64(cpu->mem, _t257);
|
|
/* 02991200 */ cpu->r[3] = cpu->r[7] - cpu->r[8];
|
|
/* 02991204 */ _t258 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02991204 */ _t259 = _t258 & 0x00000001u;
|
|
/* 02991204 */ if (_t259) goto L_02991208; // else: addr-0 trap, fall-through
|
|
L_02991208: ; // 0x2991208
|
|
/* 02991208 */ _t260 = cpu->r[1] + 0x000000DCu;
|
|
/* 02991208 */ cpu->r[0] = rbrew_read32(cpu->mem, _t260);
|
|
/* 0299120C */ cpu->lr = cpu->r[0];
|
|
/* 02991210 */ cpu->r[1] = cpu->r[1] + 0x000000D8u;
|
|
/* 02991214 */ return;
|
|
}
|
|
|
|
// fn_02991218 @ 0x2991218
|
|
void Gambit_fn_02991218(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10;
|
|
|
|
L_02991218: ; // 0x2991218
|
|
/* 02991218 */ cpu->r[0] = cpu->lr;
|
|
/* 0299121C */ _t0 = cpu->r[1] + 0x00000004u;
|
|
/* 0299121C */ rbrew_write32(cpu->mem, _t0, cpu->r[0]);
|
|
/* 02991220 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02991224 */ _t1 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02991224 */ rbrew_write32(cpu->mem, _t1, cpu->r[1]);
|
|
/* 02991224 */ cpu->r[1] = _t1;
|
|
/* 02991228 */ _t2 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991228 */ _t3 = _t2 & 0x00000001u;
|
|
/* 02991228 */ if (_t3) goto L_0299122C; else goto L_0299123C;
|
|
L_0299122C: ; // 0x299122c
|
|
/* 0299122C */ cpu->r[3] = 0x00000010u;
|
|
/* 02991230 */ Gambit_fn_02801A78(cpu);
|
|
/* 02991234 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02991238 */ _t4 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991238 */ _t5 = _t4 & 0x00000001u;
|
|
/* 02991238 */ if (_t5) goto L_02991254; else goto L_0299123C;
|
|
L_0299123C: ; // 0x299123c
|
|
/* 0299123C */ cpu->r[0] = 0x00000000u;
|
|
/* 02991240 */ cpu->r[12] = 0x00000001u;
|
|
/* 02991244 */ _t6 = cpu->r[3] + 0x00000000u;
|
|
/* 02991244 */ rbrew_write32(cpu->mem, _t6, cpu->r[0]);
|
|
/* 02991248 */ _t7 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02991248 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[12]);
|
|
/* 0299124C */ _t8 = cpu->r[3] + 0x00000008u;
|
|
/* 0299124C */ rbrew_write32(cpu->mem, _t8, cpu->r[0]);
|
|
/* 02991250 */ _t9 = cpu->r[3] + 0x00000004u;
|
|
/* 02991250 */ rbrew_write32(cpu->mem, _t9, cpu->r[12]);
|
|
L_02991254: ; // 0x2991254
|
|
/* 02991254 */ _t10 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991254 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02991258 */ cpu->lr = cpu->r[0];
|
|
/* 0299125C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02991260 */ return;
|
|
}
|
|
|
|
// fn_02991224 @ 0x2991224
|
|
void Gambit_fn_02991224(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_02991224: ; // 0x2991224
|
|
/* 02991224 */ _t0 = cpu->r[1] + 0xFFFFFFF8u;
|
|
/* 02991224 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991224 */ cpu->r[1] = _t0;
|
|
/* 02991228 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991228 */ _t2 = _t1 & 0x00000001u;
|
|
/* 02991228 */ if (_t2) goto L_0299122C; else goto L_0299123C;
|
|
L_0299122C: ; // 0x299122c
|
|
/* 0299122C */ cpu->r[3] = 0x00000010u;
|
|
/* 02991230 */ Gambit_fn_02801A78(cpu);
|
|
/* 02991234 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[3], 0x00000000u);
|
|
/* 02991238 */ _t3 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991238 */ _t4 = _t3 & 0x00000001u;
|
|
/* 02991238 */ if (_t4) goto L_02991254; else goto L_0299123C;
|
|
L_0299123C: ; // 0x299123c
|
|
/* 0299123C */ cpu->r[0] = 0x00000000u;
|
|
/* 02991240 */ cpu->r[12] = 0x00000001u;
|
|
/* 02991244 */ _t5 = cpu->r[3] + 0x00000000u;
|
|
/* 02991244 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02991248 */ _t6 = cpu->r[3] + 0x0000000Cu;
|
|
/* 02991248 */ rbrew_write8(cpu->mem, _t6, (uint8_t)cpu->r[12]);
|
|
/* 0299124C */ _t7 = cpu->r[3] + 0x00000008u;
|
|
/* 0299124C */ rbrew_write32(cpu->mem, _t7, cpu->r[0]);
|
|
/* 02991250 */ _t8 = cpu->r[3] + 0x00000004u;
|
|
/* 02991250 */ rbrew_write32(cpu->mem, _t8, cpu->r[12]);
|
|
L_02991254: ; // 0x2991254
|
|
/* 02991254 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991254 */ cpu->r[0] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991258 */ cpu->lr = cpu->r[0];
|
|
/* 0299125C */ cpu->r[1] = cpu->r[1] + 0x00000008u;
|
|
/* 02991260 */ return;
|
|
}
|
|
|
|
// fn_02991264 @ 0x2991264
|
|
void Gambit_fn_02991264(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02991264: ; // 0x2991264
|
|
/* 02991264 */ cpu->r[0] = cpu->lr;
|
|
/* 02991268 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02991268 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991268 */ cpu->r[1] = _t0;
|
|
/* 0299126C */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 0299126C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02991270 */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 02991270 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02991274 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 02991274 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 02991278 */ cpu->r[28] = cpu->r[3];
|
|
/* 0299127C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02991280 */ cpu->r[30] = cpu->r[5];
|
|
/* 02991284 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991284 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 02991288 */ cpu->r[31] = cpu->r[6];
|
|
/* 0299128C */ _t5 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0299128C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02991290 */ cpu->r[29] = cpu->r[4];
|
|
/* 02991294 */ Gambit_fn_02991218(cpu);
|
|
/* 02991298 */ cpu->r[3] = cpu->r[28];
|
|
/* 0299129C */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0299129C */ rbrew_write32(cpu->mem, _t6, cpu->r[29]);
|
|
/* 029912A0 */ cpu->r[5] = cpu->r[31];
|
|
/* 029912A4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 029912A8 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029912A8 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 029912AC */ Gambit_fn_02990A1C(cpu);
|
|
/* 029912B0 */ _t8 = cpu->r[1] + 0x00000018u;
|
|
/* 029912B0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029912B4 */ _t9 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029912B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029912B8 */ _t10 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029912B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029912BC */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 029912BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029912C0 */ cpu->lr = cpu->r[0];
|
|
/* 029912C4 */ _t12 = cpu->r[1] + 0x00000020u;
|
|
/* 029912C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029912C8 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 029912CC */ return;
|
|
}
|
|
|
|
// fn_02991268 @ 0x2991268
|
|
void Gambit_fn_02991268(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02991268: ; // 0x2991268
|
|
/* 02991268 */ _t0 = cpu->r[1] + 0xFFFFFFD8u;
|
|
/* 02991268 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991268 */ cpu->r[1] = _t0;
|
|
/* 0299126C */ _t1 = cpu->r[1] + 0x00000020u;
|
|
/* 0299126C */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 02991270 */ _t2 = cpu->r[1] + 0x00000024u;
|
|
/* 02991270 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02991274 */ _t3 = cpu->r[1] + 0x00000018u;
|
|
/* 02991274 */ rbrew_write32(cpu->mem, _t3, cpu->r[28]);
|
|
/* 02991278 */ cpu->r[28] = cpu->r[3];
|
|
/* 0299127C */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02991280 */ cpu->r[30] = cpu->r[5];
|
|
/* 02991284 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991284 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 02991288 */ cpu->r[31] = cpu->r[6];
|
|
/* 0299128C */ _t5 = cpu->r[1] + 0x0000002Cu;
|
|
/* 0299128C */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02991290 */ cpu->r[29] = cpu->r[4];
|
|
/* 02991294 */ Gambit_fn_02991218(cpu);
|
|
/* 02991298 */ cpu->r[3] = cpu->r[28];
|
|
/* 0299129C */ _t6 = cpu->r[1] + 0x00000008u;
|
|
/* 0299129C */ rbrew_write32(cpu->mem, _t6, cpu->r[29]);
|
|
/* 029912A0 */ cpu->r[5] = cpu->r[31];
|
|
/* 029912A4 */ cpu->r[4] = cpu->r[1] + 0x00000008u;
|
|
/* 029912A8 */ _t7 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029912A8 */ rbrew_write32(cpu->mem, _t7, cpu->r[30]);
|
|
/* 029912AC */ Gambit_fn_02990A1C(cpu);
|
|
/* 029912B0 */ _t8 = cpu->r[1] + 0x00000018u;
|
|
/* 029912B0 */ cpu->r[28] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029912B4 */ _t9 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029912B4 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 029912B8 */ _t10 = cpu->r[1] + 0x0000002Cu;
|
|
/* 029912B8 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029912BC */ _t11 = cpu->r[1] + 0x00000024u;
|
|
/* 029912BC */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029912C0 */ cpu->lr = cpu->r[0];
|
|
/* 029912C4 */ _t12 = cpu->r[1] + 0x00000020u;
|
|
/* 029912C4 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029912C8 */ cpu->r[1] = cpu->r[1] + 0x00000028u;
|
|
/* 029912CC */ return;
|
|
}
|
|
|
|
// fn_029912D0 @ 0x29912d0
|
|
void Gambit_fn_029912D0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3;
|
|
|
|
L_029912D0: ; // 0x29912d0
|
|
/* 029912D0 */ _t0 = cpu->r[3] + 0x000000D0u;
|
|
/* 029912D0 */ cpu->r[12] = rbrew_read32(cpu->mem, _t0);
|
|
/* 029912D4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 029912D8 */ _t1 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029912D8 */ _t2 = _t1 & 0x00000001u;
|
|
/* 029912D8 */ if (_t2) { rbrew_dispatch(cpu, cpu->lr); return; }
|
|
/* 029912D8 */ goto L_029912DC;
|
|
L_029912DC: ; // 0x29912dc
|
|
/* 029912DC */ _t3 = cpu->r[12] + 0x00000020u;
|
|
/* 029912DC */ rbrew_write_f32(cpu->mem, _t3, cpu->f[1]);
|
|
/* 029912E0 */ return;
|
|
}
|
|
|
|
// fn_029912E4 @ 0x29912e4
|
|
void Gambit_fn_029912E4(CPUState* cpu) {
|
|
uint32_t _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_029912E4: ; // 0x29912e4
|
|
/* 029912E4 */ cpu->r[0] = cpu->lr;
|
|
/* 029912E8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029912E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029912E8 */ cpu->r[1] = _t0;
|
|
/* 029912EC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029912EC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029912F0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029912F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029912F4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029912F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029912F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 029912FC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029912FC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991300 */ cpu->r[29] = cpu->r[3];
|
|
/* 02991304 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991304 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02991304 */ if (_t6) goto L_02991318; else goto L_02991308;
|
|
L_02991308: ; // 0x2991308
|
|
/* 02991308 */ _t7 = cpu->r[29] + 0x00000094u;
|
|
/* 02991308 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0299130C */ _t8 = cpu->r[7] + 0x0000002Cu;
|
|
/* 0299130C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02991310 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 02991314 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991314 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02991314 */ if (_t10) goto L_02991318; else goto L_02991374;
|
|
L_02991318: ; // 0x2991318
|
|
/* 02991318 */ _t11 = cpu->r[29] + 0x00000088u;
|
|
/* 02991318 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0299131C */ _t12 = cpu->r[10] + 0x000000B4u;
|
|
/* 0299131C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02991320 */ cpu->r[12] = 0x101D0000u;
|
|
/* 02991324 */ cpu->ctr = cpu->r[0];
|
|
/* 02991328 */ _t13 = cpu->r[12] + 0xFFFFA304u;
|
|
/* 02991328 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0299132C */ _t14 = cpu->r[12] + 0x00000030u;
|
|
/* 0299132C */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02991330 */ cpu->r[3] = cpu->r[29];
|
|
/* 02991334 */ cpu->r[31] = 0x00000000u;
|
|
/* 02991338 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0299133C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[3]);
|
|
/* 02991340 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02991340 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02991340 */ if (_t16) goto L_02991344; else goto L_02991374;
|
|
L_02991344: ; // 0x2991344
|
|
/* 02991344 */ cpu->r[5] = cpu->r[30];
|
|
/* 02991348 */ cpu->r[4] = cpu->r[31];
|
|
/* 0299134C */ cpu->r[3] = cpu->r[29];
|
|
/* 02991350 */ Gambit_fn_029DB5FC(cpu);
|
|
/* 02991354 */ _t17 = cpu->r[29] + 0x00000088u;
|
|
/* 02991354 */ cpu->r[6] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02991358 */ _t18 = cpu->r[6] + 0x000000B4u;
|
|
/* 02991358 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0299135C */ cpu->ctr = cpu->r[0];
|
|
/* 02991360 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 02991364 */ cpu->r[3] = cpu->r[29];
|
|
/* 02991368 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0299136C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[3]);
|
|
/* 02991370 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02991370 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02991370 */ if (_t20) goto L_02991344; else goto L_02991374;
|
|
L_02991374: ; // 0x2991374
|
|
/* 02991374 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991374 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02991378 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991378 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0299137C */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 0299137C */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02991380 */ cpu->lr = cpu->r[0];
|
|
/* 02991384 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 02991384 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02991388 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0299138C */ return;
|
|
}
|
|
|
|
// fn_029912E8 @ 0x29912e8
|
|
void Gambit_fn_029912E8(CPUState* cpu) {
|
|
uint32_t _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_029912E8: ; // 0x29912e8
|
|
/* 029912E8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029912E8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029912E8 */ cpu->r[1] = _t0;
|
|
/* 029912EC */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029912EC */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 029912F0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029912F0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029912F4 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 029912F4 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 029912F8 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[4], 0x00000000u);
|
|
/* 029912FC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029912FC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991300 */ cpu->r[29] = cpu->r[3];
|
|
/* 02991304 */ _t5 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991304 */ _t6 = _t5 & 0x00000001u;
|
|
/* 02991304 */ if (_t6) goto L_02991318; else goto L_02991308;
|
|
L_02991308: ; // 0x2991308
|
|
/* 02991308 */ _t7 = cpu->r[29] + 0x00000094u;
|
|
/* 02991308 */ cpu->r[7] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0299130C */ _t8 = cpu->r[7] + 0x0000002Cu;
|
|
/* 0299130C */ cpu->r[0] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02991310 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[4], cpu->r[0]);
|
|
/* 02991314 */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991314 */ _t10 = _t9 & 0x00000001u;
|
|
/* 02991314 */ if (_t10) goto L_02991318; else goto L_02991374;
|
|
L_02991318: ; // 0x2991318
|
|
/* 02991318 */ _t11 = cpu->r[29] + 0x00000088u;
|
|
/* 02991318 */ cpu->r[10] = rbrew_read32(cpu->mem, _t11);
|
|
/* 0299131C */ _t12 = cpu->r[10] + 0x000000B4u;
|
|
/* 0299131C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02991320 */ cpu->r[12] = 0x101D0000u;
|
|
/* 02991324 */ cpu->ctr = cpu->r[0];
|
|
/* 02991328 */ _t13 = cpu->r[12] + 0xFFFFA304u;
|
|
/* 02991328 */ cpu->r[12] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0299132C */ _t14 = cpu->r[12] + 0x00000030u;
|
|
/* 0299132C */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02991330 */ cpu->r[3] = cpu->r[29];
|
|
/* 02991334 */ cpu->r[31] = 0x00000000u;
|
|
/* 02991338 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0299133C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[3]);
|
|
/* 02991340 */ _t15 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02991340 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02991340 */ if (_t16) goto L_02991344; else goto L_02991374;
|
|
L_02991344: ; // 0x2991344
|
|
/* 02991344 */ cpu->r[5] = cpu->r[30];
|
|
/* 02991348 */ cpu->r[4] = cpu->r[31];
|
|
/* 0299134C */ cpu->r[3] = cpu->r[29];
|
|
/* 02991350 */ Gambit_fn_029DB5FC(cpu);
|
|
/* 02991354 */ _t17 = cpu->r[29] + 0x00000088u;
|
|
/* 02991354 */ cpu->r[6] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02991358 */ _t18 = cpu->r[6] + 0x000000B4u;
|
|
/* 02991358 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0299135C */ cpu->ctr = cpu->r[0];
|
|
/* 02991360 */ cpu->r[31] = cpu->r[31] + 0x00000001u;
|
|
/* 02991364 */ cpu->r[3] = cpu->r[29];
|
|
/* 02991368 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 0299136C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], cpu->r[3]);
|
|
/* 02991370 */ _t19 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 02991370 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02991370 */ if (_t20) goto L_02991344; else goto L_02991374;
|
|
L_02991374: ; // 0x2991374
|
|
/* 02991374 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991374 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 02991378 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991378 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 0299137C */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 0299137C */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 02991380 */ cpu->lr = cpu->r[0];
|
|
/* 02991384 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 02991384 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 02991388 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0299138C */ return;
|
|
}
|
|
|
|
// fn_02991390 @ 0x2991390
|
|
void Gambit_fn_02991390(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_02991390: ; // 0x2991390
|
|
/* 02991390 */ cpu->r[12] = cpu->r[3];
|
|
/* 02991394 */ cpu->r[3] = 0x101D0000u;
|
|
/* 02991398 */ _t0 = cpu->r[12] + 0x000000DCu;
|
|
/* 02991398 */ cpu->r[4] = rbrew_read32(cpu->mem, _t0);
|
|
/* 0299139C */ _t1 = cpu->r[3] + 0xFFFFA708u;
|
|
/* 0299139C */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 029913A0 */ cpu->r[5] = 0x00000000u;
|
|
/* 029913A4 */ goto L_0299C098;
|
|
L_0299C098: ; // 0x299c098
|
|
/* 0299C098 */ return;
|
|
}
|
|
|
|
// fn_029913A8 @ 0x29913a8
|
|
void Gambit_fn_029913A8(CPUState* cpu) {
|
|
uint32_t _t0, _t1;
|
|
|
|
L_029913A8: ; // 0x29913a8
|
|
/* 029913A8 */ cpu->r[12] = cpu->r[3];
|
|
/* 029913AC */ cpu->r[3] = 0x101D0000u;
|
|
/* 029913B0 */ _t0 = cpu->r[12] + 0x000000DCu;
|
|
/* 029913B0 */ cpu->r[4] = rbrew_read32(cpu->mem, _t0);
|
|
/* 029913B4 */ _t1 = cpu->r[3] + 0xFFFFA708u;
|
|
/* 029913B4 */ cpu->r[3] = rbrew_read32(cpu->mem, _t1);
|
|
/* 029913B8 */ cpu->r[5] = 0x00000000u;
|
|
/* 029913BC */ goto L_0299C09C;
|
|
L_0299C09C: ; // 0x299c09c
|
|
/* 0299C09C */ return;
|
|
}
|
|
|
|
// fn_029913C0 @ 0x29913c0
|
|
void Gambit_fn_029913C0(CPUState* cpu) {
|
|
uint32_t _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_029913C0: ; // 0x29913c0
|
|
/* 029913C0 */ _t0 = cpu->r[1] + 0xFFFFFFE0u;
|
|
/* 029913C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029913C0 */ cpu->r[1] = _t0;
|
|
/* 029913C4 */ /* nop */
|
|
/* 029913C8 */ cpu->r[0] = cpu->lr;
|
|
/* 029913CC */ _t1 = cpu->r[1] + 0x00000024u;
|
|
/* 029913CC */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 029913D0 */ _t2 = cpu->r[3] + 0x00000088u;
|
|
/* 029913D0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t2);
|
|
/* 029913D4 */ _t3 = cpu->r[8] + 0x000001ACu;
|
|
/* 029913D4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t3);
|
|
/* 029913D8 */ _t4 = cpu->r[3] + 0x000000B8u;
|
|
/* 029913D8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t4);
|
|
/* 029913DC */ cpu->ctr = cpu->r[0];
|
|
/* 029913E0 */ _t5 = cpu->r[3] + 0x000000ACu;
|
|
/* 029913E0 */ cpu->r[27] = rbrew_read32(cpu->mem, _t5);
|
|
/* 029913E4 */ cpu->r[30] = cpu->r[3];
|
|
/* 029913E8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029913EC */ cpu->r[28] = cpu->r[3];
|
|
/* 029913EC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000000u);
|
|
/* 029913F0 */ _t6 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029913F0 */ _t7 = _t6 & 0x00000001u;
|
|
/* 029913F0 */ if (_t7) goto L_029913F4; else goto L_0299145C;
|
|
L_029913F4: ; // 0x29913f4
|
|
/* 029913F4 */ _t8 = cpu->r[30] + 0x000000B0u;
|
|
/* 029913F4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 029913F8 */ cpu->r[4] = cpu->r[27];
|
|
/* 029913FC */ cpu->r[3] = cpu->r[31];
|
|
/* 02991400 */ Gambit_fn_02C5358C(cpu);
|
|
/* 02991404 */ _t9 = cpu->r[31] + 0x00000018u;
|
|
/* 02991404 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991408 */ _t10 = cpu->r[12] + 0x00000000u;
|
|
/* 02991408 */ cpu->r[7] = rbrew_read32(cpu->mem, _t10);
|
|
/* 0299140C */ _t11 = cpu->r[29] + 0x00000000u;
|
|
/* 0299140C */ rbrew_write32(cpu->mem, _t11, cpu->r[7]);
|
|
/* 02991410 */ _t12 = cpu->r[12] + 0x00000004u;
|
|
/* 02991410 */ cpu->r[8] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02991414 */ _t13 = cpu->r[29] + 0x00000004u;
|
|
/* 02991414 */ rbrew_write32(cpu->mem, _t13, cpu->r[8]);
|
|
/* 02991418 */ _t14 = cpu->r[12] + 0x00000008u;
|
|
/* 02991418 */ cpu->r[9] = rbrew_read32(cpu->mem, _t14);
|
|
/* 0299141C */ _t15 = cpu->r[29] + 0x00000008u;
|
|
/* 0299141C */ rbrew_write32(cpu->mem, _t15, cpu->r[9]);
|
|
/* 02991420 */ _t16 = cpu->r[12] + 0x0000000Cu;
|
|
/* 02991420 */ cpu->r[10] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02991424 */ _t17 = cpu->r[29] + 0x0000000Cu;
|
|
/* 02991424 */ rbrew_write32(cpu->mem, _t17, cpu->r[10]);
|
|
/* 02991428 */ _t18 = cpu->r[31] + 0x00000000u;
|
|
/* 02991428 */ cpu->r[7] = rbrew_read32(cpu->mem, _t18);
|
|
/* 0299142C */ _t19 = cpu->r[7] + 0x00000024u;
|
|
/* 0299142C */ cpu->r[12] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02991430 */ cpu->r[9] = 0x00000000u;
|
|
/* 02991434 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[12], 0x00000000u);
|
|
/* 02991438 */ cpu->r[5] = cpu->r[7] + 0x00000024u;
|
|
/* 0299143C */ _t20 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299143C */ _t21 = _t20 & 0x00000001u;
|
|
/* 0299143C */ if (_t21) goto L_02991444; else goto L_02991440;
|
|
L_02991440: ; // 0x2991440
|
|
/* 02991440 */ cpu->r[9] = cpu->r[5] + cpu->r[12];
|
|
L_02991444: ; // 0x2991444
|
|
/* 02991444 */ _t22 = cpu->r[9] + 0x0000000Cu;
|
|
/* 02991444 */ cpu->r[11] = rbrew_read16(cpu->mem, _t22);
|
|
/* 02991448 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[11], 0x00000001u);
|
|
/* 0299144C */ _t23 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 0299144C */ _t24 = _t23 & 0x00000001u;
|
|
/* 0299144C */ if (_t24) goto L_02991450; else goto L_0299145C;
|
|
L_02991450: ; // 0x2991450
|
|
/* 02991450 */ cpu->r[3] = cpu->r[31];
|
|
/* 02991454 */ cpu->r[4] = cpu->r[27];
|
|
/* 02991458 */ Gambit_fn_02C536A8(cpu);
|
|
L_0299145C: ; // 0x299145c
|
|
/* 0299145C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[28], 0x00000001u);
|
|
/* 02991460 */ cpu->r[26] = cpu->r[28] + 0xFFFFFFFFu;
|
|
/* 02991464 */ _t25 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02991464 */ _t26 = _t25 & 0x00000001u;
|
|
/* 02991464 */ if (_t26) goto L_02991468; else goto L_029914D0;
|
|
L_02991468: ; // 0x2991468
|
|
/* 02991468 */ cpu->r[28] = 0x00000034u;
|
|
L_0299146C: ; // 0x299146c
|
|
/* 0299146C */ _t27 = cpu->r[30] + 0x000000B0u;
|
|
/* 0299146C */ cpu->r[12] = rbrew_read32(cpu->mem, _t27);
|
|
/* 02991470 */ cpu->r[31] = cpu->r[12] + cpu->r[28];
|
|
/* 02991474 */ cpu->r[4] = cpu->r[27];
|
|
/* 02991478 */ cpu->r[3] = cpu->r[31];
|
|
/* 0299147C */ Gambit_fn_02C5358C(cpu);
|
|
/* 02991480 */ _t28 = cpu->r[31] + 0x00000018u;
|
|
/* 02991480 */ cpu->r[5] = rbrew_read32(cpu->mem, _t28);
|
|
/* 02991484 */ cpu->r[3] = cpu->r[29];
|
|
/* 02991488 */ cpu->r[4] = cpu->r[29];
|
|
/* 0299148C */ Gambit_fn_02C523CC(cpu);
|
|
/* 02991490 */ _t29 = cpu->r[31] + 0x00000000u;
|
|
/* 02991490 */ cpu->r[11] = rbrew_read32(cpu->mem, _t29);
|
|
/* 02991494 */ _t30 = cpu->r[11] + 0x00000024u;
|
|
/* 02991494 */ cpu->r[0] = rbrew_read32(cpu->mem, _t30);
|
|
/* 02991498 */ cpu->r[5] = 0x00000000u;
|
|
/* 0299149C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 029914A0 */ cpu->r[6] = cpu->r[11] + 0x00000024u;
|
|
/* 029914A4 */ _t31 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029914A4 */ _t32 = _t31 & 0x00000001u;
|
|
/* 029914A4 */ if (_t32) goto L_029914AC; else goto L_029914A8;
|
|
L_029914A8: ; // 0x29914a8
|
|
/* 029914A8 */ cpu->r[5] = cpu->r[6] + cpu->r[0];
|
|
L_029914AC: ; // 0x29914ac
|
|
/* 029914AC */ _t33 = cpu->r[5] + 0x0000000Cu;
|
|
/* 029914AC */ cpu->r[0] = rbrew_read16(cpu->mem, _t33);
|
|
/* 029914B0 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000001u);
|
|
/* 029914B4 */ _t34 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029914B4 */ _t35 = _t34 & 0x00000001u;
|
|
/* 029914B4 */ if (_t35) goto L_029914B8; else goto L_029914C4;
|
|
L_029914B8: ; // 0x29914b8
|
|
/* 029914B8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029914BC */ cpu->r[4] = cpu->r[27];
|
|
/* 029914C0 */ Gambit_fn_02C536A8(cpu);
|
|
L_029914C4: ; // 0x29914c4
|
|
/* 029914C4 */ cpu->r[26] = cpu->r[26] + 0xFFFFFFFFu;
|
|
/* 029914C4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[26], 0x00000000u);
|
|
/* 029914C8 */ cpu->r[28] = cpu->r[28] + 0x00000034u;
|
|
/* 029914CC */ _t36 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029914CC */ _t37 = _t36 & 0x00000001u;
|
|
/* 029914CC */ if (_t37) goto L_029914D0; else goto L_0299146C;
|
|
L_029914D0: ; // 0x29914d0
|
|
/* 029914D0 */ _t38 = cpu->r[29] + 0x00000000u;
|
|
/* 029914D0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t38);
|
|
/* 029914D4 */ _t39 = cpu->r[30] + 0x00000034u;
|
|
/* 029914D4 */ cpu->r[6] = rbrew_read32(cpu->mem, _t39);
|
|
/* 029914D8 */ _t40 = cpu->r[29] + 0x0000000Cu;
|
|
/* 029914D8 */ cpu->f[12] = rbrew_read_f32(cpu->mem, _t40);
|
|
/* 029914DC */ _t41 = cpu->r[6] + 0x00000000u;
|
|
/* 029914DC */ rbrew_write_f32(cpu->mem, _t41, cpu->f[0]);
|
|
/* 029914E0 */ _t42 = cpu->r[29] + 0x00000004u;
|
|
/* 029914E0 */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t42);
|
|
/* 029914E4 */ _t43 = cpu->r[6] + 0x00000004u;
|
|
/* 029914E4 */ rbrew_write_f32(cpu->mem, _t43, cpu->f[13]);
|
|
/* 029914E8 */ _t44 = cpu->r[29] + 0x00000008u;
|
|
/* 029914E8 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t44);
|
|
/* 029914EC */ _t45 = cpu->r[6] + 0x0000000Cu;
|
|
/* 029914EC */ rbrew_write_f32(cpu->mem, _t45, cpu->f[12]);
|
|
/* 029914F0 */ _t46 = cpu->r[6] + 0x00000008u;
|
|
/* 029914F0 */ rbrew_write_f32(cpu->mem, _t46, cpu->f[0]);
|
|
/* 029914F4 */ _t47 = cpu->r[30] + 0x000000ACu;
|
|
/* 029914F4 */ cpu->r[10] = rbrew_read32(cpu->mem, _t47);
|
|
/* 029914F8 */ _t48 = cpu->r[10] + 0x00000004u;
|
|
/* 029914F8 */ cpu->r[0] = rbrew_read16(cpu->mem, _t48);
|
|
/* 029914FC */ _t49 = cpu->r[10] + 0x00000010u;
|
|
/* 029914FC */ cpu->r[3] = rbrew_read32(cpu->mem, _t49);
|
|
/* 02991500 */ cpu->r[0] = cpu->r[0] | 0x00000010u;
|
|
/* 02991504 */ cpu->r[4] = cpu->r[30] + 0x00000058u;
|
|
/* 02991508 */ _t50 = cpu->r[10] + 0x00000004u;
|
|
/* 02991508 */ rbrew_write16(cpu->mem, _t50, (uint16_t)cpu->r[0]);
|
|
/* 0299150C */ Gambit_fn_02C69510(cpu);
|
|
/* 02991510 */ /* nop */
|
|
/* 02991514 */ _t51 = cpu->r[1] + 0x00000024u;
|
|
/* 02991514 */ cpu->r[0] = rbrew_read32(cpu->mem, _t51);
|
|
/* 02991518 */ cpu->lr = cpu->r[0];
|
|
/* 0299151C */ cpu->r[1] = cpu->r[1] + 0x00000020u;
|
|
/* 02991520 */ return;
|
|
}
|
|
|
|
// fn_02991524 @ 0x2991524
|
|
void Gambit_fn_02991524(CPUState* cpu) {
|
|
uint32_t _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_02991524: ; // 0x2991524
|
|
/* 02991524 */ cpu->r[0] = cpu->lr;
|
|
/* 02991528 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991528 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991528 */ cpu->r[1] = _t0;
|
|
/* 0299152C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299152C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02991530 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02991530 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02991534 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02991534 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02991538 */ cpu->r[30] = cpu->r[3];
|
|
/* 0299153C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299153C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991540 */ _t5 = cpu->r[30] + 0x000000C8u;
|
|
/* 02991540 */ cpu->r[11] = rbrew_read8(cpu->mem, _t5);
|
|
/* 02991544 */ cpu->r[7] = rbrew_rlwinm(cpu->r[11], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02991544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02991548 */ cpu->r[31] = cpu->r[4];
|
|
/* 0299154C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299154C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0299154C */ if (_t7) goto L_029915F8; else goto L_02991550;
|
|
L_02991550: ; // 0x2991550
|
|
/* 02991550 */ _t8 = cpu->r[30] + 0x00000034u;
|
|
/* 02991550 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02991554 */ cpu->r[8] = cpu->r[30] + 0x00000024u;
|
|
/* 02991558 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[8]);
|
|
/* 0299155C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299155C */ _t10 = _t9 & 0x00000001u;
|
|
/* 0299155C */ if (_t10) goto L_02991560; else goto L_029915F8;
|
|
L_02991560: ; // 0x2991560
|
|
/* 02991560 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02991564 */ _t11 = cpu->r[30] + 0x000000ACu;
|
|
/* 02991564 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02991568 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991568 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02991568 */ if (_t13) goto L_029915E4; else goto L_0299156C;
|
|
L_0299156C: ; // 0x299156c
|
|
/* 0299156C */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0299156C */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02991570 */ _t15 = cpu->r[29] + 0x0000002Cu;
|
|
/* 02991570 */ cpu->r[8] = rbrew_read16(cpu->mem, _t15);
|
|
/* 02991574 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[8]);
|
|
/* 02991578 */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02991578 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02991578 */ if (_t17) goto L_029915E4; else goto L_0299157C;
|
|
L_0299157C: ; // 0x299157c
|
|
/* 0299157C */ _t18 = cpu->r[31] + 0x00000002u;
|
|
/* 0299157C */ cpu->r[9] = rbrew_read16(cpu->mem, _t18);
|
|
/* 02991580 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02991580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02991584 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991584 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02991584 */ if (_t20) goto L_029915E4; else goto L_02991588;
|
|
L_02991588: ; // 0x2991588
|
|
/* 02991588 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02991588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0299158C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299158C */ _t22 = _t21 & 0x00000001u;
|
|
/* 0299158C */ if (_t22) goto L_0299159C; else goto L_02991590;
|
|
L_02991590: ; // 0x2991590
|
|
/* 02991590 */ _t23 = cpu->r[29] + 0x00000004u;
|
|
/* 02991590 */ cpu->r[0] = rbrew_read16(cpu->mem, _t23);
|
|
/* 02991594 */ cpu->r[0] = cpu->r[0] | 0x00000010u;
|
|
/* 02991598 */ _t24 = cpu->r[29] + 0x00000004u;
|
|
/* 02991598 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[0]);
|
|
L_0299159C: ; // 0x299159c
|
|
/* 0299159C */ _t25 = cpu->r[31] + 0x00000008u;
|
|
/* 0299159C */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029915A0 */ cpu->r[3] = cpu->r[29];
|
|
/* 029915A4 */ cpu->r[6] = 0x00000001u;
|
|
/* 029915A8 */ _t26 = cpu->r[31] + 0x00000020u;
|
|
/* 029915A8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029915AC */ cpu->r[5] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 029915B0 */ Gambit_fn_02C5AEC4(cpu);
|
|
/* 029915B4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029915B8 */ _t27 = cpu->r[31] + 0x00000028u;
|
|
/* 029915B8 */ rbrew_write32(cpu->mem, _t27, cpu->r[29]);
|
|
/* 029915BC */ Gambit_fn_029913C0(cpu);
|
|
/* 029915C0 */ cpu->r[4] = 0x00000000u;
|
|
/* 029915C4 */ cpu->r[3] = cpu->r[29];
|
|
/* 029915C8 */ Gambit_fn_02C5AF9C(cpu);
|
|
/* 029915CC */ cpu->r[11] = 0x00000000u;
|
|
/* 029915D0 */ _t28 = cpu->r[31] + 0x00000028u;
|
|
/* 029915D0 */ rbrew_write32(cpu->mem, _t28, cpu->r[11]);
|
|
/* 029915D4 */ _t29 = cpu->r[30] + 0x000000C8u;
|
|
/* 029915D4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t29);
|
|
/* 029915D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 029915DC */ _t30 = cpu->r[30] + 0x000000C8u;
|
|
/* 029915DC */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[0]);
|
|
/* 029915E0 */ goto L_029915F8;
|
|
L_029915E4: ; // 0x29915e4
|
|
/* 029915E4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029915E8 */ Gambit_fn_029913C0(cpu);
|
|
/* 029915EC */ _t31 = cpu->r[30] + 0x000000C8u;
|
|
/* 029915EC */ cpu->r[0] = rbrew_read8(cpu->mem, _t31);
|
|
/* 029915F0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 029915F4 */ _t32 = cpu->r[30] + 0x000000C8u;
|
|
/* 029915F4 */ rbrew_write8(cpu->mem, _t32, (uint8_t)cpu->r[0]);
|
|
L_029915F8: ; // 0x29915f8
|
|
/* 029915F8 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029915F8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t33);
|
|
/* 029915FC */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029915FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02991600 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02991600 */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02991604 */ cpu->lr = cpu->r[0];
|
|
/* 02991608 */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 02991608 */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 0299160C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991610 */ return;
|
|
}
|
|
|
|
// fn_02991528 @ 0x2991528
|
|
void Gambit_fn_02991528(CPUState* cpu) {
|
|
uint32_t _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_02991528: ; // 0x2991528
|
|
/* 02991528 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991528 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991528 */ cpu->r[1] = _t0;
|
|
/* 0299152C */ _t1 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299152C */ rbrew_write32(cpu->mem, _t1, cpu->r[29]);
|
|
/* 02991530 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02991530 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02991534 */ _t3 = cpu->r[1] + 0x00000014u;
|
|
/* 02991534 */ rbrew_write32(cpu->mem, _t3, cpu->r[31]);
|
|
/* 02991538 */ cpu->r[30] = cpu->r[3];
|
|
/* 0299153C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299153C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991540 */ _t5 = cpu->r[30] + 0x000000C8u;
|
|
/* 02991540 */ cpu->r[11] = rbrew_read8(cpu->mem, _t5);
|
|
/* 02991544 */ cpu->r[7] = rbrew_rlwinm(cpu->r[11], 0x0000001Fu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02991544 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[7], 0x00000000u);
|
|
/* 02991548 */ cpu->r[31] = cpu->r[4];
|
|
/* 0299154C */ _t6 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299154C */ _t7 = _t6 & 0x00000001u;
|
|
/* 0299154C */ if (_t7) goto L_029915F8; else goto L_02991550;
|
|
L_02991550: ; // 0x2991550
|
|
/* 02991550 */ _t8 = cpu->r[30] + 0x00000034u;
|
|
/* 02991550 */ cpu->r[9] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02991554 */ cpu->r[8] = cpu->r[30] + 0x00000024u;
|
|
/* 02991558 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[9], cpu->r[8]);
|
|
/* 0299155C */ _t9 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299155C */ _t10 = _t9 & 0x00000001u;
|
|
/* 0299155C */ if (_t10) goto L_02991560; else goto L_029915F8;
|
|
L_02991560: ; // 0x2991560
|
|
/* 02991560 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[31], 0x00000000u);
|
|
/* 02991564 */ _t11 = cpu->r[30] + 0x000000ACu;
|
|
/* 02991564 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02991568 */ _t12 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991568 */ _t13 = _t12 & 0x00000001u;
|
|
/* 02991568 */ if (_t13) goto L_029915E4; else goto L_0299156C;
|
|
L_0299156C: ; // 0x299156c
|
|
/* 0299156C */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 0299156C */ cpu->r[12] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02991570 */ _t15 = cpu->r[29] + 0x0000002Cu;
|
|
/* 02991570 */ cpu->r[8] = rbrew_read16(cpu->mem, _t15);
|
|
/* 02991574 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[12], cpu->r[8]);
|
|
/* 02991578 */ _t16 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02991578 */ _t17 = _t16 & 0x00000001u;
|
|
/* 02991578 */ if (_t17) goto L_029915E4; else goto L_0299157C;
|
|
L_0299157C: ; // 0x299157c
|
|
/* 0299157C */ _t18 = cpu->r[31] + 0x00000002u;
|
|
/* 0299157C */ cpu->r[9] = rbrew_read16(cpu->mem, _t18);
|
|
/* 02991580 */ cpu->r[0] = rbrew_rlwinm(cpu->r[9], 0x0000001Du, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02991580 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 02991584 */ _t19 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991584 */ _t20 = _t19 & 0x00000001u;
|
|
/* 02991584 */ if (_t20) goto L_029915E4; else goto L_02991588;
|
|
L_02991588: ; // 0x2991588
|
|
/* 02991588 */ cpu->r[0] = rbrew_rlwinm(cpu->r[11], 0x0000001Eu, 0x0000001Fu, 0x0000001Fu);
|
|
/* 02991588 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[0], 0x00000000u);
|
|
/* 0299158C */ _t21 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 0299158C */ _t22 = _t21 & 0x00000001u;
|
|
/* 0299158C */ if (_t22) goto L_0299159C; else goto L_02991590;
|
|
L_02991590: ; // 0x2991590
|
|
/* 02991590 */ _t23 = cpu->r[29] + 0x00000004u;
|
|
/* 02991590 */ cpu->r[0] = rbrew_read16(cpu->mem, _t23);
|
|
/* 02991594 */ cpu->r[0] = cpu->r[0] | 0x00000010u;
|
|
/* 02991598 */ _t24 = cpu->r[29] + 0x00000004u;
|
|
/* 02991598 */ rbrew_write16(cpu->mem, _t24, (uint16_t)cpu->r[0]);
|
|
L_0299159C: ; // 0x299159c
|
|
/* 0299159C */ _t25 = cpu->r[31] + 0x00000008u;
|
|
/* 0299159C */ cpu->r[10] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029915A0 */ cpu->r[3] = cpu->r[29];
|
|
/* 029915A4 */ cpu->r[6] = 0x00000001u;
|
|
/* 029915A8 */ _t26 = cpu->r[31] + 0x00000020u;
|
|
/* 029915A8 */ cpu->r[4] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029915AC */ cpu->r[5] = rbrew_rlwinm(cpu->r[10], 0x0000001Fu, 0x00000001u, 0x0000001Fu);
|
|
/* 029915B0 */ Gambit_fn_02C5AEC4(cpu);
|
|
/* 029915B4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029915B8 */ _t27 = cpu->r[31] + 0x00000028u;
|
|
/* 029915B8 */ rbrew_write32(cpu->mem, _t27, cpu->r[29]);
|
|
/* 029915BC */ Gambit_fn_029913C0(cpu);
|
|
/* 029915C0 */ cpu->r[4] = 0x00000000u;
|
|
/* 029915C4 */ cpu->r[3] = cpu->r[29];
|
|
/* 029915C8 */ Gambit_fn_02C5AF9C(cpu);
|
|
/* 029915CC */ cpu->r[11] = 0x00000000u;
|
|
/* 029915D0 */ _t28 = cpu->r[31] + 0x00000028u;
|
|
/* 029915D0 */ rbrew_write32(cpu->mem, _t28, cpu->r[11]);
|
|
/* 029915D4 */ _t29 = cpu->r[30] + 0x000000C8u;
|
|
/* 029915D4 */ cpu->r[0] = rbrew_read8(cpu->mem, _t29);
|
|
/* 029915D8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 029915DC */ _t30 = cpu->r[30] + 0x000000C8u;
|
|
/* 029915DC */ rbrew_write8(cpu->mem, _t30, (uint8_t)cpu->r[0]);
|
|
/* 029915E0 */ goto L_029915F8;
|
|
L_029915E4: ; // 0x29915e4
|
|
/* 029915E4 */ cpu->r[3] = cpu->r[30];
|
|
/* 029915E8 */ Gambit_fn_029913C0(cpu);
|
|
/* 029915EC */ _t31 = cpu->r[30] + 0x000000C8u;
|
|
/* 029915EC */ cpu->r[0] = rbrew_read8(cpu->mem, _t31);
|
|
/* 029915F0 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x0000001Fu, 0x0000001Du);
|
|
/* 029915F4 */ _t32 = cpu->r[30] + 0x000000C8u;
|
|
/* 029915F4 */ rbrew_write8(cpu->mem, _t32, (uint8_t)cpu->r[0]);
|
|
L_029915F8: ; // 0x29915f8
|
|
/* 029915F8 */ _t33 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029915F8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t33);
|
|
/* 029915FC */ _t34 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029915FC */ cpu->r[0] = rbrew_read32(cpu->mem, _t34);
|
|
/* 02991600 */ _t35 = cpu->r[1] + 0x00000010u;
|
|
/* 02991600 */ cpu->r[30] = rbrew_read32(cpu->mem, _t35);
|
|
/* 02991604 */ cpu->lr = cpu->r[0];
|
|
/* 02991608 */ _t36 = cpu->r[1] + 0x00000014u;
|
|
/* 02991608 */ cpu->r[31] = rbrew_read32(cpu->mem, _t36);
|
|
/* 0299160C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991610 */ return;
|
|
}
|
|
|
|
// fn_02991614 @ 0x2991614
|
|
void Gambit_fn_02991614(CPUState* cpu) {
|
|
uint32_t _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_02991614: ; // 0x2991614
|
|
/* 02991614 */ _t0 = cpu->r[1] + 0xFFFFFFA8u;
|
|
/* 02991614 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991614 */ cpu->r[1] = _t0;
|
|
/* 02991618 */ /* nop */
|
|
/* 0299161C */ cpu->r[0] = cpu->lr;
|
|
/* 02991620 */ _t1 = cpu->r[1] + 0x0000005Cu;
|
|
/* 02991620 */ rbrew_write32(cpu->mem, _t1, cpu->r[0]);
|
|
/* 02991624 */ cpu->r[29] = cpu->r[4];
|
|
/* 02991628 */ cpu->r[0] = 0x43300000u;
|
|
/* 0299162C */ _t2 = cpu->r[1] + 0x00000028u;
|
|
/* 0299162C */ rbrew_write32(cpu->mem, _t2, cpu->r[0]);
|
|
/* 02991630 */ cpu->r[4] = 0x10150000u;
|
|
/* 02991634 */ _t3 = cpu->r[4] + 0xFFFFFB88u;
|
|
/* 02991634 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t3);
|
|
/* 02991638 */ cpu->r[10] = 0x10150000u;
|
|
/* 0299163C */ _t4 = cpu->r[10] + 0xFFFFFBA8u;
|
|
/* 0299163C */ cpu->f[13] = rbrew_read_f32(cpu->mem, _t4);
|
|
/* 02991640 */ _t5 = cpu->r[1] + 0x00000020u;
|
|
/* 02991640 */ rbrew_write_f32(cpu->mem, _t5, cpu->f[13]);
|
|
/* 02991644 */ _t6 = cpu->r[29] + 0x000004A4u;
|
|
/* 02991644 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02991648 */ _t7 = cpu->r[1] + 0x0000002Cu;
|
|
/* 02991648 */ rbrew_write32(cpu->mem, _t7, cpu->r[7]);
|
|
/* 0299164C */ cpu->r[7] = 0x10150000u;
|
|
/* 02991650 */ _t8 = cpu->r[1] + 0x00000028u;
|
|
/* 02991650 */ cpu->f[11] = rbrew_read_f64(cpu->mem, _t8);
|
|
/* 02991654 */ _t9 = cpu->r[7] + 0xFFFFFBA0u;
|
|
/* 02991654 */ cpu->f[12] = rbrew_read_f64(cpu->mem, _t9);
|
|
/* 02991658 */ _t10 = cpu->r[1] + 0x00000018u;
|
|
/* 02991658 */ rbrew_write_f32(cpu->mem, _t10, cpu->f[0]);
|
|
/* 0299165C */ cpu->f[10] = cpu->f[11] - cpu->f[12];
|
|
/* 02991660 */ _t11 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991660 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 02991664 */ cpu->f[9] = (double)(float)cpu->f[10];
|
|
/* 02991668 */ _t12 = cpu->r[3] + 0x00000088u;
|
|
/* 02991668 */ cpu->r[9] = rbrew_read32(cpu->mem, _t12);
|
|
/* 0299166C */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 0299166C */ rbrew_write_f32(cpu->mem, _t13, cpu->f[9]);
|
|
/* 02991670 */ _t14 = cpu->r[9] + 0x000000B4u;
|
|
/* 02991670 */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02991674 */ cpu->ctr = cpu->r[0];
|
|
/* 02991678 */ cpu->r[28] = cpu->r[3];
|
|
/* 0299167C */ cpu->r[25] = 0x00000000u;
|
|
/* 02991680 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 02991684 */ cpu->r[24] = cpu->r[3];
|
|
/* 02991684 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 02991688 */ _t15 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 02991688 */ _t16 = _t15 & 0x00000001u;
|
|
/* 02991688 */ if (_t16) goto L_0299168C; else goto L_0299175C;
|
|
L_0299168C: ; // 0x299168c
|
|
/* 0299168C */ cpu->r[27] = 0x00000000u;
|
|
L_02991690: ; // 0x2991690
|
|
/* 02991690 */ _t17 = cpu->r[28] + 0x000000B4u;
|
|
/* 02991690 */ cpu->r[12] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02991694 */ _t18 = cpu->r[12] + cpu->r[27];
|
|
/* 02991694 */ cpu->r[31] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02991698 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 0299169C */ _t19 = cpu->r[31] + 0x00000048u;
|
|
/* 0299169C */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029916A0 */ Gambit_fn_02A349EC(cpu);
|
|
/* 029916A4 */ cpu->r[4] = cpu->r[29];
|
|
/* 029916A8 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 029916AC */ cpu->r[6] = cpu->r[31];
|
|
/* 029916B0 */ cpu->r[5] = cpu->r[30];
|
|
/* 029916B4 */ Gambit_fn_02A34A4C(cpu);
|
|
/* 029916B8 */ _t20 = cpu->r[28] + 0x00000088u;
|
|
/* 029916B8 */ cpu->r[11] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029916BC */ _t21 = cpu->r[11] + 0x000001ACu;
|
|
/* 029916BC */ cpu->r[0] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029916C0 */ cpu->ctr = cpu->r[0];
|
|
/* 029916C4 */ cpu->r[3] = cpu->r[28];
|
|
/* 029916C8 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029916CC */ cpu->r[23] = cpu->r[3];
|
|
/* 029916CC */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 029916D0 */ _t22 = cpu->cr[0] >> (0x00000002u & 31u);
|
|
/* 029916D0 */ _t23 = _t22 & 0x00000001u;
|
|
/* 029916D0 */ if (_t23) goto L_029916D4; else goto L_02991718;
|
|
L_029916D4: ; // 0x29916d4
|
|
/* 029916D4 */ cpu->r[26] = 0x00000000u;
|
|
L_029916D8: ; // 0x29916d8
|
|
/* 029916D8 */ _t24 = cpu->r[28] + 0x000000CCu;
|
|
/* 029916D8 */ cpu->r[6] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029916DC */ _t25 = cpu->r[6] + cpu->r[26];
|
|
/* 029916DC */ cpu->r[31] = rbrew_read32(cpu->mem, _t25);
|
|
/* 029916E0 */ _t26 = cpu->r[31] + 0x0000000Cu;
|
|
/* 029916E0 */ cpu->r[8] = rbrew_read32(cpu->mem, _t26);
|
|
/* 029916E4 */ _t27 = cpu->r[8] + 0x0000002Cu;
|
|
/* 029916E4 */ cpu->r[9] = rbrew_read32(cpu->mem, _t27);
|
|
/* 029916E8 */ cpu->ctr = cpu->r[9];
|
|
/* 029916EC */ cpu->r[3] = cpu->r[31];
|
|
/* 029916F0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029916F4 */ cpu->cr[0] = rbrew_cmp_u32(cpu->r[25], cpu->r[3]);
|
|
/* 029916F8 */ _t28 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 029916F8 */ _t29 = _t28 & 0x00000001u;
|
|
/* 029916F8 */ if (_t29) goto L_029916FC; else goto L_0299170C;
|
|
L_029916FC: ; // 0x29916fc
|
|
/* 029916FC */ _t30 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029916FC */ cpu->r[9] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t30);
|
|
/* 02991700 */ _t31 = cpu->r[31] + 0x0000001Au;
|
|
/* 02991700 */ rbrew_write8(cpu->mem, _t31, (uint8_t)cpu->r[9]);
|
|
/* 02991704 */ _t32 = cpu->r[1] + 0x00000008u;
|
|
/* 02991704 */ cpu->r[10] = rbrew_read32(cpu->mem, _t32);
|
|
/* 02991708 */ _t33 = cpu->r[31] + 0x0000001Cu;
|
|
/* 02991708 */ rbrew_write32(cpu->mem, _t33, cpu->r[10]);
|
|
L_0299170C: ; // 0x299170c
|
|
/* 0299170C */ cpu->r[23] = cpu->r[23] + 0xFFFFFFFFu;
|
|
/* 0299170C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[23], 0x00000000u);
|
|
/* 02991710 */ cpu->r[26] = cpu->r[26] + 0x00000004u;
|
|
/* 02991714 */ _t34 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991714 */ _t35 = _t34 & 0x00000001u;
|
|
/* 02991714 */ if (_t35) goto L_02991718; else goto L_029916D8;
|
|
L_02991718: ; // 0x2991718
|
|
/* 02991718 */ _t36 = cpu->r[30] + 0x00000006u;
|
|
/* 02991718 */ cpu->r[5] = (uint32_t)(int32_t)(int16_t)rbrew_read16(cpu->mem, _t36);
|
|
/* 0299171C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[5], 0xFFFFFFFFu);
|
|
/* 02991720 */ _t37 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991720 */ _t38 = _t37 & 0x00000001u;
|
|
/* 02991720 */ if (_t38) goto L_02991740; else goto L_02991724;
|
|
L_02991724: ; // 0x2991724
|
|
/* 02991724 */ _t39 = cpu->r[28] + 0x00000088u;
|
|
/* 02991724 */ cpu->r[12] = rbrew_read32(cpu->mem, _t39);
|
|
/* 02991728 */ _t40 = cpu->r[12] + 0x00000144u;
|
|
/* 02991728 */ cpu->r[0] = rbrew_read32(cpu->mem, _t40);
|
|
/* 0299172C */ cpu->ctr = cpu->r[0];
|
|
/* 02991730 */ cpu->r[4] = cpu->r[25];
|
|
/* 02991734 */ cpu->r[6] = cpu->r[1] + 0x00000014u;
|
|
/* 02991738 */ cpu->r[3] = cpu->r[28];
|
|
/* 0299173C */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
L_02991740: ; // 0x2991740
|
|
/* 02991740 */ cpu->r[4] = 0x00000002u;
|
|
/* 02991744 */ cpu->r[3] = cpu->r[1] + 0x00000008u;
|
|
/* 02991748 */ Gambit_fn_02A34A38(cpu);
|
|
/* 0299174C */ cpu->r[24] = cpu->r[24] + 0xFFFFFFFFu;
|
|
/* 0299174C */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[24], 0x00000000u);
|
|
/* 02991750 */ cpu->r[25] = cpu->r[25] + 0x00000001u;
|
|
/* 02991754 */ cpu->r[27] = cpu->r[27] + 0x0000003Cu;
|
|
/* 02991758 */ _t41 = cpu->cr[0] >> (0x00000001u & 31u);
|
|
/* 02991758 */ _t42 = _t41 & 0x00000001u;
|
|
/* 02991758 */ if (_t42) goto L_0299175C; else goto L_02991690;
|
|
L_0299175C: ; // 0x299175c
|
|
/* 0299175C */ /* nop */
|
|
/* 02991760 */ _t43 = cpu->r[1] + 0x0000005Cu;
|
|
/* 02991760 */ cpu->r[0] = rbrew_read32(cpu->mem, _t43);
|
|
/* 02991764 */ cpu->lr = cpu->r[0];
|
|
/* 02991768 */ cpu->r[1] = cpu->r[1] + 0x00000058u;
|
|
/* 0299176C */ return;
|
|
}
|
|
|
|
// fn_02991770 @ 0x2991770
|
|
void Gambit_fn_02991770(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_02991770: ; // 0x2991770
|
|
/* 02991770 */ cpu->r[0] = cpu->lr;
|
|
/* 02991774 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991774 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991774 */ cpu->r[1] = _t0;
|
|
/* 02991778 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 02991778 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0299177C */ cpu->r[30] = cpu->r[3];
|
|
/* 02991780 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02991780 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 02991784 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991784 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02991788 */ cpu->r[28] = cpu->r[5];
|
|
/* 0299178C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0299178C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02991790 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991790 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02991794 */ Gambit_fn_029DA81C(cpu);
|
|
/* 02991798 */ _t6 = cpu->r[30] + 0x00000088u;
|
|
/* 02991798 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0299179C */ _t7 = cpu->r[10] + 0x000001ACu;
|
|
/* 0299179C */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029917A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029917A4 */ cpu->ctr = cpu->r[0];
|
|
/* 029917A8 */ cpu->r[29] = 0x00000000u;
|
|
/* 029917AC */ cpu->r[3] = cpu->r[30];
|
|
/* 029917B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029917B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[3]);
|
|
/* 029917B8 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029917B8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029917B8 */ if (_t9) goto L_029917BC; else goto L_029917EC;
|
|
L_029917BC: ; // 0x29917bc
|
|
/* 029917BC */ _t10 = cpu->r[30] + 0x0000001Cu;
|
|
/* 029917BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029917C0 */ cpu->r[4] = cpu->r[29];
|
|
/* 029917C4 */ cpu->r[5] = cpu->r[28];
|
|
/* 029917C8 */ Gambit_fn_029E6264(cpu);
|
|
/* 029917CC */ _t11 = cpu->r[30] + 0x00000088u;
|
|
/* 029917CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029917D0 */ _t12 = cpu->r[12] + 0x000001ACu;
|
|
/* 029917D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029917D4 */ cpu->ctr = cpu->r[0];
|
|
/* 029917D8 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 029917DC */ cpu->r[3] = cpu->r[30];
|
|
/* 029917E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029917E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[3]);
|
|
/* 029917E8 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029917E8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 029917E8 */ if (_t14) goto L_029917BC; else goto L_029917EC;
|
|
L_029917EC: ; // 0x29917ec
|
|
/* 029917EC */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 029917EC */ cpu->r[28] = rbrew_read32(cpu->mem, _t15);
|
|
/* 029917F0 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029917F0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029917F4 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029917F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029917F8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029917FC */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 029917FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02991800 */ cpu->lr = cpu->r[0];
|
|
/* 02991804 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 02991804 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02991808 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0299180C */ return;
|
|
}
|
|
|
|
// fn_02991774 @ 0x2991774
|
|
void Gambit_fn_02991774(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_02991774: ; // 0x2991774
|
|
/* 02991774 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991774 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991774 */ cpu->r[1] = _t0;
|
|
/* 02991778 */ _t1 = cpu->r[1] + 0x00000010u;
|
|
/* 02991778 */ rbrew_write32(cpu->mem, _t1, cpu->r[30]);
|
|
/* 0299177C */ cpu->r[30] = cpu->r[3];
|
|
/* 02991780 */ _t2 = cpu->r[1] + 0x00000008u;
|
|
/* 02991780 */ rbrew_write32(cpu->mem, _t2, cpu->r[28]);
|
|
/* 02991784 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991784 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02991788 */ cpu->r[28] = cpu->r[5];
|
|
/* 0299178C */ _t4 = cpu->r[1] + 0x00000014u;
|
|
/* 0299178C */ rbrew_write32(cpu->mem, _t4, cpu->r[31]);
|
|
/* 02991790 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991790 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02991794 */ Gambit_fn_029DA81C(cpu);
|
|
/* 02991798 */ _t6 = cpu->r[30] + 0x00000088u;
|
|
/* 02991798 */ cpu->r[10] = rbrew_read32(cpu->mem, _t6);
|
|
/* 0299179C */ _t7 = cpu->r[10] + 0x000001ACu;
|
|
/* 0299179C */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 029917A0 */ cpu->r[31] = cpu->r[3];
|
|
/* 029917A4 */ cpu->ctr = cpu->r[0];
|
|
/* 029917A8 */ cpu->r[29] = 0x00000000u;
|
|
/* 029917AC */ cpu->r[3] = cpu->r[30];
|
|
/* 029917B0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029917B4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[3]);
|
|
/* 029917B8 */ _t8 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029917B8 */ _t9 = _t8 & 0x00000001u;
|
|
/* 029917B8 */ if (_t9) goto L_029917BC; else goto L_029917EC;
|
|
L_029917BC: ; // 0x29917bc
|
|
/* 029917BC */ _t10 = cpu->r[30] + 0x0000001Cu;
|
|
/* 029917BC */ cpu->r[3] = rbrew_read32(cpu->mem, _t10);
|
|
/* 029917C0 */ cpu->r[4] = cpu->r[29];
|
|
/* 029917C4 */ cpu->r[5] = cpu->r[28];
|
|
/* 029917C8 */ Gambit_fn_029E6264(cpu);
|
|
/* 029917CC */ _t11 = cpu->r[30] + 0x00000088u;
|
|
/* 029917CC */ cpu->r[12] = rbrew_read32(cpu->mem, _t11);
|
|
/* 029917D0 */ _t12 = cpu->r[12] + 0x000001ACu;
|
|
/* 029917D0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029917D4 */ cpu->ctr = cpu->r[0];
|
|
/* 029917D8 */ cpu->r[29] = cpu->r[29] + 0x00000001u;
|
|
/* 029917DC */ cpu->r[3] = cpu->r[30];
|
|
/* 029917E0 */ rbrew_call_indirect(cpu, cpu->ctr);
|
|
/* 029917E4 */ cpu->cr[0] = rbrew_cmp_s32(cpu->r[29], cpu->r[3]);
|
|
/* 029917E8 */ _t13 = cpu->cr[0] >> (0x00000003u & 31u);
|
|
/* 029917E8 */ _t14 = _t13 & 0x00000001u;
|
|
/* 029917E8 */ if (_t14) goto L_029917BC; else goto L_029917EC;
|
|
L_029917EC: ; // 0x29917ec
|
|
/* 029917EC */ _t15 = cpu->r[1] + 0x00000008u;
|
|
/* 029917EC */ cpu->r[28] = rbrew_read32(cpu->mem, _t15);
|
|
/* 029917F0 */ _t16 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029917F0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t16);
|
|
/* 029917F4 */ _t17 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029917F4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t17);
|
|
/* 029917F8 */ cpu->r[3] = cpu->r[31];
|
|
/* 029917FC */ _t18 = cpu->r[1] + 0x00000010u;
|
|
/* 029917FC */ cpu->r[30] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02991800 */ cpu->lr = cpu->r[0];
|
|
/* 02991804 */ _t19 = cpu->r[1] + 0x00000014u;
|
|
/* 02991804 */ cpu->r[31] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02991808 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 0299180C */ return;
|
|
}
|
|
|
|
// fn_02991810 @ 0x2991810
|
|
void Gambit_fn_02991810(CPUState* cpu) {
|
|
uint32_t _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_02991810: ; // 0x2991810
|
|
/* 02991810 */ cpu->r[0] = cpu->lr;
|
|
/* 02991814 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991814 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991814 */ cpu->r[1] = _t0;
|
|
/* 02991818 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02991818 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 0299181C */ cpu->r[28] = cpu->r[3];
|
|
/* 02991820 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02991820 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02991824 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 02991824 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 02991828 */ cpu->r[31] = cpu->r[6];
|
|
/* 0299182C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299182C */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 02991830 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991830 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02991834 */ cpu->r[29] = cpu->r[4];
|
|
/* 02991838 */ cpu->r[4] = cpu->r[31];
|
|
/* 0299183C */ cpu->r[30] = cpu->r[5];
|
|
/* 02991840 */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991844 */ _t6 = cpu->r[28] + 0x000000C8u;
|
|
/* 02991844 */ cpu->r[9] = rbrew_read8(cpu->mem, _t6);
|
|
/* 02991848 */ _t7 = cpu->r[28] + 0x000000ACu;
|
|
/* 02991848 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0299184C */ cpu->r[9] = cpu->r[9] | 0x00000010u;
|
|
/* 02991850 */ _t8 = cpu->r[28] + 0x000000C8u;
|
|
/* 02991850 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[9]);
|
|
/* 02991854 */ _t9 = cpu->r[8] + 0x0000000Cu;
|
|
/* 02991854 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991858 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000006u, 0x00000000u, 0x00000019u);
|
|
/* 0299185C */ _t10 = cpu->r[8] + 0x00000004u;
|
|
/* 0299185C */ cpu->r[10] = rbrew_read16(cpu->mem, _t10);
|
|
/* 02991860 */ cpu->r[31] = cpu->r[12] + cpu->r[0];
|
|
/* 02991864 */ cpu->r[3] = cpu->r[29];
|
|
/* 02991868 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 0299186C */ cpu->r[4] = cpu->r[31] + 0x00000010u;
|
|
/* 02991870 */ _t11 = cpu->r[8] + 0x00000004u;
|
|
/* 02991870 */ rbrew_write16(cpu->mem, _t11, (uint16_t)cpu->r[10]);
|
|
/* 02991874 */ Gambit_fn_02C69510(cpu);
|
|
/* 02991878 */ _t12 = cpu->r[30] + 0x00000000u;
|
|
/* 02991878 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 0299187C */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 0299187C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02991880 */ _t14 = cpu->r[31] + 0x00000004u;
|
|
/* 02991880 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[0]);
|
|
/* 02991884 */ _t15 = cpu->r[30] + 0x00000004u;
|
|
/* 02991884 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 02991888 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x00000003u);
|
|
/* 0299188C */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 0299188C */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 02991890 */ _t17 = cpu->r[30] + 0x00000008u;
|
|
/* 02991890 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 02991894 */ _t18 = cpu->r[31] + 0x00000000u;
|
|
/* 02991894 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 02991898 */ _t19 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02991898 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 0299189C */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 0299189C */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029918A0 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029918A0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029918A4 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029918A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029918A8 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 029918A8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029918AC */ cpu->lr = cpu->r[0];
|
|
/* 029918B0 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 029918B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029918B4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029918B8 */ return;
|
|
}
|
|
|
|
// fn_02991814 @ 0x2991814
|
|
void Gambit_fn_02991814(CPUState* cpu) {
|
|
uint32_t _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_02991814: ; // 0x2991814
|
|
/* 02991814 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991814 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991814 */ cpu->r[1] = _t0;
|
|
/* 02991818 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 02991818 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 0299181C */ cpu->r[28] = cpu->r[3];
|
|
/* 02991820 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 02991820 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 02991824 */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 02991824 */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 02991828 */ cpu->r[31] = cpu->r[6];
|
|
/* 0299182C */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 0299182C */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 02991830 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991830 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 02991834 */ cpu->r[29] = cpu->r[4];
|
|
/* 02991838 */ cpu->r[4] = cpu->r[31];
|
|
/* 0299183C */ cpu->r[30] = cpu->r[5];
|
|
/* 02991840 */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991844 */ _t6 = cpu->r[28] + 0x000000C8u;
|
|
/* 02991844 */ cpu->r[9] = rbrew_read8(cpu->mem, _t6);
|
|
/* 02991848 */ _t7 = cpu->r[28] + 0x000000ACu;
|
|
/* 02991848 */ cpu->r[8] = rbrew_read32(cpu->mem, _t7);
|
|
/* 0299184C */ cpu->r[9] = cpu->r[9] | 0x00000010u;
|
|
/* 02991850 */ _t8 = cpu->r[28] + 0x000000C8u;
|
|
/* 02991850 */ rbrew_write8(cpu->mem, _t8, (uint8_t)cpu->r[9]);
|
|
/* 02991854 */ _t9 = cpu->r[8] + 0x0000000Cu;
|
|
/* 02991854 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991858 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000006u, 0x00000000u, 0x00000019u);
|
|
/* 0299185C */ _t10 = cpu->r[8] + 0x00000004u;
|
|
/* 0299185C */ cpu->r[10] = rbrew_read16(cpu->mem, _t10);
|
|
/* 02991860 */ cpu->r[31] = cpu->r[12] + cpu->r[0];
|
|
/* 02991864 */ cpu->r[3] = cpu->r[29];
|
|
/* 02991868 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 0299186C */ cpu->r[4] = cpu->r[31] + 0x00000010u;
|
|
/* 02991870 */ _t11 = cpu->r[8] + 0x00000004u;
|
|
/* 02991870 */ rbrew_write16(cpu->mem, _t11, (uint16_t)cpu->r[10]);
|
|
/* 02991874 */ Gambit_fn_02C69510(cpu);
|
|
/* 02991878 */ _t12 = cpu->r[30] + 0x00000000u;
|
|
/* 02991878 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 0299187C */ _t13 = cpu->r[31] + 0x00000000u;
|
|
/* 0299187C */ cpu->r[0] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02991880 */ _t14 = cpu->r[31] + 0x00000004u;
|
|
/* 02991880 */ rbrew_write_f32(cpu->mem, _t14, cpu->f[0]);
|
|
/* 02991884 */ _t15 = cpu->r[30] + 0x00000004u;
|
|
/* 02991884 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t15);
|
|
/* 02991888 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x00000003u);
|
|
/* 0299188C */ _t16 = cpu->r[31] + 0x00000008u;
|
|
/* 0299188C */ rbrew_write_f32(cpu->mem, _t16, cpu->f[0]);
|
|
/* 02991890 */ _t17 = cpu->r[30] + 0x00000008u;
|
|
/* 02991890 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t17);
|
|
/* 02991894 */ _t18 = cpu->r[31] + 0x00000000u;
|
|
/* 02991894 */ rbrew_write32(cpu->mem, _t18, cpu->r[0]);
|
|
/* 02991898 */ _t19 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02991898 */ rbrew_write_f32(cpu->mem, _t19, cpu->f[0]);
|
|
/* 0299189C */ _t20 = cpu->r[1] + 0x00000008u;
|
|
/* 0299189C */ cpu->r[28] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029918A0 */ _t21 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029918A0 */ cpu->r[29] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029918A4 */ _t22 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029918A4 */ cpu->r[0] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029918A8 */ _t23 = cpu->r[1] + 0x00000010u;
|
|
/* 029918A8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t23);
|
|
/* 029918AC */ cpu->lr = cpu->r[0];
|
|
/* 029918B0 */ _t24 = cpu->r[1] + 0x00000014u;
|
|
/* 029918B0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t24);
|
|
/* 029918B4 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029918B8 */ return;
|
|
}
|
|
|
|
// fn_029918BC @ 0x29918bc
|
|
void Gambit_fn_029918BC(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_029918BC: ; // 0x29918bc
|
|
/* 029918BC */ cpu->r[0] = cpu->lr;
|
|
/* 029918C0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029918C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029918C0 */ cpu->r[1] = _t0;
|
|
/* 029918C4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029918C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029918C8 */ cpu->r[31] = cpu->r[5];
|
|
/* 029918CC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029918CC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029918D0 */ cpu->r[30] = cpu->r[4];
|
|
/* 029918D4 */ cpu->r[4] = cpu->r[31];
|
|
/* 029918D8 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029918D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029918DC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029918DC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029918E0 */ cpu->r[29] = cpu->r[3];
|
|
/* 029918E4 */ Gambit_fn_029DCE8C(cpu);
|
|
/* 029918E8 */ _t5 = cpu->r[29] + 0x000000C8u;
|
|
/* 029918E8 */ cpu->r[9] = rbrew_read8(cpu->mem, _t5);
|
|
/* 029918EC */ _t6 = cpu->r[29] + 0x000000ACu;
|
|
/* 029918EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029918F0 */ cpu->r[9] = cpu->r[9] | 0x00000010u;
|
|
/* 029918F4 */ _t7 = cpu->r[29] + 0x000000C8u;
|
|
/* 029918F4 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[9]);
|
|
/* 029918F8 */ _t8 = cpu->r[8] + 0x00000004u;
|
|
/* 029918F8 */ cpu->r[10] = rbrew_read16(cpu->mem, _t8);
|
|
/* 029918FC */ _t9 = cpu->r[8] + 0x0000000Cu;
|
|
/* 029918FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991900 */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x00000006u, 0x00000000u, 0x00000019u);
|
|
/* 02991904 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 02991908 */ cpu->r[31] = cpu->r[12] + cpu->r[11];
|
|
/* 0299190C */ cpu->r[3] = cpu->r[30];
|
|
/* 02991910 */ cpu->r[4] = cpu->r[31] + 0x00000010u;
|
|
/* 02991914 */ _t10 = cpu->r[8] + 0x00000004u;
|
|
/* 02991914 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[10]);
|
|
/* 02991918 */ Gambit_fn_02C69510(cpu);
|
|
/* 0299191C */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 0299191C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02991920 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x00000003u);
|
|
/* 02991924 */ _t12 = cpu->r[31] + 0x00000000u;
|
|
/* 02991924 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 02991928 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991928 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0299192C */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299192C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02991930 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 02991930 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02991934 */ cpu->lr = cpu->r[0];
|
|
/* 02991938 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 02991938 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0299193C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991940 */ return;
|
|
}
|
|
|
|
// fn_029918C0 @ 0x29918c0
|
|
void Gambit_fn_029918C0(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14, _t15, _t16;
|
|
|
|
L_029918C0: ; // 0x29918c0
|
|
/* 029918C0 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029918C0 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029918C0 */ cpu->r[1] = _t0;
|
|
/* 029918C4 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 029918C4 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 029918C8 */ cpu->r[31] = cpu->r[5];
|
|
/* 029918CC */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 029918CC */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 029918D0 */ cpu->r[30] = cpu->r[4];
|
|
/* 029918D4 */ cpu->r[4] = cpu->r[31];
|
|
/* 029918D8 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029918D8 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 029918DC */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029918DC */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 029918E0 */ cpu->r[29] = cpu->r[3];
|
|
/* 029918E4 */ Gambit_fn_029DCE8C(cpu);
|
|
/* 029918E8 */ _t5 = cpu->r[29] + 0x000000C8u;
|
|
/* 029918E8 */ cpu->r[9] = rbrew_read8(cpu->mem, _t5);
|
|
/* 029918EC */ _t6 = cpu->r[29] + 0x000000ACu;
|
|
/* 029918EC */ cpu->r[8] = rbrew_read32(cpu->mem, _t6);
|
|
/* 029918F0 */ cpu->r[9] = cpu->r[9] | 0x00000010u;
|
|
/* 029918F4 */ _t7 = cpu->r[29] + 0x000000C8u;
|
|
/* 029918F4 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[9]);
|
|
/* 029918F8 */ _t8 = cpu->r[8] + 0x00000004u;
|
|
/* 029918F8 */ cpu->r[10] = rbrew_read16(cpu->mem, _t8);
|
|
/* 029918FC */ _t9 = cpu->r[8] + 0x0000000Cu;
|
|
/* 029918FC */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991900 */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x00000006u, 0x00000000u, 0x00000019u);
|
|
/* 02991904 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 02991908 */ cpu->r[31] = cpu->r[12] + cpu->r[11];
|
|
/* 0299190C */ cpu->r[3] = cpu->r[30];
|
|
/* 02991910 */ cpu->r[4] = cpu->r[31] + 0x00000010u;
|
|
/* 02991914 */ _t10 = cpu->r[8] + 0x00000004u;
|
|
/* 02991914 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[10]);
|
|
/* 02991918 */ Gambit_fn_02C69510(cpu);
|
|
/* 0299191C */ _t11 = cpu->r[31] + 0x00000000u;
|
|
/* 0299191C */ cpu->r[0] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02991920 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x00000003u);
|
|
/* 02991924 */ _t12 = cpu->r[31] + 0x00000000u;
|
|
/* 02991924 */ rbrew_write32(cpu->mem, _t12, cpu->r[0]);
|
|
/* 02991928 */ _t13 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991928 */ cpu->r[29] = rbrew_read32(cpu->mem, _t13);
|
|
/* 0299192C */ _t14 = cpu->r[1] + 0x0000001Cu;
|
|
/* 0299192C */ cpu->r[0] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02991930 */ _t15 = cpu->r[1] + 0x00000010u;
|
|
/* 02991930 */ cpu->r[30] = rbrew_read32(cpu->mem, _t15);
|
|
/* 02991934 */ cpu->lr = cpu->r[0];
|
|
/* 02991938 */ _t16 = cpu->r[1] + 0x00000014u;
|
|
/* 02991938 */ cpu->r[31] = rbrew_read32(cpu->mem, _t16);
|
|
/* 0299193C */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991940 */ return;
|
|
}
|
|
|
|
// fn_02991944 @ 0x2991944
|
|
void Gambit_fn_02991944(CPUState* cpu) {
|
|
uint32_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_02991944: ; // 0x2991944
|
|
/* 02991944 */ cpu->r[0] = cpu->lr;
|
|
/* 02991948 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991948 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991948 */ cpu->r[1] = _t0;
|
|
/* 0299194C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 0299194C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02991950 */ cpu->r[31] = cpu->r[5];
|
|
/* 02991954 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02991954 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02991958 */ cpu->r[30] = cpu->r[4];
|
|
/* 0299195C */ cpu->r[4] = cpu->r[31];
|
|
/* 02991960 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991960 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02991964 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991964 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991968 */ cpu->r[29] = cpu->r[3];
|
|
/* 0299196C */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991970 */ _t5 = cpu->r[29] + 0x000000C8u;
|
|
/* 02991970 */ cpu->r[9] = rbrew_read8(cpu->mem, _t5);
|
|
/* 02991974 */ _t6 = cpu->r[29] + 0x000000ACu;
|
|
/* 02991974 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02991978 */ cpu->r[9] = cpu->r[9] | 0x00000010u;
|
|
/* 0299197C */ _t7 = cpu->r[29] + 0x000000C8u;
|
|
/* 0299197C */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[9]);
|
|
/* 02991980 */ _t8 = cpu->r[7] + 0x00000004u;
|
|
/* 02991980 */ cpu->r[10] = rbrew_read16(cpu->mem, _t8);
|
|
/* 02991984 */ _t9 = cpu->r[7] + 0x0000000Cu;
|
|
/* 02991984 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991988 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 0299198C */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x00000006u, 0x00000000u, 0x00000019u);
|
|
/* 02991990 */ _t10 = cpu->r[7] + 0x00000004u;
|
|
/* 02991990 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[10]);
|
|
/* 02991994 */ _t11 = cpu->r[30] + 0x00000000u;
|
|
/* 02991994 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 02991998 */ cpu->r[8] = cpu->r[12] + cpu->r[11];
|
|
/* 0299199C */ _t12 = cpu->r[12] + cpu->r[11];
|
|
/* 0299199C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029919A0 */ _t13 = cpu->r[8] + 0x00000004u;
|
|
/* 029919A0 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 029919A4 */ _t14 = cpu->r[30] + 0x00000004u;
|
|
/* 029919A4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 029919A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x00000003u);
|
|
/* 029919AC */ _t15 = cpu->r[8] + 0x00000008u;
|
|
/* 029919AC */ rbrew_write_f32(cpu->mem, _t15, cpu->f[0]);
|
|
/* 029919B0 */ _t16 = cpu->r[30] + 0x00000008u;
|
|
/* 029919B0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 029919B4 */ _t17 = cpu->r[8] + 0x00000000u;
|
|
/* 029919B4 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 029919B8 */ _t18 = cpu->r[8] + 0x0000000Cu;
|
|
/* 029919B8 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
/* 029919BC */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029919BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029919C0 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029919C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029919C4 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 029919C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029919C8 */ cpu->lr = cpu->r[0];
|
|
/* 029919CC */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 029919CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029919D0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029919D4 */ return;
|
|
}
|
|
|
|
// fn_02991948 @ 0x2991948
|
|
void Gambit_fn_02991948(CPUState* cpu) {
|
|
uint32_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_02991948: ; // 0x2991948
|
|
/* 02991948 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991948 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991948 */ cpu->r[1] = _t0;
|
|
/* 0299194C */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 0299194C */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02991950 */ cpu->r[31] = cpu->r[5];
|
|
/* 02991954 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02991954 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02991958 */ cpu->r[30] = cpu->r[4];
|
|
/* 0299195C */ cpu->r[4] = cpu->r[31];
|
|
/* 02991960 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991960 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02991964 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991964 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991968 */ cpu->r[29] = cpu->r[3];
|
|
/* 0299196C */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991970 */ _t5 = cpu->r[29] + 0x000000C8u;
|
|
/* 02991970 */ cpu->r[9] = rbrew_read8(cpu->mem, _t5);
|
|
/* 02991974 */ _t6 = cpu->r[29] + 0x000000ACu;
|
|
/* 02991974 */ cpu->r[7] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02991978 */ cpu->r[9] = cpu->r[9] | 0x00000010u;
|
|
/* 0299197C */ _t7 = cpu->r[29] + 0x000000C8u;
|
|
/* 0299197C */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[9]);
|
|
/* 02991980 */ _t8 = cpu->r[7] + 0x00000004u;
|
|
/* 02991980 */ cpu->r[10] = rbrew_read16(cpu->mem, _t8);
|
|
/* 02991984 */ _t9 = cpu->r[7] + 0x0000000Cu;
|
|
/* 02991984 */ cpu->r[12] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991988 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 0299198C */ cpu->r[11] = rbrew_rlwinm(cpu->r[31], 0x00000006u, 0x00000000u, 0x00000019u);
|
|
/* 02991990 */ _t10 = cpu->r[7] + 0x00000004u;
|
|
/* 02991990 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[10]);
|
|
/* 02991994 */ _t11 = cpu->r[30] + 0x00000000u;
|
|
/* 02991994 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t11);
|
|
/* 02991998 */ cpu->r[8] = cpu->r[12] + cpu->r[11];
|
|
/* 0299199C */ _t12 = cpu->r[12] + cpu->r[11];
|
|
/* 0299199C */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 029919A0 */ _t13 = cpu->r[8] + 0x00000004u;
|
|
/* 029919A0 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 029919A4 */ _t14 = cpu->r[30] + 0x00000004u;
|
|
/* 029919A4 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 029919A8 */ cpu->r[0] = rbrew_rlwinm(cpu->r[0], 0x00000000u, 0x00000008u, 0x00000003u);
|
|
/* 029919AC */ _t15 = cpu->r[8] + 0x00000008u;
|
|
/* 029919AC */ rbrew_write_f32(cpu->mem, _t15, cpu->f[0]);
|
|
/* 029919B0 */ _t16 = cpu->r[30] + 0x00000008u;
|
|
/* 029919B0 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t16);
|
|
/* 029919B4 */ _t17 = cpu->r[8] + 0x00000000u;
|
|
/* 029919B4 */ rbrew_write32(cpu->mem, _t17, cpu->r[0]);
|
|
/* 029919B8 */ _t18 = cpu->r[8] + 0x0000000Cu;
|
|
/* 029919B8 */ rbrew_write_f32(cpu->mem, _t18, cpu->f[0]);
|
|
/* 029919BC */ _t19 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029919BC */ cpu->r[29] = rbrew_read32(cpu->mem, _t19);
|
|
/* 029919C0 */ _t20 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029919C0 */ cpu->r[0] = rbrew_read32(cpu->mem, _t20);
|
|
/* 029919C4 */ _t21 = cpu->r[1] + 0x00000014u;
|
|
/* 029919C4 */ cpu->r[31] = rbrew_read32(cpu->mem, _t21);
|
|
/* 029919C8 */ cpu->lr = cpu->r[0];
|
|
/* 029919CC */ _t22 = cpu->r[1] + 0x00000010u;
|
|
/* 029919CC */ cpu->r[30] = rbrew_read32(cpu->mem, _t22);
|
|
/* 029919D0 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 029919D4 */ return;
|
|
}
|
|
|
|
// fn_029919D8 @ 0x29919d8
|
|
void Gambit_fn_029919D8(CPUState* 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_029919D8: ; // 0x29919d8
|
|
/* 029919D8 */ cpu->r[0] = cpu->lr;
|
|
/* 029919DC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029919DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029919DC */ cpu->r[1] = _t0;
|
|
/* 029919E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 029919E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 029919E4 */ cpu->r[28] = cpu->r[3];
|
|
/* 029919E8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 029919E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 029919EC */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 029919EC */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 029919F0 */ cpu->r[31] = cpu->r[6];
|
|
/* 029919F4 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029919F4 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 029919F8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029919F8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029919FC */ cpu->r[29] = cpu->r[4];
|
|
/* 02991A00 */ cpu->r[4] = cpu->r[31];
|
|
/* 02991A04 */ cpu->r[30] = cpu->r[5];
|
|
/* 02991A08 */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991A0C */ _t6 = cpu->r[28] + 0x000000ACu;
|
|
/* 02991A0C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02991A10 */ _t7 = cpu->r[9] + 0x0000000Cu;
|
|
/* 02991A10 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02991A14 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000006u, 0x00000000u, 0x00000019u);
|
|
/* 02991A18 */ _t8 = cpu->r[9] + 0x00000004u;
|
|
/* 02991A18 */ cpu->r[10] = rbrew_read16(cpu->mem, _t8);
|
|
/* 02991A1C */ cpu->r[31] = cpu->r[12] + cpu->r[0];
|
|
/* 02991A20 */ cpu->r[4] = cpu->r[29];
|
|
/* 02991A24 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 02991A28 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 02991A2C */ _t9 = cpu->r[9] + 0x00000004u;
|
|
/* 02991A2C */ rbrew_write16(cpu->mem, _t9, (uint16_t)cpu->r[10]);
|
|
/* 02991A30 */ Gambit_fn_02C69510(cpu);
|
|
/* 02991A34 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 02991A34 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 02991A38 */ _t11 = cpu->r[30] + 0x00000000u;
|
|
/* 02991A38 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 02991A3C */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 02991A3C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 02991A40 */ _t13 = cpu->r[30] + 0x00000004u;
|
|
/* 02991A40 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 02991A44 */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02991A44 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 02991A48 */ _t15 = cpu->r[30] + 0x00000008u;
|
|
/* 02991A48 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[0]);
|
|
/* 02991A4C */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 02991A4C */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02991A50 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991A50 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02991A54 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991A54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02991A58 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 02991A58 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02991A5C */ cpu->lr = cpu->r[0];
|
|
/* 02991A60 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 02991A60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02991A64 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991A68 */ return;
|
|
}
|
|
|
|
// fn_029919DC @ 0x29919dc
|
|
void Gambit_fn_029919DC(CPUState* 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_029919DC: ; // 0x29919dc
|
|
/* 029919DC */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 029919DC */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 029919DC */ cpu->r[1] = _t0;
|
|
/* 029919E0 */ _t1 = cpu->r[1] + 0x00000008u;
|
|
/* 029919E0 */ rbrew_write32(cpu->mem, _t1, cpu->r[28]);
|
|
/* 029919E4 */ cpu->r[28] = cpu->r[3];
|
|
/* 029919E8 */ _t2 = cpu->r[1] + 0x00000014u;
|
|
/* 029919E8 */ rbrew_write32(cpu->mem, _t2, cpu->r[31]);
|
|
/* 029919EC */ _t3 = cpu->r[1] + 0x00000010u;
|
|
/* 029919EC */ rbrew_write32(cpu->mem, _t3, cpu->r[30]);
|
|
/* 029919F0 */ cpu->r[31] = cpu->r[6];
|
|
/* 029919F4 */ _t4 = cpu->r[1] + 0x0000000Cu;
|
|
/* 029919F4 */ rbrew_write32(cpu->mem, _t4, cpu->r[29]);
|
|
/* 029919F8 */ _t5 = cpu->r[1] + 0x0000001Cu;
|
|
/* 029919F8 */ rbrew_write32(cpu->mem, _t5, cpu->r[0]);
|
|
/* 029919FC */ cpu->r[29] = cpu->r[4];
|
|
/* 02991A00 */ cpu->r[4] = cpu->r[31];
|
|
/* 02991A04 */ cpu->r[30] = cpu->r[5];
|
|
/* 02991A08 */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991A0C */ _t6 = cpu->r[28] + 0x000000ACu;
|
|
/* 02991A0C */ cpu->r[9] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02991A10 */ _t7 = cpu->r[9] + 0x0000000Cu;
|
|
/* 02991A10 */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02991A14 */ cpu->r[0] = rbrew_rlwinm(cpu->r[31], 0x00000006u, 0x00000000u, 0x00000019u);
|
|
/* 02991A18 */ _t8 = cpu->r[9] + 0x00000004u;
|
|
/* 02991A18 */ cpu->r[10] = rbrew_read16(cpu->mem, _t8);
|
|
/* 02991A1C */ cpu->r[31] = cpu->r[12] + cpu->r[0];
|
|
/* 02991A20 */ cpu->r[4] = cpu->r[29];
|
|
/* 02991A24 */ cpu->r[10] = cpu->r[10] | 0x00000004u;
|
|
/* 02991A28 */ cpu->r[3] = cpu->r[31] + 0x00000010u;
|
|
/* 02991A2C */ _t9 = cpu->r[9] + 0x00000004u;
|
|
/* 02991A2C */ rbrew_write16(cpu->mem, _t9, (uint16_t)cpu->r[10]);
|
|
/* 02991A30 */ Gambit_fn_02C69510(cpu);
|
|
/* 02991A34 */ _t10 = cpu->r[31] + 0x00000004u;
|
|
/* 02991A34 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t10);
|
|
/* 02991A38 */ _t11 = cpu->r[30] + 0x00000000u;
|
|
/* 02991A38 */ rbrew_write_f32(cpu->mem, _t11, cpu->f[0]);
|
|
/* 02991A3C */ _t12 = cpu->r[31] + 0x00000008u;
|
|
/* 02991A3C */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t12);
|
|
/* 02991A40 */ _t13 = cpu->r[30] + 0x00000004u;
|
|
/* 02991A40 */ rbrew_write_f32(cpu->mem, _t13, cpu->f[0]);
|
|
/* 02991A44 */ _t14 = cpu->r[31] + 0x0000000Cu;
|
|
/* 02991A44 */ cpu->f[0] = rbrew_read_f32(cpu->mem, _t14);
|
|
/* 02991A48 */ _t15 = cpu->r[30] + 0x00000008u;
|
|
/* 02991A48 */ rbrew_write_f32(cpu->mem, _t15, cpu->f[0]);
|
|
/* 02991A4C */ _t16 = cpu->r[1] + 0x00000008u;
|
|
/* 02991A4C */ cpu->r[28] = rbrew_read32(cpu->mem, _t16);
|
|
/* 02991A50 */ _t17 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991A50 */ cpu->r[29] = rbrew_read32(cpu->mem, _t17);
|
|
/* 02991A54 */ _t18 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991A54 */ cpu->r[0] = rbrew_read32(cpu->mem, _t18);
|
|
/* 02991A58 */ _t19 = cpu->r[1] + 0x00000010u;
|
|
/* 02991A58 */ cpu->r[30] = rbrew_read32(cpu->mem, _t19);
|
|
/* 02991A5C */ cpu->lr = cpu->r[0];
|
|
/* 02991A60 */ _t20 = cpu->r[1] + 0x00000014u;
|
|
/* 02991A60 */ cpu->r[31] = rbrew_read32(cpu->mem, _t20);
|
|
/* 02991A64 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991A68 */ return;
|
|
}
|
|
|
|
// fn_02991A6C @ 0x2991a6c
|
|
void Gambit_fn_02991A6C(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_02991A6C: ; // 0x2991a6c
|
|
/* 02991A6C */ cpu->r[0] = cpu->lr;
|
|
/* 02991A70 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991A70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991A70 */ cpu->r[1] = _t0;
|
|
/* 02991A74 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02991A74 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02991A78 */ cpu->r[31] = cpu->r[5];
|
|
/* 02991A7C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02991A7C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02991A80 */ cpu->r[30] = cpu->r[4];
|
|
/* 02991A84 */ cpu->r[4] = cpu->r[31];
|
|
/* 02991A88 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991A88 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02991A8C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991A8C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991A90 */ cpu->r[29] = cpu->r[3];
|
|
/* 02991A94 */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991A98 */ _t5 = cpu->r[29] + 0x000000C8u;
|
|
/* 02991A98 */ cpu->r[12] = rbrew_read8(cpu->mem, _t5);
|
|
/* 02991A9C */ _t6 = cpu->r[29] + 0x000000ACu;
|
|
/* 02991A9C */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02991AA0 */ cpu->r[12] = cpu->r[12] | 0x0000000Au;
|
|
/* 02991AA4 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x00000030u);
|
|
/* 02991AA8 */ _t7 = cpu->r[29] + 0x000000C8u;
|
|
/* 02991AA8 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[12]);
|
|
/* 02991AAC */ _t8 = cpu->r[11] + 0x00000004u;
|
|
/* 02991AAC */ cpu->r[0] = rbrew_read16(cpu->mem, _t8);
|
|
/* 02991AB0 */ _t9 = cpu->r[11] + 0x00000010u;
|
|
/* 02991AB0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991AB4 */ cpu->r[0] = cpu->r[0] | 0x00000010u;
|
|
/* 02991AB8 */ cpu->r[3] = cpu->r[30];
|
|
/* 02991ABC */ cpu->r[4] = cpu->r[10] + cpu->r[9];
|
|
/* 02991AC0 */ _t10 = cpu->r[11] + 0x00000004u;
|
|
/* 02991AC0 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[0]);
|
|
/* 02991AC4 */ Gambit_fn_02C69510(cpu);
|
|
/* 02991AC8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991AC8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02991ACC */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991ACC */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02991AD0 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 02991AD0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02991AD4 */ cpu->lr = cpu->r[0];
|
|
/* 02991AD8 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 02991AD8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02991ADC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991AE0 */ return;
|
|
}
|
|
|
|
// fn_02991A70 @ 0x2991a70
|
|
void Gambit_fn_02991A70(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12, _t13, _t14;
|
|
|
|
L_02991A70: ; // 0x2991a70
|
|
/* 02991A70 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991A70 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991A70 */ cpu->r[1] = _t0;
|
|
/* 02991A74 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02991A74 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02991A78 */ cpu->r[31] = cpu->r[5];
|
|
/* 02991A7C */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02991A7C */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02991A80 */ cpu->r[30] = cpu->r[4];
|
|
/* 02991A84 */ cpu->r[4] = cpu->r[31];
|
|
/* 02991A88 */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991A88 */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02991A8C */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991A8C */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991A90 */ cpu->r[29] = cpu->r[3];
|
|
/* 02991A94 */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991A98 */ _t5 = cpu->r[29] + 0x000000C8u;
|
|
/* 02991A98 */ cpu->r[12] = rbrew_read8(cpu->mem, _t5);
|
|
/* 02991A9C */ _t6 = cpu->r[29] + 0x000000ACu;
|
|
/* 02991A9C */ cpu->r[11] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02991AA0 */ cpu->r[12] = cpu->r[12] | 0x0000000Au;
|
|
/* 02991AA4 */ cpu->r[9] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x00000030u);
|
|
/* 02991AA8 */ _t7 = cpu->r[29] + 0x000000C8u;
|
|
/* 02991AA8 */ rbrew_write8(cpu->mem, _t7, (uint8_t)cpu->r[12]);
|
|
/* 02991AAC */ _t8 = cpu->r[11] + 0x00000004u;
|
|
/* 02991AAC */ cpu->r[0] = rbrew_read16(cpu->mem, _t8);
|
|
/* 02991AB0 */ _t9 = cpu->r[11] + 0x00000010u;
|
|
/* 02991AB0 */ cpu->r[10] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991AB4 */ cpu->r[0] = cpu->r[0] | 0x00000010u;
|
|
/* 02991AB8 */ cpu->r[3] = cpu->r[30];
|
|
/* 02991ABC */ cpu->r[4] = cpu->r[10] + cpu->r[9];
|
|
/* 02991AC0 */ _t10 = cpu->r[11] + 0x00000004u;
|
|
/* 02991AC0 */ rbrew_write16(cpu->mem, _t10, (uint16_t)cpu->r[0]);
|
|
/* 02991AC4 */ Gambit_fn_02C69510(cpu);
|
|
/* 02991AC8 */ _t11 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991AC8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02991ACC */ _t12 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991ACC */ cpu->r[0] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02991AD0 */ _t13 = cpu->r[1] + 0x00000014u;
|
|
/* 02991AD0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t13);
|
|
/* 02991AD4 */ cpu->lr = cpu->r[0];
|
|
/* 02991AD8 */ _t14 = cpu->r[1] + 0x00000010u;
|
|
/* 02991AD8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t14);
|
|
/* 02991ADC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991AE0 */ return;
|
|
}
|
|
|
|
// fn_02991AE4 @ 0x2991ae4
|
|
void Gambit_fn_02991AE4(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02991AE4: ; // 0x2991ae4
|
|
/* 02991AE4 */ cpu->r[0] = cpu->lr;
|
|
/* 02991AE8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991AE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991AE8 */ cpu->r[1] = _t0;
|
|
/* 02991AEC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02991AEC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02991AF0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02991AF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02991AF4 */ cpu->r[30] = cpu->r[5];
|
|
/* 02991AF8 */ cpu->r[31] = cpu->r[3];
|
|
/* 02991AFC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991AFC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02991B00 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991B00 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991B04 */ cpu->r[29] = cpu->r[4];
|
|
/* 02991B08 */ cpu->r[4] = cpu->r[30];
|
|
/* 02991B0C */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991B10 */ _t5 = cpu->r[31] + 0x000000ACu;
|
|
/* 02991B10 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02991B14 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[30] * (int32_t)0x00000030u);
|
|
/* 02991B18 */ _t6 = cpu->r[9] + 0x00000004u;
|
|
/* 02991B18 */ cpu->r[10] = rbrew_read16(cpu->mem, _t6);
|
|
/* 02991B1C */ _t7 = cpu->r[9] + 0x00000010u;
|
|
/* 02991B1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02991B20 */ cpu->r[10] = cpu->r[10] | 0x00000010u;
|
|
/* 02991B24 */ cpu->r[4] = cpu->r[29];
|
|
/* 02991B28 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 02991B2C */ _t8 = cpu->r[9] + 0x00000004u;
|
|
/* 02991B2C */ rbrew_write16(cpu->mem, _t8, (uint16_t)cpu->r[10]);
|
|
/* 02991B30 */ Gambit_fn_02C69510(cpu);
|
|
/* 02991B34 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991B34 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991B38 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991B38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02991B3C */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 02991B3C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02991B40 */ cpu->lr = cpu->r[0];
|
|
/* 02991B44 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 02991B44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02991B48 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991B4C */ return;
|
|
}
|
|
|
|
// fn_02991AE8 @ 0x2991ae8
|
|
void Gambit_fn_02991AE8(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9, _t10, _t11, _t12;
|
|
|
|
L_02991AE8: ; // 0x2991ae8
|
|
/* 02991AE8 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991AE8 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991AE8 */ cpu->r[1] = _t0;
|
|
/* 02991AEC */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02991AEC */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02991AF0 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02991AF0 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02991AF4 */ cpu->r[30] = cpu->r[5];
|
|
/* 02991AF8 */ cpu->r[31] = cpu->r[3];
|
|
/* 02991AFC */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991AFC */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02991B00 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991B00 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991B04 */ cpu->r[29] = cpu->r[4];
|
|
/* 02991B08 */ cpu->r[4] = cpu->r[30];
|
|
/* 02991B0C */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991B10 */ _t5 = cpu->r[31] + 0x000000ACu;
|
|
/* 02991B10 */ cpu->r[9] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02991B14 */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[30] * (int32_t)0x00000030u);
|
|
/* 02991B18 */ _t6 = cpu->r[9] + 0x00000004u;
|
|
/* 02991B18 */ cpu->r[10] = rbrew_read16(cpu->mem, _t6);
|
|
/* 02991B1C */ _t7 = cpu->r[9] + 0x00000010u;
|
|
/* 02991B1C */ cpu->r[12] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02991B20 */ cpu->r[10] = cpu->r[10] | 0x00000010u;
|
|
/* 02991B24 */ cpu->r[4] = cpu->r[29];
|
|
/* 02991B28 */ cpu->r[3] = cpu->r[12] + cpu->r[0];
|
|
/* 02991B2C */ _t8 = cpu->r[9] + 0x00000004u;
|
|
/* 02991B2C */ rbrew_write16(cpu->mem, _t8, (uint16_t)cpu->r[10]);
|
|
/* 02991B30 */ Gambit_fn_02C69510(cpu);
|
|
/* 02991B34 */ _t9 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991B34 */ cpu->r[29] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991B38 */ _t10 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991B38 */ cpu->r[0] = rbrew_read32(cpu->mem, _t10);
|
|
/* 02991B3C */ _t11 = cpu->r[1] + 0x00000014u;
|
|
/* 02991B3C */ cpu->r[31] = rbrew_read32(cpu->mem, _t11);
|
|
/* 02991B40 */ cpu->lr = cpu->r[0];
|
|
/* 02991B44 */ _t12 = cpu->r[1] + 0x00000010u;
|
|
/* 02991B44 */ cpu->r[30] = rbrew_read32(cpu->mem, _t12);
|
|
/* 02991B48 */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991B4C */ return;
|
|
}
|
|
|
|
// fn_02991B50 @ 0x2991b50
|
|
void Gambit_fn_02991B50(CPUState* cpu) {
|
|
uint32_t _t0, _t1, _t2, _t3, _t4, _t5, _t6, _t7, _t8, _t9;
|
|
|
|
L_02991B50: ; // 0x2991b50
|
|
/* 02991B50 */ cpu->r[0] = cpu->lr;
|
|
/* 02991B54 */ _t0 = cpu->r[1] + 0xFFFFFFE8u;
|
|
/* 02991B54 */ rbrew_write32(cpu->mem, _t0, cpu->r[1]);
|
|
/* 02991B54 */ cpu->r[1] = _t0;
|
|
/* 02991B58 */ _t1 = cpu->r[1] + 0x00000014u;
|
|
/* 02991B58 */ rbrew_write32(cpu->mem, _t1, cpu->r[31]);
|
|
/* 02991B5C */ cpu->r[31] = cpu->r[5];
|
|
/* 02991B60 */ _t2 = cpu->r[1] + 0x00000010u;
|
|
/* 02991B60 */ rbrew_write32(cpu->mem, _t2, cpu->r[30]);
|
|
/* 02991B64 */ cpu->r[30] = cpu->r[4];
|
|
/* 02991B68 */ cpu->r[4] = cpu->r[31];
|
|
/* 02991B6C */ _t3 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991B6C */ rbrew_write32(cpu->mem, _t3, cpu->r[29]);
|
|
/* 02991B70 */ _t4 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991B70 */ rbrew_write32(cpu->mem, _t4, cpu->r[0]);
|
|
/* 02991B74 */ cpu->r[29] = cpu->r[3];
|
|
/* 02991B78 */ Gambit_fn_029DCE8C(cpu);
|
|
/* 02991B7C */ cpu->r[0] = (uint32_t)((int32_t)cpu->r[31] * (int32_t)0x00000030u);
|
|
/* 02991B80 */ _t5 = cpu->r[29] + 0x000000D8u;
|
|
/* 02991B80 */ cpu->r[12] = rbrew_read32(cpu->mem, _t5);
|
|
/* 02991B84 */ cpu->r[31] = cpu->r[12] + cpu->r[0];
|
|
/* 02991B88 */ cpu->r[4] = cpu->r[30];
|
|
/* 02991B8C */ cpu->r[3] = cpu->r[31];
|
|
/* 02991B90 */ Gambit_fn_02C69510(cpu);
|
|
/* 02991B94 */ cpu->r[9] = cpu->r[31] + 0x0000006Fu;
|
|
/* 02991B98 */ cpu->r[3] = rbrew_rlwinm(cpu->r[31], 0x00000000u, 0x00000000u, 0x00000019u);
|
|
/* 02991B9C */ cpu->r[10] = rbrew_rlwinm(cpu->r[9], 0x00000000u, 0x00000000u, 0x00000019u);
|
|
/* 02991BA0 */ cpu->r[4] = cpu->r[10] - cpu->r[3];
|
|
/* 02991BA4 */ rbrew_dispatch(cpu, 0x02d09328u);
|
|
/* 02991BA8 */ _t6 = cpu->r[1] + 0x0000000Cu;
|
|
/* 02991BA8 */ cpu->r[29] = rbrew_read32(cpu->mem, _t6);
|
|
/* 02991BAC */ _t7 = cpu->r[1] + 0x0000001Cu;
|
|
/* 02991BAC */ cpu->r[0] = rbrew_read32(cpu->mem, _t7);
|
|
/* 02991BB0 */ _t8 = cpu->r[1] + 0x00000014u;
|
|
/* 02991BB0 */ cpu->r[31] = rbrew_read32(cpu->mem, _t8);
|
|
/* 02991BB4 */ cpu->lr = cpu->r[0];
|
|
/* 02991BB8 */ _t9 = cpu->r[1] + 0x00000010u;
|
|
/* 02991BB8 */ cpu->r[30] = rbrew_read32(cpu->mem, _t9);
|
|
/* 02991BBC */ cpu->r[1] = cpu->r[1] + 0x00000018u;
|
|
/* 02991BC0 */ return;
|
|
}
|
|
|